Fix CreateDescriptorTable: pass descriptor ranges array instead of using static
This commit is contained in:
@@ -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