summaryrefslogtreecommitdiffstats
path: root/tools/gfx-unit-test/create-buffer-from-handle.cpp
diff options
context:
space:
mode:
authorlucy96chen <47800040+lucy96chen@users.noreply.github.com>2021-11-12 15:43:23 -0800
committerGitHub <noreply@github.com>2021-11-12 15:43:23 -0800
commit7a4f08ee0411220c728bf42832d98e72d72167e2 (patch)
treef06410fecfe8aff8f28c913fe8cef90caa7479d1 /tools/gfx-unit-test/create-buffer-from-handle.cpp
parent6f523dd95d1f16003c7ed1d4a9e1da0cba0ea76c (diff)
Add support for buffer sharing from Vulkan to CUDA (#2008)
* Added getSharedHandle() and additional code to handle shareable buffer creation to Buffer::init() and initVulkanInstanceAndDevice() for Vulkan; Modified createBufferFromSharedHandle() in CUDA to assign externalMemoryHandleDesc.type based on the type of handle being provided; Added an additional test case to get-shared-handle.cpp testing Vulkan to CUDA * Added createBufferFromNativeHandle() to Vulkan and enabled corresponding test * disable cuda * Fixed getSharedHandle() for D3D12 buffers assigning Win32 as the handle's source * Removed a dangling comment inside Buffer::init() * Added a missing override; Added code to check that a physical device supports the necessary external memory extensions before adding them to the deviceExtensions list; Added #if SLANG_WINDOWS_FAMILY guards around all Windows-specific code and sharedHandleVulkanToCUDA test (which uses said platform-specific code) * Added Windows check around vkGetMemoryWin32HandleKHR in vk-api.h * Added missing Windows check around BufferResourceImpl destructor * Added a temporary hack to ensure synchronization between devices, which solves an issue with buffer sharing resulting in incorrect values being read back; Added #if SLANG_WIN64 around all CUDA tests as the backend currently only supports running CUDA on 64-bit (despite devices being created successfully in a 32-bit config)
Diffstat (limited to 'tools/gfx-unit-test/create-buffer-from-handle.cpp')
-rw-r--r--tools/gfx-unit-test/create-buffer-from-handle.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/tools/gfx-unit-test/create-buffer-from-handle.cpp b/tools/gfx-unit-test/create-buffer-from-handle.cpp
index 0b2573da1..538dc492a 100644
--- a/tools/gfx-unit-test/create-buffer-from-handle.cpp
+++ b/tools/gfx-unit-test/create-buffer-from-handle.cpp
@@ -51,6 +51,7 @@ namespace gfx_test
originalNumbersBuffer->getNativeResourceHandle(&handle);
ComPtr<IBufferResource> numbersBuffer;
GFX_CHECK_CALL_ABORT(device->createBufferFromNativeHandle(handle, bufferDesc, numbersBuffer.writeRef()));
+ compareComputeResult(device, numbersBuffer, Slang::makeArray<float>(0.0f, 1.0f, 2.0f, 3.0f));
ComPtr<IResourceView> bufferView;
IResourceView::Desc viewDesc = {};
@@ -91,9 +92,9 @@ namespace gfx_test
runTestImpl(createBufferFromHandleTestImpl, unitTestContext, Slang::RenderApiFlag::D3D12);
}
-// SLANG_UNIT_TEST(createBufferFromHandleVulkan)
-// {
-// runTestImpl(createBufferFromHandleTestImpl, unitTestContext, Slang::RenderApiFlag::Vulkan);
-// }
+ SLANG_UNIT_TEST(createBufferFromHandleVulkan)
+ {
+ runTestImpl(createBufferFromHandleTestImpl, unitTestContext, Slang::RenderApiFlag::Vulkan);
+ }
}