summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineD3D12
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-11-07 04:25:14 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-11-07 04:25:14 +0000
commit44bf7cf539949a6f26862201729fce5000b493f0 (patch)
tree9e4f57e060ad1fcfd03130e59fc9d9d74be9f737 /Graphics/GraphicsEngineD3D12
parentRemoved no longer used vulkan libraries on Linux (diff)
downloadDiligentCore-44bf7cf539949a6f26862201729fce5000b493f0.tar.gz
DiligentCore-44bf7cf539949a6f26862201729fce5000b493f0.zip
Few minor updates to TLAS and BLAS implementations
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
-rw-r--r--Graphics/GraphicsEngineD3D12/include/BottomLevelASD3D12Impl.hpp8
-rw-r--r--Graphics/GraphicsEngineD3D12/include/TopLevelASD3D12Impl.hpp7
-rw-r--r--Graphics/GraphicsEngineD3D12/src/BottomLevelASD3D12Impl.cpp20
-rw-r--r--Graphics/GraphicsEngineD3D12/src/TopLevelASD3D12Impl.cpp4
4 files changed, 10 insertions, 29 deletions
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<D3D12_RAYTRACING_GEOMETRY_DESC> Geometries;
+ std::vector<D3D12_RAYTRACING_GEOMETRY_DESC> 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<UINT>(Geometries.size());
+ d3d12BottomLevelInputs.pGeometryDescs = d3d12Geometries.data();
+ d3d12BottomLevelInputs.NumDescs = static_cast<UINT>(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