|
@@ -1516,11 +1516,11 @@ void DeserializeRootSignatureTemplate(_In_reads_bytes_(SrcDataSizeInBytes) const
|
|
const char *pData = (const char *)pSrcData;
|
|
const char *pData = (const char *)pSrcData;
|
|
const char *pMaxPtr = pData + SrcDataSizeInBytes;
|
|
const char *pMaxPtr = pData + SrcDataSizeInBytes;
|
|
UNREFERENCED_PARAMETER(DescVersion);
|
|
UNREFERENCED_PARAMETER(DescVersion);
|
|
- DXASSERT_NOMSG(((uint32_t*)pData)[0] == (uint32_t)DescVersion);
|
|
|
|
|
|
+ DXASSERT_NOMSG(((const uint32_t*)pData)[0] == (uint32_t)DescVersion);
|
|
|
|
|
|
// Root signature.
|
|
// Root signature.
|
|
IFTBOOL(pData + sizeof(DxilContainerRootSignatureDesc) <= pMaxPtr, E_FAIL);
|
|
IFTBOOL(pData + sizeof(DxilContainerRootSignatureDesc) <= pMaxPtr, E_FAIL);
|
|
- DxilContainerRootSignatureDesc *pRS = (DxilContainerRootSignatureDesc *)pData;
|
|
|
|
|
|
+ const DxilContainerRootSignatureDesc *pRS = (const DxilContainerRootSignatureDesc *)pData;
|
|
pRootSignature->Flags = (DxilRootSignatureFlags)pRS->Flags;
|
|
pRootSignature->Flags = (DxilRootSignatureFlags)pRS->Flags;
|
|
pRootSignature->NumParameters = pRS->NumParameters;
|
|
pRootSignature->NumParameters = pRS->NumParameters;
|
|
pRootSignature->NumStaticSamplers = pRS->NumStaticSamplers;
|
|
pRootSignature->NumStaticSamplers = pRS->NumStaticSamplers;
|
|
@@ -1529,8 +1529,8 @@ void DeserializeRootSignatureTemplate(_In_reads_bytes_(SrcDataSizeInBytes) const
|
|
pRootSignature->pStaticSamplers = nullptr;
|
|
pRootSignature->pStaticSamplers = nullptr;
|
|
|
|
|
|
size_t s = sizeof(DxilContainerRootParameter)*pRS->NumParameters;
|
|
size_t s = sizeof(DxilContainerRootParameter)*pRS->NumParameters;
|
|
- DxilContainerRootParameter *pInRTS = (DxilContainerRootParameter *)(pData + pRS->RootParametersOffset);
|
|
|
|
- IFTBOOL(((char*)pInRTS) + s <= pMaxPtr, E_FAIL);
|
|
|
|
|
|
+ const DxilContainerRootParameter *pInRTS = (const DxilContainerRootParameter *)(pData + pRS->RootParametersOffset);
|
|
|
|
+ IFTBOOL(((const char*)pInRTS) + s <= pMaxPtr, E_FAIL);
|
|
if (pRootSignature->NumParameters) {
|
|
if (pRootSignature->NumParameters) {
|
|
pRootSignature->pParameters = new T_ROOT_PARAMETER[pRootSignature->NumParameters];
|
|
pRootSignature->pParameters = new T_ROOT_PARAMETER[pRootSignature->NumParameters];
|
|
}
|
|
}
|
|
@@ -1543,12 +1543,12 @@ void DeserializeRootSignatureTemplate(_In_reads_bytes_(SrcDataSizeInBytes) const
|
|
pOutRTS->ShaderVisibility = (DxilShaderVisibility)pInRTS[iRP].ShaderVisibility;
|
|
pOutRTS->ShaderVisibility = (DxilShaderVisibility)pInRTS[iRP].ShaderVisibility;
|
|
switch(ParameterType) {
|
|
switch(ParameterType) {
|
|
case DxilRootParameterType::DescriptorTable: {
|
|
case DxilRootParameterType::DescriptorTable: {
|
|
- DxilContainerRootDescriptorTable *p1 = (DxilContainerRootDescriptorTable*)(pData + pInRTS[iRP].PayloadOffset);
|
|
|
|
- IFTBOOL((char*)p1 + sizeof(DxilContainerRootDescriptorTable) <= pMaxPtr, E_FAIL);
|
|
|
|
|
|
+ const DxilContainerRootDescriptorTable *p1 = (const DxilContainerRootDescriptorTable*)(pData + pInRTS[iRP].PayloadOffset);
|
|
|
|
+ IFTBOOL((const char*)p1 + sizeof(DxilContainerRootDescriptorTable) <= pMaxPtr, E_FAIL);
|
|
pOutRTS->DescriptorTable.NumDescriptorRanges = p1->NumDescriptorRanges;
|
|
pOutRTS->DescriptorTable.NumDescriptorRanges = p1->NumDescriptorRanges;
|
|
pOutRTS->DescriptorTable.pDescriptorRanges = nullptr;
|
|
pOutRTS->DescriptorTable.pDescriptorRanges = nullptr;
|
|
- T_DESCRIPTOR_RANGE_INTERNAL *p2 = (T_DESCRIPTOR_RANGE_INTERNAL*)(pData + p1->DescriptorRangesOffset);
|
|
|
|
- IFTBOOL((char*)p2 + sizeof(T_DESCRIPTOR_RANGE_INTERNAL) <= pMaxPtr, E_FAIL);
|
|
|
|
|
|
+ const T_DESCRIPTOR_RANGE_INTERNAL *p2 = (const T_DESCRIPTOR_RANGE_INTERNAL*)(pData + p1->DescriptorRangesOffset);
|
|
|
|
+ IFTBOOL((const char*)p2 + sizeof(T_DESCRIPTOR_RANGE_INTERNAL) <= pMaxPtr, E_FAIL);
|
|
if (p1->NumDescriptorRanges) {
|
|
if (p1->NumDescriptorRanges) {
|
|
pOutRTS->DescriptorTable.pDescriptorRanges = new T_DESCRIPTOR_RANGE[p1->NumDescriptorRanges];
|
|
pOutRTS->DescriptorTable.pDescriptorRanges = new T_DESCRIPTOR_RANGE[p1->NumDescriptorRanges];
|
|
}
|
|
}
|
|
@@ -1565,8 +1565,8 @@ void DeserializeRootSignatureTemplate(_In_reads_bytes_(SrcDataSizeInBytes) const
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
case DxilRootParameterType::Constants32Bit: {
|
|
case DxilRootParameterType::Constants32Bit: {
|
|
- DxilRootConstants *p = (DxilRootConstants*)(pData + pInRTS[iRP].PayloadOffset);
|
|
|
|
- IFTBOOL((char*)p + sizeof(DxilRootConstants) <= pMaxPtr, E_FAIL);
|
|
|
|
|
|
+ const DxilRootConstants *p = (const DxilRootConstants*)(pData + pInRTS[iRP].PayloadOffset);
|
|
|
|
+ IFTBOOL((const char*)p + sizeof(DxilRootConstants) <= pMaxPtr, E_FAIL);
|
|
pOutRTS->Constants.Num32BitValues = p->Num32BitValues;
|
|
pOutRTS->Constants.Num32BitValues = p->Num32BitValues;
|
|
pOutRTS->Constants.ShaderRegister = p->ShaderRegister;
|
|
pOutRTS->Constants.ShaderRegister = p->ShaderRegister;
|
|
pOutRTS->Constants.RegisterSpace = p->RegisterSpace;
|
|
pOutRTS->Constants.RegisterSpace = p->RegisterSpace;
|
|
@@ -1575,8 +1575,8 @@ void DeserializeRootSignatureTemplate(_In_reads_bytes_(SrcDataSizeInBytes) const
|
|
case DxilRootParameterType::CBV:
|
|
case DxilRootParameterType::CBV:
|
|
case DxilRootParameterType::SRV:
|
|
case DxilRootParameterType::SRV:
|
|
case DxilRootParameterType::UAV: {
|
|
case DxilRootParameterType::UAV: {
|
|
- T_ROOT_DESCRIPTOR *p = (T_ROOT_DESCRIPTOR *)(pData + pInRTS[iRP].PayloadOffset);
|
|
|
|
- IFTBOOL((char*)p + sizeof(T_ROOT_DESCRIPTOR) <= pMaxPtr, E_FAIL);
|
|
|
|
|
|
+ const T_ROOT_DESCRIPTOR *p = (const T_ROOT_DESCRIPTOR *)(pData + pInRTS[iRP].PayloadOffset);
|
|
|
|
+ IFTBOOL((const char*)p + sizeof(T_ROOT_DESCRIPTOR) <= pMaxPtr, E_FAIL);
|
|
pOutRTS->Descriptor.ShaderRegister = p->ShaderRegister;
|
|
pOutRTS->Descriptor.ShaderRegister = p->ShaderRegister;
|
|
pOutRTS->Descriptor.RegisterSpace = p->RegisterSpace;
|
|
pOutRTS->Descriptor.RegisterSpace = p->RegisterSpace;
|
|
DxilRootDescriptorFlags Flags = GetFlags(*p);
|
|
DxilRootDescriptorFlags Flags = GetFlags(*p);
|
|
@@ -1589,8 +1589,8 @@ void DeserializeRootSignatureTemplate(_In_reads_bytes_(SrcDataSizeInBytes) const
|
|
}
|
|
}
|
|
|
|
|
|
s = sizeof(DxilStaticSamplerDesc)*pRS->NumStaticSamplers;
|
|
s = sizeof(DxilStaticSamplerDesc)*pRS->NumStaticSamplers;
|
|
- DxilStaticSamplerDesc *pInSS = (DxilStaticSamplerDesc *)(pData + pRS->StaticSamplersOffset);
|
|
|
|
- IFTBOOL(((char*)pInSS) + s <= pMaxPtr, E_FAIL);
|
|
|
|
|
|
+ const DxilStaticSamplerDesc *pInSS = (const DxilStaticSamplerDesc *)(pData + pRS->StaticSamplersOffset);
|
|
|
|
+ IFTBOOL(((const char*)pInSS) + s <= pMaxPtr, E_FAIL);
|
|
if (pRootSignature->NumStaticSamplers) {
|
|
if (pRootSignature->NumStaticSamplers) {
|
|
pRootSignature->pStaticSamplers = new DxilStaticSamplerDesc[pRootSignature->NumStaticSamplers];
|
|
pRootSignature->pStaticSamplers = new DxilStaticSamplerDesc[pRootSignature->NumStaticSamplers];
|
|
}
|
|
}
|
|
@@ -1607,7 +1607,7 @@ void DeserializeRootSignature(const void *pSrcData,
|
|
const char *pData = (const char *)pSrcData;
|
|
const char *pData = (const char *)pSrcData;
|
|
IFTBOOL(pData + sizeof(uint32_t) < pData + SrcDataSizeInBytes, E_FAIL);
|
|
IFTBOOL(pData + sizeof(uint32_t) < pData + SrcDataSizeInBytes, E_FAIL);
|
|
|
|
|
|
- DxilRootSignatureVersion Version = (DxilRootSignatureVersion)((uint32_t*)pData)[0];
|
|
|
|
|
|
+ DxilRootSignatureVersion Version = (const DxilRootSignatureVersion)((const uint32_t*)pData)[0];
|
|
|
|
|
|
pRootSignature = new DxilVersionedRootSignatureDesc();
|
|
pRootSignature = new DxilVersionedRootSignatureDesc();
|
|
|
|
|