From 09a251e0f3a31c826eaa91eef64b04eb01c4393a Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 9 Jul 2021 06:12:34 -0700 Subject: [gfx] Inline raytracing fixes in response to code review. (#1905) Co-authored-by: Yong He --- examples/ray-tracing/main.cpp | 2 +- slang-gfx.h | 10 +++++++++- tools/gfx/d3d12/render-d3d12.cpp | 2 +- tools/render-test/render-test-main.cpp | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/examples/ray-tracing/main.cpp b/examples/ray-tracing/main.cpp index ffeb4b056..bb02e157a 100644 --- a/examples/ray-tracing/main.cpp +++ b/examples/ray-tracing/main.cpp @@ -324,7 +324,7 @@ Slang::Result initialize() IBufferResource::Desc transformBufferDesc; transformBufferDesc.type = IResource::Type::Buffer; - transformBufferDesc.sizeInBytes = sizeof(float) * 16; + transformBufferDesc.sizeInBytes = sizeof(float) * 12; transformBufferDesc.defaultState = ResourceState::ShaderResource; float transformData[12] = { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f}; diff --git a/slang-gfx.h b/slang-gfx.h index 486e28f0f..1df056cba 100644 --- a/slang-gfx.h +++ b/slang-gfx.h @@ -520,6 +520,8 @@ public: struct BuildFlags { + // The enum values are intentionally consistent with + // D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS. enum Enum { None, @@ -539,6 +541,8 @@ public: struct GeometryFlags { + // The enum values are intentionally consistent with + // D3D12_RAYTRACING_GEOMETRY_FLAGS. enum Enum { None, @@ -571,7 +575,7 @@ public: struct ProceduralAABBDesc { - // Number of AABBs. + /// Number of AABBs. uint64_t count; /// Pointer to an array of `ProceduralAABB` values in device memory. @@ -594,6 +598,8 @@ public: struct GeometryInstanceFlags { + // The enum values are kept consistent with D3D12_RAYTRACING_INSTANCE_FLAGS + // and VkGeometryInstanceFlagBitsKHR. enum Enum : uint32_t { None = 0, @@ -604,6 +610,8 @@ public: }; }; + // The layout of this struct is intentionally consistent with D3D12_RAYTRACING_INSTANCE_DESC + // and VkAccelerationStructureInstanceKHR. struct InstanceDesc { float transform[3][4]; diff --git a/tools/gfx/d3d12/render-d3d12.cpp b/tools/gfx/d3d12/render-d3d12.cpp index e85fa84a3..0e7e7d3ab 100644 --- a/tools/gfx/d3d12/render-d3d12.cpp +++ b/tools/gfx/d3d12/render-d3d12.cpp @@ -405,7 +405,6 @@ public: } public: - uint32_t m_stride = 0; Result init(const IQueryPool::Desc& desc, D3D12Device* device, uint32_t stride); virtual SLANG_NO_THROW Result SLANG_MCALL @@ -428,6 +427,7 @@ public: QueryType m_queryType; RefPtr m_bufferResource; RefPtr m_device; + uint32_t m_stride = 0; }; struct BoundVertexBuffer diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp index 567e0b988..d71628fd0 100644 --- a/tools/render-test/render-test-main.cpp +++ b/tools/render-test/render-test-main.cpp @@ -681,7 +681,7 @@ void RenderTestApp::_initializeAccelerationStructure() IBufferResource::Desc transformBufferDesc; transformBufferDesc.type = IResource::Type::Buffer; - transformBufferDesc.sizeInBytes = sizeof(float) * 16; + transformBufferDesc.sizeInBytes = sizeof(float) * 12; transformBufferDesc.defaultState = ResourceState::ShaderResource; float transformData[12] = { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f}; -- cgit v1.2.3