Fix CreateDescriptorTable: pass descriptor ranges array instead of using static
This commit is contained in:
@@ -35,7 +35,7 @@ public:
|
||||
static D3D12_ROOT_PARAMETER CreateSRV(uint32_t shaderRegister, ShaderVisibility visibility = ShaderVisibility::All, uint32_t registerSpace = 0);
|
||||
static D3D12_ROOT_PARAMETER CreateUAV(uint32_t shaderRegister, ShaderVisibility visibility = ShaderVisibility::All, uint32_t registerSpace = 0);
|
||||
static D3D12_ROOT_PARAMETER Create32BitConstants(uint32_t shaderRegister, uint32_t num32BitValues, ShaderVisibility visibility = ShaderVisibility::All, uint32_t registerSpace = 0);
|
||||
static D3D12_ROOT_PARAMETER CreateDescriptorTable(uint32_t shaderRegister, uint32_t numDescriptors, D3D12_DESCRIPTOR_RANGE_TYPE rangeType, ShaderVisibility visibility = ShaderVisibility::All, uint32_t registerSpace = 0);
|
||||
static D3D12_ROOT_PARAMETER CreateDescriptorTable(uint32_t numRanges, const D3D12_DESCRIPTOR_RANGE* ranges, ShaderVisibility visibility = ShaderVisibility::All);
|
||||
|
||||
static D3D12_STATIC_SAMPLER_DESC CreateStaticSampler(uint32_t shaderRegister, const D3D12_SAMPLER_DESC& desc, ShaderVisibility visibility = ShaderVisibility::Pixel);
|
||||
|
||||
|
||||
@@ -91,19 +91,12 @@ D3D12_ROOT_PARAMETER D3D12RootSignature::Create32BitConstants(uint32_t shaderReg
|
||||
return param;
|
||||
}
|
||||
|
||||
D3D12_ROOT_PARAMETER D3D12RootSignature::CreateDescriptorTable(uint32_t shaderRegister, uint32_t numDescriptors, D3D12_DESCRIPTOR_RANGE_TYPE rangeType, ShaderVisibility visibility, uint32_t registerSpace) {
|
||||
static D3D12_DESCRIPTOR_RANGE range;
|
||||
range.RangeType = rangeType;
|
||||
range.NumDescriptors = numDescriptors;
|
||||
range.BaseShaderRegister = shaderRegister;
|
||||
range.RegisterSpace = registerSpace;
|
||||
range.OffsetInDescriptorsFromTableStart = D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND;
|
||||
|
||||
D3D12_ROOT_PARAMETER D3D12RootSignature::CreateDescriptorTable(uint32_t numRanges, const D3D12_DESCRIPTOR_RANGE* ranges, ShaderVisibility visibility) {
|
||||
D3D12_ROOT_PARAMETER param = {};
|
||||
param.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE;
|
||||
param.ShaderVisibility = ToD3D12(visibility);
|
||||
param.DescriptorTable.NumDescriptorRanges = 1;
|
||||
param.DescriptorTable.pDescriptorRanges = ⦥
|
||||
param.DescriptorTable.NumDescriptorRanges = numRanges;
|
||||
param.DescriptorTable.pDescriptorRanges = ranges;
|
||||
return param;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user