From b3dfe383c6d31ff3dbd76dcfb32de8d536382f3e Mon Sep 17 00:00:00 2001 From: lucy96chen <47800040+lucy96chen@users.noreply.github.com> Date: Mon, 4 Oct 2021 09:46:33 -0700 Subject: Get native handles for TextureResource and BufferResource (#1960) * Added getNativeHandle() to TextureResource and BufferResource; Implemented getNativeHandle() in Vulkan and D3D12; Added new unit test files for the aforementioned implementation * Added missing getNativeHandle() implementations to renderer-shared.cpp and CUDA * Finished new getNativeHandle() unit tests for ITextureResource and IBufferResource; Modified ICommandQueue and ICommandBuffer unit tests to call QueryInterface to convert to IUnknown then back and compare resulting pointers for equality * Unit tests updated and pass locally * Cast m_buffer.m_buffer and m_image to uint64_t --- tools/gfx/cuda/render-cuda.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tools/gfx/cuda/render-cuda.cpp') diff --git a/tools/gfx/cuda/render-cuda.cpp b/tools/gfx/cuda/render-cuda.cpp index ec6f1212a..788baed0d 100644 --- a/tools/gfx/cuda/render-cuda.cpp +++ b/tools/gfx/cuda/render-cuda.cpp @@ -193,6 +193,12 @@ public: { return (DeviceAddress)m_cudaMemory; } + + virtual SLANG_NO_THROW Result SLANG_MCALL getNativeHandle(NativeHandle* outHandle) override + { + *outHandle = getBindlessHandle(); + return SLANG_OK; + } }; class TextureCUDAResource : public TextureResource @@ -234,6 +240,12 @@ public: CUmipmappedArray m_cudaMipMappedArray = CUmipmappedArray(); RefPtr m_cudaContext; + + virtual SLANG_NO_THROW Result SLANG_MCALL getNativeHandle(NativeHandle* outHandle) override + { + *outHandle = getBindlessHandle(); + return SLANG_OK; + } }; class CUDAResourceView : public ResourceViewBase -- cgit v1.2.3