summaryrefslogtreecommitdiffstats
path: root/tools/gfx/debug-layer
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2023-04-03 11:46:03 +0800
committerGitHub <noreply@github.com>2023-04-02 20:46:03 -0700
commit271ae7165915cf9910e2de0224159ea0fdd8ce72 (patch)
tree9b4db47ec7c4ee59af46ea2ccc1c1caa074d618d /tools/gfx/debug-layer
parentd7ba60c993366b4aaf6ef8ee7d8eab940d61eac8 (diff)
Fix several silently failing tests (#2767)
* Add missing expected.txt for test * Diagnostics -> StdWriters in render test * Allow specifying several test prefixes to run `slang-test -- tests/foo tests/bar` * Squash warnings in some tests * Enable gfx debug layer in gfx test util Makes this issue present consistently: https://github.com/shader-slang/slang/issues/2766 * Allow DebugDevice to return interfaces instantiated by the debugged object * Check that we actaully have a shader cache for shader cache tests --------- Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'tools/gfx/debug-layer')
-rw-r--r--tools/gfx/debug-layer/debug-device.cpp14
-rw-r--r--tools/gfx/debug-layer/debug-device.h4
2 files changed, 17 insertions, 1 deletions
diff --git a/tools/gfx/debug-layer/debug-device.cpp b/tools/gfx/debug-layer/debug-device.cpp
index 7790149b6..45374b64f 100644
--- a/tools/gfx/debug-layer/debug-device.cpp
+++ b/tools/gfx/debug-layer/debug-device.cpp
@@ -26,6 +26,20 @@ using namespace Slang;
namespace debug
{
+SlangResult DebugDevice::queryInterface(SlangUUID const& uuid, void** outObject) noexcept
+{
+ void* intf = getInterface(uuid);
+ if (intf)
+ {
+ addRef();
+ *outObject = intf;
+ return SLANG_OK;
+ }
+
+ // Fallback to trying to get the interface from the debugged object
+ return baseObject->queryInterface(uuid, outObject);
+}
+
Result DebugDevice::getNativeDeviceHandles(InteropHandles* outHandles)
{
return baseObject->getNativeDeviceHandles(outHandles);
diff --git a/tools/gfx/debug-layer/debug-device.h b/tools/gfx/debug-layer/debug-device.h
index db07cdd1b..5b8424093 100644
--- a/tools/gfx/debug-layer/debug-device.h
+++ b/tools/gfx/debug-layer/debug-device.h
@@ -12,7 +12,9 @@ namespace debug
class DebugDevice : public DebugObject<IDevice>
{
public:
- SLANG_COM_OBJECT_IUNKNOWN_ALL;
+ SlangResult SLANG_MCALL queryInterface(SlangUUID const& uuid, void** outObject) noexcept override;
+ SLANG_COM_OBJECT_IUNKNOWN_ADD_REF;
+ SLANG_COM_OBJECT_IUNKNOWN_RELEASE;
public:
DebugDevice();