Last active
August 24, 2016 16:15
-
-
Save bobbrow/f86318aec24306e224e649b25c4e4d22 to your computer and use it in GitHub Desktop.
Converting Root Signature 1.0 to Root Signature 1.1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Create Root Signature 1.1. | |
{ | |
D3D12_FEATURE_DATA_ROOT_SIGNATURE featureData = {}; | |
// This is the highest version the sample supports. If CheckFeatureSupport succeeds, the HighestVersion returned will not be greater than this. | |
featureData.HighestVersion = D3D_ROOT_SIGNATURE_VERSION_1_1; | |
if (FAILED(m_device->CheckFeatureSupport(D3D12_FEATURE_ROOT_SIGNATURE, &featureData, sizeof(featureData)))) | |
{ | |
featureData.HighestVersion = D3D_ROOT_SIGNATURE_VERSION_1_0; | |
} | |
CD3DX12_DESCRIPTOR_RANGE1 ranges[3]; | |
ranges[0].Init(D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 1, 0, 0, D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC); | |
ranges[1].Init(D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER, 1, 0); | |
ranges[2].Init(D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 1, 0, 0, D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC); | |
CD3DX12_ROOT_PARAMETER1 rootParameters[3]; | |
rootParameters[0].InitAsDescriptorTable(1, &ranges[0], D3D12_SHADER_VISIBILITY_PIXEL); | |
rootParameters[1].InitAsDescriptorTable(1, &ranges[1], D3D12_SHADER_VISIBILITY_PIXEL); | |
rootParameters[2].InitAsDescriptorTable(1, &ranges[2], D3D12_SHADER_VISIBILITY_ALL); | |
CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC rootSignatureDesc; | |
rootSignatureDesc.Init_1_1(_countof(rootParameters), rootParameters, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT); | |
ComPtr<ID3DBlob> signature; | |
ComPtr<ID3DBlob> error; | |
ThrowIfFailed(D3DX12SerializeVersionedRootSignature(&rootSignatureDesc, featureData.HighestVersion, &signature, &error)); | |
ThrowIfFailed(m_device->CreateRootSignature(0, signature->GetBufferPointer(), signature->GetBufferSize(), IID_PPV_ARGS(&m_rootSignature))); | |
NAME_D3D12_OBJECT(m_rootSignature); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment