From e6bdb0fdf7e745955a74379935d85d6584bb7192 Mon Sep 17 00:00:00 2001 From: goldislead <69987043+goldislead@users.noreply.github.com> Date: Thu, 6 Aug 2026 13:41:00 -0700 Subject: [PATCH] [Vulkan] Skip draws with surface_pitch==0 to match D3D12 Realistically only affects memexport draws. Co-authored-by: Herman S. <429230+has207@users.noreply.github.com> --- src/xenia/gpu/vulkan/vulkan_command_processor.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/xenia/gpu/vulkan/vulkan_command_processor.cc b/src/xenia/gpu/vulkan/vulkan_command_processor.cc index 2ddfb57d3..684abaf56 100644 --- a/src/xenia/gpu/vulkan/vulkan_command_processor.cc +++ b/src/xenia/gpu/vulkan/vulkan_command_processor.cc @@ -2392,6 +2392,13 @@ bool VulkanCommandProcessor::IssueDraw(xenos::PrimitiveType prim_type, return IssueCopy(); } + if (regs.Get().surface_pitch == 0) { + // Doesn't actually draw. Matches the Direct3D 12 backend. + // TODO(Triang3l): Do something so memexport still works in this case maybe? + // Unlikely that zero would even really be legal though. + return true; + } + const ui::vulkan::VulkanDevice::Properties& device_properties = GetVulkanDevice()->properties();