From af70651a4843b16dd24e14b5cedffe399ebeb862 Mon Sep 17 00:00:00 2001 From: Yong He Date: Sat, 20 Aug 2022 01:03:06 -0700 Subject: Call `gfx` in slang program. (#2370) --- tools/gfx/d3d12/d3d12-command-encoder.cpp | 2 +- tools/gfx/d3d12/d3d12-command-encoder.h | 6 +++--- tools/gfx/d3d12/d3d12-shader-table.cpp | 7 +++---- 3 files changed, 7 insertions(+), 8 deletions(-) (limited to 'tools/gfx/d3d12') diff --git a/tools/gfx/d3d12/d3d12-command-encoder.cpp b/tools/gfx/d3d12/d3d12-command-encoder.cpp index 516053d39..59498856c 100644 --- a/tools/gfx/d3d12/d3d12-command-encoder.cpp +++ b/tools/gfx/d3d12/d3d12-command-encoder.cpp @@ -1379,7 +1379,7 @@ void RayTracingCommandEncoderImpl::dispatchRays( dispatchDesc.RayGenerationShaderRecord.StartAddress = shaderTableAddr + shaderTableImpl->m_rayGenTableOffset + - rayGenShaderIndex * D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES; + rayGenShaderIndex * kRayGenRecordSize; dispatchDesc.RayGenerationShaderRecord.SizeInBytes = D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES; dispatchDesc.MissShaderTable.StartAddress = diff --git a/tools/gfx/d3d12/d3d12-command-encoder.h b/tools/gfx/d3d12/d3d12-command-encoder.h index 5dd9909f8..d54411e1a 100644 --- a/tools/gfx/d3d12/d3d12-command-encoder.h +++ b/tools/gfx/d3d12/d3d12-command-encoder.h @@ -59,7 +59,7 @@ public: return nullptr; } virtual SLANG_NO_THROW SlangResult SLANG_MCALL - queryInterface(SlangUUID const& uuid, void** outObject) + queryInterface(SlangUUID const& uuid, void** outObject) override { if (auto ptr = getInterface(uuid)) { @@ -68,8 +68,8 @@ public: } return SLANG_E_NO_INTERFACE; } - virtual SLANG_NO_THROW uint32_t SLANG_MCALL addRef() { return 1; } - virtual SLANG_NO_THROW uint32_t SLANG_MCALL release() { return 1; } + virtual SLANG_NO_THROW uint32_t SLANG_MCALL addRef() override { return 1; } + virtual SLANG_NO_THROW uint32_t SLANG_MCALL release() override { return 1; } virtual SLANG_NO_THROW void SLANG_MCALL copyBuffer( IBufferResource* dst, diff --git a/tools/gfx/d3d12/d3d12-shader-table.cpp b/tools/gfx/d3d12/d3d12-shader-table.cpp index ef4feecc7..2773578b8 100644 --- a/tools/gfx/d3d12/d3d12-shader-table.cpp +++ b/tools/gfx/d3d12/d3d12-shader-table.cpp @@ -17,12 +17,11 @@ RefPtr ShaderTableImpl::createDeviceBuffer( TransientResourceHeapBase* transientHeap, IResourceCommandEncoder* encoder) { - uint32_t raygenTableSize = m_rayGenShaderCount * D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES; + uint32_t raygenTableSize = m_rayGenShaderCount * kRayGenRecordSize; uint32_t missTableSize = m_missShaderCount * D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES; uint32_t hitgroupTableSize = m_hitGroupCount * D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES; m_rayGenTableOffset = 0; - m_missTableOffset = (uint32_t)D3DUtil::calcAligned( - raygenTableSize, D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT); + m_missTableOffset = raygenTableSize; m_hitGroupTableOffset = (uint32_t)D3DUtil::calcAligned( m_missTableOffset + missTableSize, D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT); uint32_t tableSize = m_hitGroupTableOffset + hitgroupTableSize; @@ -72,7 +71,7 @@ RefPtr ShaderTableImpl::createDeviceBuffer( for (uint32_t i = 0; i < m_rayGenShaderCount; i++) { copyShaderIdInto( - stagingBufferPtr + m_rayGenTableOffset + D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES * i, + stagingBufferPtr + m_rayGenTableOffset + kRayGenRecordSize * i, m_shaderGroupNames[i], m_recordOverwrites[i]); } -- cgit v1.2.3