summaryrefslogtreecommitdiffstats
path: root/tools/gfx
diff options
context:
space:
mode:
authorJay Kwak <82421531+jkwak-work@users.noreply.github.com>2025-05-02 20:08:49 +0000
committerGitHub <noreply@github.com>2025-05-02 20:08:49 +0000
commit1b539d8907af3cc77e52e8cf4edf029964e0423a (patch)
treeeaf344818874cd748d44293b6899a83ef8d87396 /tools/gfx
parentd61296044f760e9f502825ec253a61ce8675257a (diff)
Fix intermittent failure of slang-unit-test-tool/ReplayRecord (#6981)
* Fix intermittent failure of slang-unit-test-tool/ReplayRecord Three problems are addressed: 1. the graphics driver sometimes returns nullptr from GetShaderIdentifier 2. `findRecordFileName()` may not find any records at all. 3. the return value from cleanupRecordFiles() overwrote the error value in `res` and it returned SLANG_OK even when there were errors. * Fix compiler warnings on Windows
Diffstat (limited to 'tools/gfx')
-rw-r--r--tools/gfx/d3d12/d3d12-shader-table.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/tools/gfx/d3d12/d3d12-shader-table.cpp b/tools/gfx/d3d12/d3d12-shader-table.cpp
index be537c737..66d63bed1 100644
--- a/tools/gfx/d3d12/d3d12-shader-table.cpp
+++ b/tools/gfx/d3d12/d3d12-shader-table.cpp
@@ -61,6 +61,8 @@ RefPtr<BufferResource> ShaderTableImpl::createDeviceBuffer(
if (name.getLength())
{
void* shaderId = stateObjectProperties->GetShaderIdentifier(name.toWString().begin());
+ if (nullptr == shaderId)
+ throw Exception(String("Failed to get shader identifier for '") + name + "'");
memcpy(dest, shaderId, D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES);
}
if (overwrite.size)