|
|
@@ -21,7 +21,7 @@ using namespace Framework;
|
|
|
|
|
|
CustomDX12API::CustomDX12API()
|
|
|
: DirectX12()
|
|
|
-{}
|
|
|
+{}
|
|
|
|
|
|
CustomDX12API::~CustomDX12API() {}
|
|
|
|
|
|
@@ -29,6 +29,15 @@ void CustomDX12API::initializePipeline()
|
|
|
{
|
|
|
if (pipeline->getShaders().getEntryCount() == 0)
|
|
|
{ // add default shaders
|
|
|
+ pipeline->zGlobalSignature()->addRegisterUsageLinkedToDescriptorHeap(
|
|
|
+ 0, DX12_SHADER_REGISTER_S_SAMPLER, 0, 0, SAMPLER_DESCRIPTOR_HEAP);
|
|
|
+ pipeline->zGlobalSignature()->addRegisterUsageLinkedToDescriptorHeap(0,
|
|
|
+ DX12_SHADER_REGISTER_T_SHADER_RESOURCE,
|
|
|
+ 0,
|
|
|
+ 1,
|
|
|
+ TEXTURE_DESCRIPTOR_HEAP,
|
|
|
+ 1);
|
|
|
+
|
|
|
DX12Shader* rayGenShader = new DX12Shader(
|
|
|
CustomCustomRayGenShader, sizeof(CustomCustomRayGenShader));
|
|
|
// RayGen from RayGen.hlsl
|
|
|
@@ -54,14 +63,6 @@ void CustomDX12API::initializePipeline()
|
|
|
pipeline->addShader(missShader);
|
|
|
|
|
|
DX12ShaderSignature* hitSignature = new DX12ShaderSignature();
|
|
|
- hitSignature->addRegisterUsageLinkedToDescriptorHeap(
|
|
|
- 0, DX12_SHADER_REGISTER_S_SAMPLER, 0, 0, SAMPLER_DESCRIPTOR_HEAP);
|
|
|
- hitSignature->addRegisterUsageLinkedToDescriptorHeap(0,
|
|
|
- DX12_SHADER_REGISTER_T_SHADER_RESOURCE,
|
|
|
- 0,
|
|
|
- 1,
|
|
|
- TEXTURE_DESCRIPTOR_HEAP,
|
|
|
- 1);
|
|
|
sbtTextureIdBufferOffset
|
|
|
= hitSignature->addRegisterUsageLinkedToShaderBindingTable(
|
|
|
DX12_SHADER_REGISTER_T_SHADER_RESOURCE, 1, 2);
|
|
|
@@ -101,14 +102,6 @@ void CustomDX12API::initializePipeline()
|
|
|
|
|
|
// Chunk ray traversal shaders
|
|
|
DX12ShaderSignature* chunkHitSignature = new DX12ShaderSignature();
|
|
|
- chunkHitSignature->addRegisterUsageLinkedToDescriptorHeap(
|
|
|
- 0, DX12_SHADER_REGISTER_S_SAMPLER, 0, 0, SAMPLER_DESCRIPTOR_HEAP);
|
|
|
- chunkHitSignature->addRegisterUsageLinkedToDescriptorHeap(0,
|
|
|
- DX12_SHADER_REGISTER_T_SHADER_RESOURCE,
|
|
|
- 0,
|
|
|
- 1,
|
|
|
- TEXTURE_DESCRIPTOR_HEAP,
|
|
|
- 1);
|
|
|
sbtChunkTextureIdBufferOffset
|
|
|
= chunkHitSignature->addRegisterUsageLinkedToShaderBindingTable(
|
|
|
DX12_SHADER_REGISTER_T_SHADER_RESOURCE, 1, 2);
|
|
|
@@ -159,16 +152,8 @@ void CustomDX12API::initializePipeline()
|
|
|
pipeline->addHitGroup(chunkHitGroup);
|
|
|
|
|
|
// simple blocks hit shaders
|
|
|
- DX12ShaderSignature* simpleBlocksHitSignature
|
|
|
+ DX12ShaderSignature* simpleBlocksHitSignature
|
|
|
= new DX12ShaderSignature();
|
|
|
- simpleBlocksHitSignature->addRegisterUsageLinkedToDescriptorHeap(
|
|
|
- 0, DX12_SHADER_REGISTER_S_SAMPLER, 0, 0, SAMPLER_DESCRIPTOR_HEAP);
|
|
|
- simpleBlocksHitSignature->addRegisterUsageLinkedToDescriptorHeap(0,
|
|
|
- DX12_SHADER_REGISTER_T_SHADER_RESOURCE,
|
|
|
- 0,
|
|
|
- 1,
|
|
|
- TEXTURE_DESCRIPTOR_HEAP,
|
|
|
- 1);
|
|
|
sbtSimpleBlocksTextureIdBufferOffset
|
|
|
= simpleBlocksHitSignature
|
|
|
->addRegisterUsageLinkedToShaderBindingTable(
|