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 {