From 3ddf349ca1f3c0a4333d79c0f7b3c3fb21ac1ba6 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Fri, 3 Jul 2026 23:01:13 -0400 Subject: [PATCH] [buffer_cache] Force offsets to 0 on descriptors and use VK_WHOLE_SIZE instead --- src/video_core/renderer_vulkan/vk_buffer_cache.h | 6 +++++- src/video_core/vulkan_common/vulkan_device.cpp | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.h b/src/video_core/renderer_vulkan/vk_buffer_cache.h index b26e5d2ffe..6a4f720231 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.h +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.h @@ -167,7 +167,11 @@ public: private: void BindBuffer(VkBuffer buffer, u32 offset, u32 size) { - guest_descriptor_queue.AddBuffer(buffer, offset, size); + if (buffer == VK_NULL_HANDLE) { + guest_descriptor_queue.AddBuffer(buffer, 0, VK_WHOLE_SIZE); + } else { + guest_descriptor_queue.AddBuffer(buffer, offset, size); + } } void ReserveNullBuffer(); diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 006d8ce276..90eb9b05b3 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -495,7 +495,8 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR LOG_WARNING(Render_Vulkan, "Qualcomm drivers require scaled vertex format emulation"); must_emulate_scaled_formats = true; LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken CustomBorderColor."); - RemoveExtension(extensions.custom_border_color, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME); + RemoveExtensionFeature(extensions.custom_border_color, features.custom_border_color, + VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME); LOG_WARNING(Render_Vulkan, "Qualcomm drivers have broken Provoking Vertex."); RemoveExtension(extensions.provoking_vertex, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME); LOG_WARNING(Render_Vulkan, "Qualcomm drivers have slow push descriptor implementation.");