summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2021-07-09 06:12:34 -0700
committerGitHub <noreply@github.com>2021-07-09 09:12:34 -0400
commit09a251e0f3a31c826eaa91eef64b04eb01c4393a (patch)
treed6a02b84527d581438aa93690995ac07f42b89ed
parentaba2731f0427a04a119a59567e6715ba4034920a (diff)
[gfx] Inline raytracing fixes in response to code review. (#1905)
Co-authored-by: Yong He <yhe@nvidia.com>
-rw-r--r--examples/ray-tracing/main.cpp2
-rw-r--r--slang-gfx.h10
-rw-r--r--tools/gfx/d3d12/render-d3d12.cpp2
-rw-r--r--tools/render-test/render-test-main.cpp2
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<BufferResourceImpl> m_bufferResource;
RefPtr<D3D12Device> 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};