DirectXShaderCompiler/lib/HLSL/DxilPatchShaderRecordBindin...

78 строки
2.1 KiB
C

#pragma once
#include <stdint.h>
#define FallbackLayerRegisterSpace 214743647
// SRVs
#define FallbackLayerHitGroupRecordByteAddressBufferRegister 0
#define FallbackLayerMissShaderRecordByteAddressBufferRegister 1
#define FallbackLayerRayGenShaderRecordByteAddressBufferRegister 2
#define FallbackLayerCallableShaderRecordByteAddressBufferRegister 3
// SRV & UAV
#define FallbackLayerDescriptorHeapTable 0
// There's a driver issue on some hardware that has issues
// starting a bindless table on any register but 0, so
// make sure each bindless table has it's own register space
#define FallbackLayerDescriptorHeapSpaceOffset 1
#define FallbackLayerNumDescriptorHeapSpacesPerView 10
// CBVs
#define FallbackLayerDispatchConstantsRegister 0
#define FallbackLayerAccelerationStructureList 1
#ifndef HLSL
struct ViewKey {
unsigned int ViewType;
union {
unsigned int StructuredStride; // When ViewType == StructuredBuffer
unsigned int SRVComponentType; // When ViewType != StructuredBuffer &&
// ViewType != RawBuffer
};
};
struct ShaderInfo {
const wchar_t *ExportName;
unsigned int SamplerDescriptorSizeInBytes;
unsigned int SrvCbvUavDescriptorSizeInBytes;
unsigned int ShaderRecordIdentifierSizeInBytes;
const void *pRootSignatureDesc;
ViewKey *pSRVRegisterSpaceArray;
unsigned int *pNumSRVSpaces;
ViewKey *pUAVRegisterSpaceArray;
unsigned int *pNumUAVSpaces;
};
struct DispatchRaysConstants {
uint32_t RayDispatchDimensionsWidth;
uint32_t RayDispatchDimensionsHeight;
uint32_t HitGroupShaderRecordStride;
uint32_t MissShaderRecordStride;
// 64-bit values
uint64_t SamplerDescriptorHeapStart;
uint64_t SrvCbvUavDescriptorHeapStart;
};
enum DescriptorRangeTypes { SRV = 0, CBV, UAV, Sampler, NumRangeTypes };
enum RootSignatureParameterOffset {
HitGroupRecord = 0,
MissShaderRecord,
RayGenShaderRecord,
CallableShaderRecord,
DispatchConstants,
CbvSrvUavDescriptorHeapAliasedTables,
SamplerDescriptorHeapAliasedTables,
AccelerationStructuresList,
#if ENABLE_UAV_LOG
DebugUAVLog,
#endif
NumParameters
};
#endif