summaryrefslogtreecommitdiff
path: root/tools/gfx-unit-test/get-buffer-handle-test.cpp
diff options
context:
space:
mode:
authorlucy96chen <47800040+lucy96chen@users.noreply.github.com>2021-10-04 09:46:33 -0700
committerGitHub <noreply@github.com>2021-10-04 09:46:33 -0700
commitb3dfe383c6d31ff3dbd76dcfb32de8d536382f3e (patch)
tree06efb21869df7ccdca6d98ab4217b8bf75dfdd2f /tools/gfx-unit-test/get-buffer-handle-test.cpp
parent35bca4cc432613af3926da3bed217a6baa9cbd26 (diff)
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
Diffstat (limited to 'tools/gfx-unit-test/get-buffer-handle-test.cpp')
-rw-r--r--tools/gfx-unit-test/get-buffer-handle-test.cpp98
1 files changed, 0 insertions, 98 deletions
diff --git a/tools/gfx-unit-test/get-buffer-handle-test.cpp b/tools/gfx-unit-test/get-buffer-handle-test.cpp
deleted file mode 100644
index c8bd9bca5..000000000
--- a/tools/gfx-unit-test/get-buffer-handle-test.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-#include "tools/unit-test/slang-unit-test.h"
-
-#include "slang-gfx.h"
-#include "gfx-test-util.h"
-#include "tools/gfx-util/shader-cursor.h"
-#include "source/core/slang-basic.h"
-
-#if SLANG_WINDOWS_FAMILY
-#include <d3d12.h>
-#endif
-
-using namespace gfx;
-
-namespace gfx_test
-{
- void getBufferHandleTestImpl(IDevice* device, UnitTestContext* context)
- {
- // We need to create a transient heap in order to create a command buffer.
- Slang::ComPtr<ITransientResourceHeap> transientHeap;
- ITransientResourceHeap::Desc transientHeapDesc = {};
- transientHeapDesc.constantBufferSize = 4096;
- GFX_CHECK_CALL_ABORT(
- device->createTransientResourceHeap(transientHeapDesc, transientHeap.writeRef()));
-
- auto commandBuffer = transientHeap->createCommandBuffer();
- struct CloseComandBufferRAII
- {
- ICommandBuffer* m_commandBuffer;
- ~CloseComandBufferRAII()
- {
- m_commandBuffer->close();
- }
- } closeCommandBufferRAII{ commandBuffer };
- ICommandBuffer::NativeHandle handle = 0;
- GFX_CHECK_CALL_ABORT(commandBuffer->getNativeHandle(&handle));
- if (device->getDeviceInfo().deviceType == gfx::DeviceType::Vulkan)
- {
- // Check that the handle is not null, which is defined as 0.
- SLANG_CHECK(handle != 0);
- }
-#if SLANG_WINDOWS_FAMILY
- else
- {
- auto d3d12Handle = (ID3D12GraphicsCommandList*)handle;
- Slang::ComPtr<ID3D12CommandList> testHandle;
- GFX_CHECK_CALL_ABORT(d3d12Handle->QueryInterface<ID3D12CommandList>(testHandle.writeRef()));
- }
-#endif
- }
-
- void getBufferHandleTestAPI(UnitTestContext* context, Slang::RenderApiFlag::Enum api)
- {
- if ((api & context->enabledApis) == 0)
- {
- SLANG_IGNORE_TEST;
- }
- Slang::ComPtr<IDevice> device;
- IDevice::Desc deviceDesc = {};
- switch (api)
- {
- case Slang::RenderApiFlag::D3D11:
- deviceDesc.deviceType = gfx::DeviceType::DirectX11;
- break;
- case Slang::RenderApiFlag::D3D12:
- deviceDesc.deviceType = gfx::DeviceType::DirectX12;
- break;
- case Slang::RenderApiFlag::Vulkan:
- deviceDesc.deviceType = gfx::DeviceType::Vulkan;
- break;
- default:
- SLANG_IGNORE_TEST;
- }
- deviceDesc.slang.slangGlobalSession = context->slangGlobalSession;
- const char* searchPaths[] = { "", "../../tools/gfx-unit-test", "tools/gfx-unit-test" };
- deviceDesc.slang.searchPathCount = (SlangInt)SLANG_COUNT_OF(searchPaths);
- deviceDesc.slang.searchPaths = searchPaths;
- auto createDeviceResult = gfxCreateDevice(&deviceDesc, device.writeRef());
- if (SLANG_FAILED(createDeviceResult))
- {
- SLANG_IGNORE_TEST;
- }
-
- getBufferHandleTestImpl(device, context);
- }
-
-#if SLANG_WINDOWS_FAMILY
- SLANG_UNIT_TEST(getBufferHandleD3D12)
- {
- return getBufferHandleTestAPI(unitTestContext, Slang::RenderApiFlag::D3D12);
- }
-#endif
-
- SLANG_UNIT_TEST(getBufferHandleVulkan)
- {
- return getBufferHandleTestAPI(unitTestContext, Slang::RenderApiFlag::Vulkan);
- }
-
-}