mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 09:00:44 +00:00
D3D12 EI test for setting a single 32-bit root constant
This commit is contained in:
@@ -53,6 +53,11 @@ cbuffer rootConsts : register(b1)
|
||||
float4 rootConsts;
|
||||
}
|
||||
|
||||
cbuffer rootConst : register(b1, space1)
|
||||
{
|
||||
float rootConst;
|
||||
}
|
||||
|
||||
StructuredBuffer<float4> srvtest : register(t0);
|
||||
|
||||
RWStructuredBuffer<float4> 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<char> 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});
|
||||
|
||||
Reference in New Issue
Block a user