diff options
| author | Gangzheng Tong <tonggangzheng@gmail.com> | 2025-07-08 23:44:56 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-09 06:44:56 +0000 |
| commit | 43d0c2100ef1a5df4b54525e50eb29fe7c39ec16 (patch) | |
| tree | 25ec4fb9c726115f90bdaa9878f2f4ca372ad0a6 /tools/gfx-unit-test/get-cmd-buffer-handle-test.cpp | |
| parent | 00746bf09047cdf01c19dac513a532bcf3ed3ea3 (diff) | |
Convert gfx unit tests and examples to use slang-rhi (#7577)
* Port first gfx unit test to slang-rhi
* port triangle example to use slang-rhi
* port platform-test to slang-rhi
* Update platform-test to throttle mouse move events
* port gpu-printing example to use slang-rhi
* port model-viewer example to use slang-rhi
* port ray-tracing example to use slang-rhi
* port ray-tracing pipeline example to use slang-rhi
* port reflection parameter blocks example to use slang-rhi
* port shader-object example to use slang-rhi
* port shader-toy example to use slang-rhi
* Port most of tests to slang-rhi
* port link-time-constant-array-size to use slang-rhi
* Fix tests and find matching tests in slang-rhi
* port autodiff-texture
* remove gfx target; port nv-aftermath-example
* update include path for shader-cursor.h
* Disabled 2 more ported tests
* fix build error
* remove gfx test
* put slang-rhi (static-lib) before slang (shared)
* format code (#7621)
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* add debug callback
* format code (#7649)
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
* Address review comments; revert back to use SLANG_CHECK_MSG
---------
Co-authored-by: slangbot <ellieh+slangbot@nvidia.com>
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'tools/gfx-unit-test/get-cmd-buffer-handle-test.cpp')
| -rw-r--r-- | tools/gfx-unit-test/get-cmd-buffer-handle-test.cpp | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/tools/gfx-unit-test/get-cmd-buffer-handle-test.cpp b/tools/gfx-unit-test/get-cmd-buffer-handle-test.cpp index 5c734f966..50b5bb45a 100644 --- a/tools/gfx-unit-test/get-cmd-buffer-handle-test.cpp +++ b/tools/gfx-unit-test/get-cmd-buffer-handle-test.cpp @@ -1,42 +1,39 @@ #include "core/slang-basic.h" #include "gfx-test-util.h" -#include "gfx-util/shader-cursor.h" -#include "slang-gfx.h" +#include "slang-rhi.h" +#include "slang-rhi/shader-cursor.h" #include "unit-test/slang-unit-test.h" #if SLANG_WINDOWS_FAMILY #include <d3d12.h> #endif -using namespace gfx; +using namespace rhi; 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())); + // Create a command queue and encoder to get a command buffer + ComPtr<ICommandQueue> queue; + GFX_CHECK_CALL_ABORT(device->getQueue(QueueType::Graphics, queue.writeRef())); - auto commandBuffer = transientHeap->createCommandBuffer(); - struct CloseComandBufferRAII - { - ICommandBuffer* m_commandBuffer; - ~CloseComandBufferRAII() { m_commandBuffer->close(); } - } closeCommandBufferRAII{commandBuffer}; - InteropHandle handle = {}; + ComPtr<ICommandEncoder> encoder; + GFX_CHECK_CALL_ABORT(queue->createCommandEncoder(encoder.writeRef())); + + ComPtr<ICommandBuffer> commandBuffer; + GFX_CHECK_CALL_ABORT(encoder->finish(commandBuffer.writeRef())); + + NativeHandle handle = {}; GFX_CHECK_CALL_ABORT(commandBuffer->getNativeHandle(&handle)); - if (device->getDeviceInfo().deviceType == gfx::DeviceType::Vulkan) + if (device->getInfo().deviceType == rhi::DeviceType::Vulkan) { - SLANG_CHECK(handle.handleValue != 0); + SLANG_CHECK(handle.value != 0); } #if SLANG_WINDOWS_FAMILY else { - auto d3d12Handle = (ID3D12GraphicsCommandList*)handle.handleValue; + auto d3d12Handle = (ID3D12GraphicsCommandList*)handle.value; Slang::ComPtr<IUnknown> testHandle1; GFX_CHECK_CALL_ABORT(d3d12Handle->QueryInterface<IUnknown>(testHandle1.writeRef())); Slang::ComPtr<ID3D12GraphicsCommandList> testHandle2; @@ -49,23 +46,22 @@ void getBufferHandleTestImpl(IDevice* device, UnitTestContext* context) void getBufferHandleTestAPI(UnitTestContext* context, Slang::RenderApiFlag::Enum api) { - gfxEnableDebugLayer(context->enableDebugLayers); if ((api & context->enabledApis) == 0) { SLANG_IGNORE_TEST; } Slang::ComPtr<IDevice> device; - IDevice::Desc deviceDesc = {}; + DeviceDesc deviceDesc = {}; switch (api) { case Slang::RenderApiFlag::D3D11: - deviceDesc.deviceType = gfx::DeviceType::DirectX11; + deviceDesc.deviceType = rhi::DeviceType::D3D11; break; case Slang::RenderApiFlag::D3D12: - deviceDesc.deviceType = gfx::DeviceType::DirectX12; + deviceDesc.deviceType = rhi::DeviceType::D3D12; break; case Slang::RenderApiFlag::Vulkan: - deviceDesc.deviceType = gfx::DeviceType::Vulkan; + deviceDesc.deviceType = rhi::DeviceType::Vulkan; break; default: SLANG_IGNORE_TEST; @@ -74,14 +70,14 @@ void getBufferHandleTestAPI(UnitTestContext* context, Slang::RenderApiFlag::Enum 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()); + auto createDeviceResult = getRHI()->createDevice(deviceDesc, device.writeRef()); if (SLANG_FAILED(createDeviceResult)) { SLANG_IGNORE_TEST; } // Ignore this test on swiftshader. Swiftshader seems to have a bug that causes the test // to crash. - if (Slang::String(device->getDeviceInfo().adapterName).toLower().contains("swiftshader")) + if (Slang::String(device->getInfo().adapterName).toLower().contains("swiftshader")) { SLANG_IGNORE_TEST; } |
