diff options
Diffstat (limited to 'tools/gfx/debug-layer.cpp')
| -rw-r--r-- | tools/gfx/debug-layer.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/tools/gfx/debug-layer.cpp b/tools/gfx/debug-layer.cpp index 77dd8543e..61ec856e9 100644 --- a/tools/gfx/debug-layer.cpp +++ b/tools/gfx/debug-layer.cpp @@ -228,7 +228,7 @@ void validateAccelerationStructureBuildInputs( default: GFX_DIAGNOSE_ERROR( "Unsupported IAccelerationStructure::TriangleDesc::indexFormat. Valid " - "values are R_UInt32 or R_UInt16."); + "values are Unknown, R_UInt32 or R_UInt16."); } if (!buildInputs.geometryDescs[i].content.triangles.indexData) { @@ -237,6 +237,39 @@ void validateAccelerationStructureBuildInputs( "IAccelerationStructure::TriangleDesc::indexCount is not 0"); } } + if (buildInputs.geometryDescs[i].content.triangles.indexFormat != Format::Unknown) + { + if (buildInputs.geometryDescs[i].content.triangles.indexCount == 0) + { + GFX_DIAGNOSE_ERROR( + "IAccelerationStructure::TriangleDesc::indexCount cannot be 0 if " + "IAccelerationStructure::TriangleDesc::indexFormat is not Format::Unknown"); + } + if (buildInputs.geometryDescs[i].content.triangles.indexData == 0) + { + GFX_DIAGNOSE_ERROR( + "IAccelerationStructure::TriangleDesc::indexData cannot be null if " + "IAccelerationStructure::TriangleDesc::indexFormat is not " + "Format::Unknown"); + } + } + else + { + if (buildInputs.geometryDescs[i].content.triangles.indexCount != 0) + { + GFX_DIAGNOSE_ERROR( + "IAccelerationStructure::TriangleDesc::indexCount must be 0 if " + "IAccelerationStructure::TriangleDesc::indexFormat is " + "Format::Unknown"); + } + if (buildInputs.geometryDescs[i].content.triangles.indexData != 0) + { + GFX_DIAGNOSE_ERROR( + "IAccelerationStructure::TriangleDesc::indexData must be null if " + "IAccelerationStructure::TriangleDesc::indexFormat is " + "Format::Unknown"); + } + } if (!buildInputs.geometryDescs[i].content.triangles.vertexData) { GFX_DIAGNOSE_ERROR( |
