dx12: root signature validation at pso creation
This commit is contained in:
@@ -1454,6 +1454,7 @@ namespace dx12_internal
|
||||
CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS Formats;
|
||||
CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc;
|
||||
CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask;
|
||||
CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE ROOTSIG;
|
||||
} stream1 = {};
|
||||
|
||||
struct PSO_STREAM2
|
||||
@@ -3875,9 +3876,11 @@ using namespace dx12_internal;
|
||||
struct PSO_STREAM
|
||||
{
|
||||
CD3DX12_PIPELINE_STATE_STREAM_CS CS;
|
||||
CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE ROOTSIG;
|
||||
} stream;
|
||||
|
||||
stream.CS = { internal_state->shadercode.data(), internal_state->shadercode.size() };
|
||||
stream.ROOTSIG = internal_state->rootSignature.Get();
|
||||
|
||||
D3D12_PIPELINE_STATE_STREAM_DESC streamDesc = {};
|
||||
streamDesc.pPipelineStateSubobjectStream = &stream;
|
||||
@@ -3994,6 +3997,7 @@ using namespace dx12_internal;
|
||||
{
|
||||
internal_state->rootSignature = shader_internal->rootSignature;
|
||||
internal_state->rootsig_desc = shader_internal->rootsig_desc;
|
||||
stream.stream1.ROOTSIG = internal_state->rootSignature.Get();
|
||||
}
|
||||
}
|
||||
if (pso->desc.hs != nullptr)
|
||||
@@ -4004,6 +4008,7 @@ using namespace dx12_internal;
|
||||
{
|
||||
internal_state->rootSignature = shader_internal->rootSignature;
|
||||
internal_state->rootsig_desc = shader_internal->rootsig_desc;
|
||||
stream.stream1.ROOTSIG = internal_state->rootSignature.Get();
|
||||
}
|
||||
}
|
||||
if (pso->desc.ds != nullptr)
|
||||
@@ -4014,6 +4019,7 @@ using namespace dx12_internal;
|
||||
{
|
||||
internal_state->rootSignature = shader_internal->rootSignature;
|
||||
internal_state->rootsig_desc = shader_internal->rootsig_desc;
|
||||
stream.stream1.ROOTSIG = internal_state->rootSignature.Get();
|
||||
}
|
||||
}
|
||||
if (pso->desc.gs != nullptr)
|
||||
@@ -4024,6 +4030,7 @@ using namespace dx12_internal;
|
||||
{
|
||||
internal_state->rootSignature = shader_internal->rootSignature;
|
||||
internal_state->rootsig_desc = shader_internal->rootsig_desc;
|
||||
stream.stream1.ROOTSIG = internal_state->rootSignature.Get();
|
||||
}
|
||||
}
|
||||
if (pso->desc.ps != nullptr)
|
||||
@@ -4034,6 +4041,7 @@ using namespace dx12_internal;
|
||||
{
|
||||
internal_state->rootSignature = shader_internal->rootSignature;
|
||||
internal_state->rootsig_desc = shader_internal->rootsig_desc;
|
||||
stream.stream1.ROOTSIG = internal_state->rootSignature.Get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4045,6 +4053,7 @@ using namespace dx12_internal;
|
||||
{
|
||||
internal_state->rootSignature = shader_internal->rootSignature;
|
||||
internal_state->rootsig_desc = shader_internal->rootsig_desc;
|
||||
stream.stream1.ROOTSIG = internal_state->rootSignature.Get();
|
||||
}
|
||||
}
|
||||
if (pso->desc.as != nullptr)
|
||||
@@ -4055,6 +4064,7 @@ using namespace dx12_internal;
|
||||
{
|
||||
internal_state->rootSignature = shader_internal->rootSignature;
|
||||
internal_state->rootsig_desc = shader_internal->rootsig_desc;
|
||||
stream.stream1.ROOTSIG = internal_state->rootSignature.Get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4478,9 +4488,7 @@ using namespace dx12_internal;
|
||||
switch (desc->profile)
|
||||
{
|
||||
case VideoProfile::H264:
|
||||
#ifndef PLATFORM_XBOX
|
||||
decoder_desc.Configuration.DecodeProfile = D3D12_VIDEO_DECODE_PROFILE_H264; // TODO
|
||||
#endif // PLATFORM_XBOX
|
||||
decoder_desc.Configuration.DecodeProfile = D3D12_VIDEO_DECODE_PROFILE_H264;
|
||||
decoder_desc.Configuration.InterlaceType = D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE;
|
||||
break;
|
||||
//case VideoProfile::H265:
|
||||
@@ -7649,13 +7657,13 @@ using namespace dx12_internal;
|
||||
HRESULT hr = device->CreateFence(0, D3D12_FENCE_FLAG_NONE, PPV_ARGS(fence));
|
||||
assert(SUCCEEDED(hr));
|
||||
|
||||
//D3D12_RESOURCE_BARRIER bar = {};
|
||||
//bar.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
|
||||
//bar.Transition.pResource = dpb_internal->resource.Get();
|
||||
//bar.Transition.StateBefore = D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE;
|
||||
//bar.Transition.StateAfter = D3D12_RESOURCE_STATE_COMMON;
|
||||
//bar.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES;
|
||||
//commandlist.GetVideoDecodeCommandList()->ResourceBarrier(1, &bar);
|
||||
D3D12_RESOURCE_BARRIER bar = {};
|
||||
bar.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
|
||||
bar.Transition.pResource = dpb_internal->resource.Get();
|
||||
bar.Transition.StateBefore = D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE;
|
||||
bar.Transition.StateAfter = D3D12_RESOURCE_STATE_COMMON;
|
||||
bar.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES;
|
||||
commandlist.GetVideoDecodeCommandList()->ResourceBarrier(1, &bar);
|
||||
|
||||
hr = commandlist.GetVideoDecodeCommandList()->Close();
|
||||
assert(SUCCEEDED(hr));
|
||||
@@ -7679,7 +7687,7 @@ using namespace dx12_internal;
|
||||
|
||||
hr = commandlist.GetCommandAllocator()->Reset();
|
||||
assert(SUCCEEDED(hr));
|
||||
hr = commandlist.GetGraphicsCommandList()->Reset(commandlist.GetCommandAllocator(), nullptr);
|
||||
hr = commandlist.GetVideoDecodeCommandList()->Reset(commandlist.GetCommandAllocator());
|
||||
assert(SUCCEEDED(hr));
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace wi::version
|
||||
// minor features, major updates, breaking compatibility changes
|
||||
const int minor = 71;
|
||||
// minor bug fixes, alterations, refactors, updates
|
||||
const int revision = 356;
|
||||
const int revision = 357;
|
||||
|
||||
const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user