From d06a78d935b2743494d47ed5cd3f36e38ac9c5ac Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 3 Feb 2022 19:17:30 -0800 Subject: Add gfx interop to allow more direct D3D12 usage scenarios. (#2117) * Add gfx interop to allow more direct D3D12 usage scenarios. * Fix compile error in win32. * gfx: Implement IFence::getNativeHandle() on d3d12. * More GFX-D3D interop interface. * Fix cuda. Co-authored-by: Yong He --- tools/gfx/debug-layer.cpp | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'tools/gfx/debug-layer.cpp') diff --git a/tools/gfx/debug-layer.cpp b/tools/gfx/debug-layer.cpp index f34a77556..484729068 100644 --- a/tools/gfx/debug-layer.cpp +++ b/tools/gfx/debug-layer.cpp @@ -1007,11 +1007,18 @@ void DebugCommandBuffer::close() baseObject->close(); } -Result DebugCommandBuffer::getNativeHandle(NativeHandle* outHandle) +Result DebugCommandBuffer::getNativeHandle(InteropHandle* outHandle) { + SLANG_GFX_API_FUNC; return baseObject->getNativeHandle(outHandle); } +Result DebugCommandBuffer::resetDescriptorHeaps() +{ + SLANG_GFX_API_FUNC; + return baseObject->resetDescriptorHeaps(); +} + void DebugCommandBuffer::checkEncodersClosedBeforeNewEncoder() { if (m_renderCommandEncoder.isOpen || m_resourceCommandEncoder.isOpen || @@ -1552,7 +1559,7 @@ Result DebugCommandQueue::waitForFenceValuesOnDevice( return baseObject->waitForFenceValuesOnDevice(fenceCount, innerFences.getBuffer(), waitValues); } -Result DebugCommandQueue::getNativeHandle(NativeHandle* outHandle) +Result DebugCommandQueue::getNativeHandle(InteropHandle* outHandle) { SLANG_GFX_API_FUNC; return baseObject->getNativeHandle(outHandle); @@ -1841,6 +1848,13 @@ DeviceAddress DebugAccelerationStructure::getDeviceAddress() return baseObject->getDeviceAddress(); } +Result DebugAccelerationStructure::getNativeHandle(InteropHandle* outNativeHandle) +{ + SLANG_GFX_API_FUNC; + + return baseObject->getNativeHandle(outNativeHandle); +} + IResourceView::Desc* DebugResourceView::getViewDesc() { SLANG_GFX_API_FUNC; @@ -1848,6 +1862,20 @@ IResourceView::Desc* DebugResourceView::getViewDesc() return baseObject->getViewDesc(); } +Result DebugResourceView::getNativeHandle(InteropHandle* outNativeHandle) +{ + SLANG_GFX_API_FUNC; + + return baseObject->getNativeHandle(outNativeHandle); +} + +Result DebugSamplerState::getNativeHandle(InteropHandle* outNativeHandle) +{ + SLANG_GFX_API_FUNC; + + return baseObject->getNativeHandle(outNativeHandle); +} + IResourceView::Desc* DebugAccelerationStructure::getViewDesc() { SLANG_GFX_API_FUNC; @@ -1884,4 +1912,10 @@ DebugShaderProgram::DebugShaderProgram(const IShaderProgram::Desc& desc) m_slangProgram = desc.slangProgram; } +Result DebugPipelineState::getNativeHandle(InteropHandle* outHandle) +{ + SLANG_GFX_API_FUNC; + return baseObject->getNativeHandle(outHandle); +} + } // namespace gfx -- cgit v1.2.3