diff --git a/util/test/demos/d3d12/d3d12_execute_indirect.cpp b/util/test/demos/d3d12/d3d12_execute_indirect.cpp index 29ed8efe2..52ee02536 100644 --- a/util/test/demos/d3d12/d3d12_execute_indirect.cpp +++ b/util/test/demos/d3d12/d3d12_execute_indirect.cpp @@ -53,6 +53,11 @@ cbuffer rootConsts : register(b1) float4 rootConsts; } +cbuffer rootConst : register(b1, space1) +{ + float rootConst; +} + StructuredBuffer srvtest : register(t0); RWStructuredBuffer uavtest : register(u0); @@ -288,10 +293,12 @@ void main(uint3 gid : SV_GroupID) srvParam(D3D12_SHADER_VISIBILITY_VERTEX, 0, 0), uavParam(D3D12_SHADER_VISIBILITY_VERTEX, 0, 0), constParam(D3D12_SHADER_VISIBILITY_VERTEX, 0, 1, 4), + constParam(D3D12_SHADER_VISIBILITY_VERTEX, 1, 1, 1), tableParam(D3D12_SHADER_VISIBILITY_ALL, D3D12_DESCRIPTOR_RANGE_TYPE_UAV, 0, 1, 2, 0)}); - ID3D12CommandSignaturePtr patchArgSig = MakeCommandSig( - patchsig, {vbArg(0), cbvArg(0), srvArg(1), uavArg(2), constArg(3, 0, 1), drawArg()}); + ID3D12CommandSignaturePtr patchArgSig = + MakeCommandSig(patchsig, {vbArg(0), cbvArg(0), srvArg(1), uavArg(2), constArg(3, 0, 1), + constArg(4, 0, 1), drawArg()}); struct PatchArgs { @@ -300,6 +307,7 @@ void main(uint3 gid : SV_GroupID) D3D12_GPU_VIRTUAL_ADDRESS srv; D3D12_GPU_VIRTUAL_ADDRESS uav; float constData; + float constData2; D3D12_DRAW_ARGUMENTS draw; } patchargs; @@ -314,6 +322,7 @@ void main(uint3 gid : SV_GroupID) patchargs.draw.StartInstanceLocation = 0; patchargs.draw.StartVertexLocation = 0; patchargs.constData = 123.0f; + patchargs.constData2 = -123.0f; std::vector patchArgsData; patchArgsData.resize(sizeof(PatchArgs)); @@ -329,6 +338,8 @@ void main(uint3 gid : SV_GroupID) ptr += sizeof(D3D12_GPU_VIRTUAL_ADDRESS); memcpy(ptr, &patchargs.constData, sizeof(float)); ptr += sizeof(float); + memcpy(ptr, &patchargs.constData2, sizeof(float)); + ptr += sizeof(float); memcpy(ptr, &patchargs.draw, sizeof(D3D12_DRAW_ARGUMENTS)); ptr += sizeof(D3D12_DRAW_ARGUMENTS); @@ -463,7 +474,7 @@ void main(uint3 gid : SV_GroupID) cmd->SetPipelineState(patchpso); cmd->SetGraphicsRootSignature(patchsig); cmd->SetDescriptorHeaps(1, &m_CBVUAVSRV.GetInterfacePtr()); - cmd->SetGraphicsRootDescriptorTable(4, m_CBVUAVSRV->GetGPUDescriptorHandleForHeapStart()); + cmd->SetGraphicsRootDescriptorTable(5, m_CBVUAVSRV->GetGPUDescriptorHandleForHeapStart()); RSSetViewport(cmd, {0.0f, 0.0f, (float)screenWidth, (float)screenHeight, 0.0f, 1.0f}); RSSetScissorRect(cmd, {0, 0, screenWidth, screenHeight}); @@ -490,7 +501,7 @@ void main(uint3 gid : SV_GroupID) cmd->SetPipelineState(patchpso2); cmd->SetGraphicsRootSignature(patchsig); cmd->SetDescriptorHeaps(1, &m_CBVUAVSRV.GetInterfacePtr()); - cmd->SetGraphicsRootDescriptorTable(4, m_CBVUAVSRV->GetGPUDescriptorHandleForHeapStart()); + cmd->SetGraphicsRootDescriptorTable(5, m_CBVUAVSRV->GetGPUDescriptorHandleForHeapStart()); cmd->SetGraphicsRootConstantBufferView(0, cbv->GetGPUVirtualAddress() + 256); cmd->SetGraphicsRootShaderResourceView(1, srv->GetGPUVirtualAddress() + 256); cmd->SetGraphicsRootUnorderedAccessView(2, uav->GetGPUVirtualAddress() + 256); @@ -609,7 +620,7 @@ void main(uint3 gid : SV_GroupID) cmd->SetPipelineState(patchpso); cmd->SetGraphicsRootSignature(patchsig); cmd->SetDescriptorHeaps(1, &m_CBVUAVSRV.GetInterfacePtr()); - cmd->SetGraphicsRootDescriptorTable(4, m_CBVUAVSRV->GetGPUDescriptorHandleForHeapStart()); + cmd->SetGraphicsRootDescriptorTable(5, m_CBVUAVSRV->GetGPUDescriptorHandleForHeapStart()); RSSetViewport(cmd, {0.0f, 0.0f, (float)screenWidth, (float)screenHeight, 0.0f, 1.0f}); RSSetScissorRect(cmd, {0, 0, screenWidth, screenHeight});