summaryrefslogtreecommitdiffstats
path: root/tools/gfx/debug-layer
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-09-26 12:58:29 -0700
committerGitHub <noreply@github.com>2022-09-26 12:58:29 -0700
commitfcc1a0973f91f0daff9c5c2d0a00208ecb7b91c2 (patch)
tree59c4286f6e81babc97d9ea6e5a42095ff1f9c0f5 /tools/gfx/debug-layer
parent4b58c50f394ac912663d86e25e5041157fe8a001 (diff)
Use d3d12/vk debug layer when gfx debug layer is enabled. (#2411)
* Use d3d12/vk debug layer when gfx debug layer is enabled. * Fix. Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'tools/gfx/debug-layer')
-rw-r--r--tools/gfx/debug-layer/debug-command-queue.cpp4
-rw-r--r--tools/gfx/debug-layer/debug-fence.cpp4
-rw-r--r--tools/gfx/debug-layer/debug-fence.h2
3 files changed, 10 insertions, 0 deletions
diff --git a/tools/gfx/debug-layer/debug-command-queue.cpp b/tools/gfx/debug-layer/debug-command-queue.cpp
index 253541abb..c196fa06a 100644
--- a/tools/gfx/debug-layer/debug-command-queue.cpp
+++ b/tools/gfx/debug-layer/debug-command-queue.cpp
@@ -47,6 +47,10 @@ void DebugCommandQueue::executeCommandBuffers(GfxCount count, ICommandBuffer* co
}
}
baseObject->executeCommandBuffers(count, innerCommandBuffers.getBuffer(), getInnerObj(fence), valueToSignal);
+ if (fence)
+ {
+ getDebugObj(fence)->maxValueToSignal = Math::Max(getDebugObj(fence)->maxValueToSignal, valueToSignal);
+ }
}
void DebugCommandQueue::waitOnHost()
diff --git a/tools/gfx/debug-layer/debug-fence.cpp b/tools/gfx/debug-layer/debug-fence.cpp
index 7ecbfabd7..66c541618 100644
--- a/tools/gfx/debug-layer/debug-fence.cpp
+++ b/tools/gfx/debug-layer/debug-fence.cpp
@@ -31,6 +31,10 @@ Result DebugFence::getCurrentValue(uint64_t* outValue)
Result DebugFence::setCurrentValue(uint64_t value)
{
SLANG_GFX_API_FUNC;
+ if (value < maxValueToSignal)
+ {
+ GFX_DIAGNOSE_ERROR_FORMAT("Cannot set fence value (%d) to lower than pending signal value (%d) on the fence.", value, maxValueToSignal);
+ }
return baseObject->setCurrentValue(value);
}
diff --git a/tools/gfx/debug-layer/debug-fence.h b/tools/gfx/debug-layer/debug-fence.h
index 980596d90..1f61fac33 100644
--- a/tools/gfx/debug-layer/debug-fence.h
+++ b/tools/gfx/debug-layer/debug-fence.h
@@ -18,6 +18,8 @@ public:
virtual SLANG_NO_THROW Result SLANG_MCALL setCurrentValue(uint64_t value) override;
virtual SLANG_NO_THROW Result SLANG_MCALL getSharedHandle(InteropHandle* outHandle) override;
virtual SLANG_NO_THROW Result SLANG_MCALL getNativeHandle(InteropHandle* outNativeHandle) override;
+public:
+ uint64_t maxValueToSignal = 0;
};
} // namespace debug