diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2023-04-03 11:46:03 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-02 20:46:03 -0700 |
| commit | 271ae7165915cf9910e2de0224159ea0fdd8ce72 (patch) | |
| tree | 9b4db47ec7c4ee59af46ea2ccc1c1caa074d618d /tools/gfx/debug-layer | |
| parent | d7ba60c993366b4aaf6ef8ee7d8eab940d61eac8 (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.cpp | 14 | ||||
| -rw-r--r-- | tools/gfx/debug-layer/debug-device.h | 4 |
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(); |
