From 44bf7cf539949a6f26862201729fce5000b493f0 Mon Sep 17 00:00:00 2001 From: assiduous Date: Fri, 6 Nov 2020 20:25:14 -0800 Subject: Few minor updates to TLAS and BLAS implementations --- .../include/BottomLevelASD3D12Impl.hpp | 8 +------- .../include/TopLevelASD3D12Impl.hpp | 7 +------ .../src/BottomLevelASD3D12Impl.cpp | 20 ++++++++------------ .../GraphicsEngineD3D12/src/TopLevelASD3D12Impl.cpp | 4 ---- 4 files changed, 10 insertions(+), 29 deletions(-) (limited to 'Graphics/GraphicsEngineD3D12') diff --git a/Graphics/GraphicsEngineD3D12/include/BottomLevelASD3D12Impl.hpp b/Graphics/GraphicsEngineD3D12/include/BottomLevelASD3D12Impl.hpp index b631bdcc..c16d8473 100644 --- a/Graphics/GraphicsEngineD3D12/include/BottomLevelASD3D12Impl.hpp +++ b/Graphics/GraphicsEngineD3D12/include/BottomLevelASD3D12Impl.hpp @@ -51,10 +51,7 @@ public: bool bIsDeviceInternal = false); ~BottomLevelASD3D12Impl(); - virtual void DILIGENT_CALL_TYPE QueryInterface(const INTERFACE_ID& IID, IObject** ppInterface) override final; - - /// Implementation of IBottomLevelAS::GetScratchBufferSizes() in DirectX 12 backend. - virtual ScratchBufferSizes DILIGENT_CALL_TYPE GetScratchBufferSizes() const override { return m_ScratchSize; } + IMPLEMENT_QUERY_INTERFACE_IN_PLACE(IID_BottomLevelASD3D12, TBottomLevelASBase); /// Implementation of IBottomLevelASD3D12::GetD3D12BLAS(). virtual ID3D12Resource* DILIGENT_CALL_TYPE GetD3D12BLAS() override final { return GetD3D12Resource(); } @@ -66,9 +63,6 @@ public: { return GetD3D12Resource()->GetGPUVirtualAddress(); } - -private: - ScratchBufferSizes m_ScratchSize; }; } // namespace Diligent diff --git a/Graphics/GraphicsEngineD3D12/include/TopLevelASD3D12Impl.hpp b/Graphics/GraphicsEngineD3D12/include/TopLevelASD3D12Impl.hpp index c61ab368..3fa15e5e 100644 --- a/Graphics/GraphicsEngineD3D12/include/TopLevelASD3D12Impl.hpp +++ b/Graphics/GraphicsEngineD3D12/include/TopLevelASD3D12Impl.hpp @@ -52,10 +52,7 @@ public: bool bIsDeviceInternal = false); ~TopLevelASD3D12Impl(); - virtual void DILIGENT_CALL_TYPE QueryInterface(const INTERFACE_ID& IID, IObject** ppInterface) override final; - - /// Implementation of ITopLevelASD3D12::GetScratchBufferSizes() in DirectX 12 backend. - virtual ScratchBufferSizes DILIGENT_CALL_TYPE GetScratchBufferSizes() const override { return m_ScratchSize; } + IMPLEMENT_QUERY_INTERFACE_IN_PLACE(IID_TopLevelASD3D12, TTopLevelASBase); /// Implementation of ITopLevelASD3D12D3D12::GetD3D12TLAS(). virtual ID3D12Resource* DILIGENT_CALL_TYPE GetD3D12TLAS() override final { return GetD3D12Resource(); } @@ -75,8 +72,6 @@ public: } private: - ScratchBufferSizes m_ScratchSize; - // Allocation in a CPU-only descriptor heap DescriptorHeapAllocation m_DescriptorHandle; }; diff --git a/Graphics/GraphicsEngineD3D12/src/BottomLevelASD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/BottomLevelASD3D12Impl.cpp index 1fc9f876..02e45b0e 100644 --- a/Graphics/GraphicsEngineD3D12/src/BottomLevelASD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/BottomLevelASD3D12Impl.cpp @@ -28,11 +28,9 @@ #include "pch.h" #include "BottomLevelASD3D12Impl.hpp" #include "RenderDeviceD3D12Impl.hpp" -#include "DeviceContextD3D12Impl.hpp" #include "D3D12TypeConversions.hpp" #include "GraphicsAccessories.hpp" #include "DXGITypeConversions.hpp" -#include "EngineMemory.h" #include "StringTools.hpp" namespace Diligent @@ -55,16 +53,16 @@ BottomLevelASD3D12Impl::BottomLevelASD3D12Impl(IReferenceCounters* pRef { D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO d3d12BottomLevelPrebuildInfo = {}; D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS d3d12BottomLevelInputs = {}; - std::vector Geometries; + std::vector d3d12Geometries; if (m_Desc.pTriangles != nullptr) { - Geometries.resize(m_Desc.TriangleCount); + d3d12Geometries.resize(m_Desc.TriangleCount); Uint32 MaxPrimitiveCount = 0; for (uint32_t i = 0; i < m_Desc.TriangleCount; ++i) { auto& src = m_Desc.pTriangles[i]; - auto& dst = Geometries[i]; + auto& dst = d3d12Geometries[i]; dst.Type = D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES; dst.Flags = D3D12_RAYTRACING_GEOMETRY_FLAG_NONE; @@ -83,12 +81,12 @@ BottomLevelASD3D12Impl::BottomLevelASD3D12Impl(IReferenceCounters* pRef } else if (m_Desc.pBoxes != nullptr) { - Geometries.resize(m_Desc.BoxCount); + d3d12Geometries.resize(m_Desc.BoxCount); Uint32 MaxBoxCount = 0; for (uint32_t i = 0; i < m_Desc.BoxCount; ++i) { auto& src = m_Desc.pBoxes[i]; - auto& dst = Geometries[i]; + auto& dst = d3d12Geometries[i]; dst.Type = D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS; dst.Flags = D3D12_RAYTRACING_GEOMETRY_FLAG_NONE; @@ -105,13 +103,13 @@ BottomLevelASD3D12Impl::BottomLevelASD3D12Impl(IReferenceCounters* pRef UNEXPECTED("Either pTriangles or pBoxes must not be null"); } - VERIFY_EXPR(Geometries.size() <= D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE); + VERIFY_EXPR(d3d12Geometries.size() <= D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE); d3d12BottomLevelInputs.Type = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL; d3d12BottomLevelInputs.Flags = BuildASFlagsToD3D12ASBuildFlags(m_Desc.Flags); d3d12BottomLevelInputs.DescsLayout = D3D12_ELEMENTS_LAYOUT_ARRAY; - d3d12BottomLevelInputs.pGeometryDescs = Geometries.data(); - d3d12BottomLevelInputs.NumDescs = static_cast(Geometries.size()); + d3d12BottomLevelInputs.pGeometryDescs = d3d12Geometries.data(); + d3d12BottomLevelInputs.NumDescs = static_cast(d3d12Geometries.size()); pd3d12Device->GetRaytracingAccelerationStructurePrebuildInfo(&d3d12BottomLevelInputs, &d3d12BottomLevelPrebuildInfo); if (d3d12BottomLevelPrebuildInfo.ResultDataMaxSizeInBytes == 0) @@ -165,6 +163,4 @@ BottomLevelASD3D12Impl::~BottomLevelASD3D12Impl() pDeviceD3D12Impl->SafeReleaseDeviceObject(std::move(m_pd3d12Resource), m_Desc.CommandQueueMask); } -IMPLEMENT_QUERY_INTERFACE(BottomLevelASD3D12Impl, IID_BottomLevelASD3D12, TBottomLevelASBase) - } // namespace Diligent diff --git a/Graphics/GraphicsEngineD3D12/src/TopLevelASD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/TopLevelASD3D12Impl.cpp index ad26155a..51dadde1 100644 --- a/Graphics/GraphicsEngineD3D12/src/TopLevelASD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/TopLevelASD3D12Impl.cpp @@ -28,11 +28,9 @@ #include "pch.h" #include "TopLevelASD3D12Impl.hpp" #include "RenderDeviceD3D12Impl.hpp" -#include "DeviceContextD3D12Impl.hpp" #include "D3D12TypeConversions.hpp" #include "GraphicsAccessories.hpp" #include "DXGITypeConversions.hpp" -#include "EngineMemory.h" #include "StringTools.hpp" namespace Diligent @@ -124,6 +122,4 @@ TopLevelASD3D12Impl::~TopLevelASD3D12Impl() pDeviceD3D12Impl->SafeReleaseDeviceObject(std::move(m_pd3d12Resource), m_Desc.CommandQueueMask); } -IMPLEMENT_QUERY_INTERFACE(TopLevelASD3D12Impl, IID_TopLevelASD3D12, TTopLevelASBase) - } // namespace Diligent -- cgit v1.2.3