From 3e6a5566cff1818c3a91e1824e6b672fd3eeb144 Mon Sep 17 00:00:00 2001 From: PavelBARABANOV Date: Fri, 30 Oct 2026 02:47:10 +0100 Subject: [PATCH] [vk] handles unreachable unknown format 255 error (#4591) - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- https://git.eden-emu.dev/eden-emu/eden/pulls/4529 Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4591 Reviewed-by: crueter --- src/video_core/renderer_vulkan/vk_buffer_cache.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.h b/src/video_core/renderer_vulkan/vk_buffer_cache.h index fff1f8164d..b8840c1689 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.h +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.h @@ -219,9 +219,13 @@ public: void BindTextureBuffer(Buffer& buffer, u32 offset, u32 size, VideoCore::Surface::PixelFormat format) { - guest_descriptor_queue.AddTexelBuffer(buffer.View(offset, size, format), - buffer.DeviceAddress(), offset, size, - TexelBufferFormat(format)); + if (guest_descriptor_queue.UsesDescriptorBuffer()) { + const VkDeviceAddress address = buffer.DeviceAddress(); + const VkFormat vk_format = address == 0 ? VK_FORMAT_UNDEFINED : TexelBufferFormat(format); + guest_descriptor_queue.AddTexelBuffer(VK_NULL_HANDLE, address, offset, size, vk_format); + } else { + guest_descriptor_queue.AddTexelBuffer(buffer.View(offset, size, format)); + } } bool ShouldLimitDynamicStorageBuffers() const {