From df3244236266cd9799bf6314e2aec7bede17e98c Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 16 Jul 2024 16:12:30 +0100 Subject: [PATCH] Patch EmitMeshTasksEXT calls that don't use the referenced payload * Unclear on if this is valid or not but it is likely considered to be a degenerate case, where a payload is declared and referenced by the entry point then not used in the emit. The contents in the mesh shader are presumably undefined but if they're similarly unused that's fine? --- renderdoc/driver/vulkan/vk_postvs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renderdoc/driver/vulkan/vk_postvs.cpp b/renderdoc/driver/vulkan/vk_postvs.cpp index 82a416d6a..28fae6b48 100644 --- a/renderdoc/driver/vulkan/vk_postvs.cpp +++ b/renderdoc/driver/vulkan/vk_postvs.cpp @@ -1791,7 +1791,7 @@ static void AddTaskShaderPayloadStores(const rdcarray &specInfo, { rdcspv::OpEmitMeshTasksEXT emit(it); // only patch emits to our payload. Other shaders may reference other payloads - if(emit.payload == payloadId) + if(emit.payload == payloadId || !emit.HasPayload()) { rdcspv::OperationList ops;