| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Credit and thanks to @bruzvg for multiple build fixes, update of 3rd-party items and MinGW support.
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
|
|\
| |
| |
| | |
Apply some low-hanging fruit optimizations to Vulkan RD
|
| | |
|
|\ \
| | |
| | |
| | | |
Vulkan: Fix incorrect access to the buffers on Android
|
| |/ |
|
|\ \
| |/
|/|
| | |
Fix buffer updates going to the wrong cmd buffer if barriers were 0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
From what I could see only SSAO & SSIL were affected when they both
call:
int zero[1] = { 0 };
RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0,
sizeof(uint32_t), &zero, 0);
int zero[1] = { 0 };
RD::get_singleton()->buffer_update(ssil.importance_map_load_counter, 0,
sizeof(uint32_t), &zero, 0);
Also documented what setup_command_buffer & draw_command_buffer are for.
|
|/
|
|
| |
Using 2.2.7.dev51+geb4a58fe.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows Godot to automatically compress meshes to save a lot of bandwidth.
In general, this requires no interaction from the user and should result in
no noticable quality loss.
This scheme is not backwards compatible, so we have provided an upgrade
mechanism, and a mesh versioning mechanism.
Existing meshes can still be used as a result, but users can get a
performance boost by reimporting assets.
|
| |
|
|
|
|
| |
Introduces support for FSR2 as a new upscaler option available from the project settings. Also introduces an specific render list for surfaces that require motion and the ability to derive motion vectors from depth buffer and camera motion.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
PR #80296 introduced a regression because it checks if the
VK_EXT_pipeline_creation_cache_control extension has been enabled before
using it, but turns out the process is a bit more convoluted than that
(a Vulkan driver may support the extension but then say the feature is
not supported)
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
Vulkan: Fix sanitizers error with empty shader name
|
| |
| |
| |
| | |
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
|
|/
|
|
|
|
| |
for the Vulkan driver.
Direct buffer copies are required to perform certain operations more efficiently, as the only current alternative is to download the buffer to the CPU and upload it again. As the first use case, the new function is used when enabling motion vectors on multimeshes.
|
|
|
|
|
| |
Then use the placeholder to create the shader instead of swapping RIDs
This fixes a false positive that reported leaked shaders
|
|\
| |
| |
| | |
Shader rd compilation groups
|
| |
| |
| |
| |
| |
| |
| |
| | |
This allows us to specify a subset of variants to compile at load time and conditionally other variants later.
This works seamlessly with shader caching.
Needed to ensure that users only pay the cost for variants they use
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The first time a shader is compiled Godot performs the following:
```cpp
for (uint32_t i = 0; i < SHADER_STAGE_MAX; i++) {
if
(spirv_data.push_constant_stages_mask.has_flag((ShaderStage)(1 << i))) {
binary_data.push_constant_vk_stages_mask |=
shader_stage_masks[i];
}
}
```
However binary_data.push_constant_vk_stages_mask is never initialized to
0 and thus contains garbage data or'ed with the good data.
This value is used by push constants (and many other things) thus it can
be a big deal.
Fortunately because the relevant flags are always guaranteed to be set
(but not guaranteed to be unset), the damage is restricted to:
1. Performance (unnecessary flushing & over-excessive barriers)
2. Overwriting push descriptors already set (this would be serious,
doesn't seem to be an issue)
3. Driver implementations going crazy when they see bits set they don't
expect (unknown if this is an issue)
This uninitialized value is later saved into the binary cache.
Valgrind is able to detect this bug on the first run, but not on the
subsequent ones because they data comes from a file.
cache_file_version has been bumped to force rebuild of all cached
shaders. Because the ones generated so far are compromised.
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
Implement Vulkan pipeline caching
|
| | |
|
|\ \
| | |
| | |
| | | |
RenderingDeviceVulkan::buffer_get_data: Use draw command buffer instead of setup command buffer
|
| | |
| | |
| | |
| | | |
setup command buffer
|
|\ \ \
| |/ /
|/| |
| | | |
Fix typo in FinalAction `switch` statement in RenderingDevice
|
| |/ |
|
| | |
|
|\ \
| | |
| | |
| | | |
Provide access to internal graphics handles for textures
|
| | | |
|
|/ / |
|
|\ \
| | |
| | |
| | | |
Allow creation of rendering buffers at any time
|
| |/ |
|
| |
| |
| |
| | |
This brings the overall class reference completion percentage from 87% to 92%.
|
| | |
|
|/ |
|
| |
|
|
|
|
| |
RenderingDevice texture update
|
| |
|