From 3bc996116dd9ca88d74cb1d7c201bfcbdb8d23dc Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 12 Apr 2021 16:04:39 +0100 Subject: [PATCH] Fix identification of vendor UAV on SM5.1+ --- renderdoc/driver/d3d12/d3d12_device.cpp | 1 + renderdoc/driver/shaders/dxbc/dxbc_container.cpp | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/d3d12/d3d12_device.cpp b/renderdoc/driver/d3d12/d3d12_device.cpp index 933c822d3..113697992 100644 --- a/renderdoc/driver/d3d12/d3d12_device.cpp +++ b/renderdoc/driver/d3d12/d3d12_device.cpp @@ -3032,6 +3032,7 @@ bool WrappedID3D12Device::Serialise_SetShaderExtUAV(SerialiserType &ser, GPUVend } else if(vendor == GPUVendor::AMD) { + m_GlobalEXTUAVSpace = space; // do nothing, it was configured at device create time. This is purely informational } else diff --git a/renderdoc/driver/shaders/dxbc/dxbc_container.cpp b/renderdoc/driver/shaders/dxbc/dxbc_container.cpp index 99f1123c4..14bc1ee7a 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_container.cpp +++ b/renderdoc/driver/shaders/dxbc/dxbc_container.cpp @@ -1862,13 +1862,13 @@ DXBCContainer::DXBCContainer(bytebuf &ByteCode, const rdcstr &debugInfoPath, Gra if(shaderExtReg != ~0U) { bool found = false; - const bool sm51 = (m_Version.Major == 5 && m_Version.Minor == 1); + const bool pre_sm51 = (m_Version.Major * 10 + m_Version.Minor) < 51; // see if we can find the magic UAV. If so remove it from the reflection for(size_t i = 0; i < m_Reflection->UAVs.size(); i++) { const ShaderInputBind &uav = m_Reflection->UAVs[i]; - if(uav.reg == shaderExtReg && (!sm51 || shaderExtSpace == ~0U || shaderExtSpace == uav.space)) + if(uav.reg == shaderExtReg && (pre_sm51 || shaderExtSpace == uav.space)) { found = true; m_Reflection->UAVs.erase(i);