diff options
| author | xbzk <xbzk@eden-emu.dev> | 2026-07-02 03:23:08 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-07-02 03:23:08 +0200 |
| commit | 54c3d10b868806b4d79a919893c7626550244ef7 (patch) | |
| tree | c78abbca73024efeb8e6c5d5fc26f4535d87ceac /src/common/error.cpp | |
| parent | bdf60d79a0f426f988e23ff753e86fb0846aea10 (diff) | |
[vk, renderdoc] (VUID-02997) avoid vk_image_view as VK_NULL_HANDLE when feature nullDescriptor is unavailable (#4056)
This minor change in src\video_core\renderer_vulkan\pipeline_helper.h allows renderdoc capture on mhr sunbreak.
Maybe it sanitizes some crashes on old vulkan GPUs.
Device log (nvidia kepler gpu vulkan 1.1.117):
[ 17.605262] Render.Vulkan <Info> video_core\vulkan_common\vulkan_device.cpp:1041:GetSuitability: Device doesn't support feature nullDescriptor
VUID-VkWriteDescriptorSet-descriptorType-02997
For sampled/combined/storage image descriptors, Khronos says imageView must be valid or VK_NULL_HANDLE
(https://docs.vulkan.org/refpages/latest/refpages/source/VkPhysicalDeviceRobustness2FeaturesKHR.html)
but then it says: if nullDescriptor is not enabled, imageView must not be VK_NULL_HANDLE.
(https://docs.vulkan.org/spec/latest/chapters/descriptorsets.html)
nullDescriptor is exactly the feature that allows descriptors to be written with null handles.
The fix relies on conditionally replacing the null sampled view with Eden’s dummy null-image-view object (ImageView constructor checks HasNullDescriptor which checks features.robustness2.nullDescriptor. cheap checks, and only for null handles, so no notable cost).
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4056
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Diffstat (limited to 'src/common/error.cpp')
0 files changed, 0 insertions, 0 deletions
