summaryrefslogtreecommitdiffstats
path: root/tools/gfx/d3d12/render-d3d12.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx/d3d12/render-d3d12.cpp')
-rw-r--r--tools/gfx/d3d12/render-d3d12.cpp46
1 files changed, 27 insertions, 19 deletions
diff --git a/tools/gfx/d3d12/render-d3d12.cpp b/tools/gfx/d3d12/render-d3d12.cpp
index b9b8c6c57..68a5b3e50 100644
--- a/tools/gfx/d3d12/render-d3d12.cpp
+++ b/tools/gfx/d3d12/render-d3d12.cpp
@@ -3265,11 +3265,11 @@ public:
}
virtual SLANG_NO_THROW void SLANG_MCALL setVertexBuffers(
- UInt startSlot,
- UInt slotCount,
+ uint32_t startSlot,
+ uint32_t slotCount,
IBufferResource* const* buffers,
- const UInt* strides,
- const UInt* offsets) override
+ const uint32_t* strides,
+ const uint32_t* offsets) override
{
{
const Index num = startSlot + slotCount;
@@ -3291,13 +3291,11 @@ public:
}
virtual SLANG_NO_THROW void SLANG_MCALL setIndexBuffer(
- IBufferResource* buffer,
- Format indexFormat,
- UInt offset = 0) override
+ IBufferResource* buffer, Format indexFormat, uint32_t offset = 0) override
{
m_boundIndexBuffer = (BufferResourceImpl*)buffer;
m_boundIndexFormat = D3DUtil::getMapFormat(indexFormat);
- m_boundIndexOffset = UINT(offset);
+ m_boundIndexOffset = offset;
}
void prepareDraw()
@@ -3357,17 +3355,16 @@ public:
}
}
virtual SLANG_NO_THROW void SLANG_MCALL
- draw(UInt vertexCount, UInt startVertex = 0) override
+ draw(uint32_t vertexCount, uint32_t startVertex = 0) override
{
prepareDraw();
- m_d3dCmdList->DrawInstanced(UINT(vertexCount), 1, UINT(startVertex), 0);
+ m_d3dCmdList->DrawInstanced(vertexCount, 1, startVertex, 0);
}
- virtual SLANG_NO_THROW void SLANG_MCALL
- drawIndexed(UInt indexCount, UInt startIndex = 0, UInt baseVertex = 0) override
+ virtual SLANG_NO_THROW void SLANG_MCALL drawIndexed(
+ uint32_t indexCount, uint32_t startIndex = 0, uint32_t baseVertex = 0) override
{
prepareDraw();
- m_d3dCmdList->DrawIndexedInstanced(
- (UINT)indexCount, 1, (UINT)startIndex, (UINT)baseVertex, 0);
+ m_d3dCmdList->DrawIndexedInstanced(indexCount, 1, startIndex, baseVertex, 0);
}
virtual SLANG_NO_THROW void SLANG_MCALL endEncoding() override
{
@@ -3493,13 +3490,14 @@ public:
}
virtual SLANG_NO_THROW void SLANG_MCALL drawInstanced(
- UInt vertexCount,
- UInt instanceCount,
- UInt startVertex,
- UInt startInstanceLocation) override
+ uint32_t vertexCount,
+ uint32_t instanceCount,
+ uint32_t startVertex,
+ uint32_t startInstanceLocation) override
{
prepareDraw();
- m_d3dCmdList->DrawInstanced(vertexCount, instanceCount, startVertex, startInstanceLocation);
+ m_d3dCmdList->DrawInstanced(
+ vertexCount, instanceCount, startVertex, startInstanceLocation);
}
virtual SLANG_NO_THROW void SLANG_MCALL drawIndexedInstanced(
@@ -6696,6 +6694,7 @@ Result D3D12Device::createQueryPool(const IQueryPool::Desc& desc, IQueryPool** o
{
case QueryType::AccelerationStructureCompactedSize:
case QueryType::AccelerationStructureSerializedSize:
+ case QueryType::AccelerationStructureCurrentSize:
{
RefPtr<PlainBufferProxyQueryPoolImpl> queryPoolImpl =
new PlainBufferProxyQueryPoolImpl();
@@ -6824,6 +6823,15 @@ void translatePostBuildInfoDescs(
sizeof(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC) *
queryDescs[i].firstQueryIndex;
break;
+ case QueryType::AccelerationStructureCurrentSize:
+ postBuildInfoDescs[i].InfoType =
+ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE;
+ postBuildInfoDescs[i].DestBuffer =
+ static_cast<D3D12Device::PlainBufferProxyQueryPoolImpl*>(queryDescs[i].queryPool)
+ ->m_bufferResource->getDeviceAddress() +
+ sizeof(D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC) *
+ queryDescs[i].firstQueryIndex;
+ break;
case QueryType::AccelerationStructureSerializedSize:
postBuildInfoDescs[i].InfoType =
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION;