From 457e91f1945f1a904b9b20e9e355e8274e8dedd0 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 13 Sep 2024 13:09:53 +0100 Subject: [PATCH] Make sure root signatures *precisely* patch between HLSL and code * Also don't finish with the backbuffer too early and re-bind VB after execute indirect. --- util/test/demos/d3d12/d3d12_parameter_zoo.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/util/test/demos/d3d12/d3d12_parameter_zoo.cpp b/util/test/demos/d3d12/d3d12_parameter_zoo.cpp index 2a951a14c..0fcfedd56 100644 --- a/util/test/demos/d3d12/d3d12_parameter_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_parameter_zoo.cpp @@ -44,7 +44,7 @@ float4 main() : SV_Target0 std::string pixel_root = R"EOSHADER( #define MyRS1 "RootFlags( ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT), " \ - "DescriptorTable(SRV(t50, numDescriptors = 999)) " + "DescriptorTable(SRV(t50, numDescriptors = 999, offset = 0, flags = DESCRIPTORS_VOLATILE|DATA_VOLATILE), visibility = SHADER_VISIBILITY_PIXEL) " Texture2D empty : register(t50); @@ -418,8 +418,6 @@ float4 main() : SV_Target0 cmd->ExecuteIndirect(cmdsig, 0, argBuf, 0, NULL, 0); - FinishUsingBackbuffer(cmd, D3D12_RESOURCE_STATE_RENDER_TARGET); - if(debug) { BOOL wrong = debug->AssertResourceState(bb, D3D12_RESOURCE_STATE_COPY_DEST, 0); @@ -432,11 +430,14 @@ float4 main() : SV_Target0 } cmd->SetPipelineState(psoNoSig); + IASetVertexBuffer(cmd, vb, sizeof(DefaultA2V), 0); setMarker(cmd, "No Sig Draw"); cmd->DrawIndexedInstanced(3, 1, 0, 0, 0); + FinishUsingBackbuffer(cmd, D3D12_RESOURCE_STATE_RENDER_TARGET); + cmd->Close(); Submit({cmd});