From 43d0c2100ef1a5df4b54525e50eb29fe7c39ec16 Mon Sep 17 00:00:00 2001 From: Gangzheng Tong Date: Tue, 8 Jul 2025 23:44:56 -0700 Subject: 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 Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> --- tools/gfx-unit-test/get-cmd-queue-handle-test.cpp | 34 ++++++++++++----------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'tools/gfx-unit-test/get-cmd-queue-handle-test.cpp') diff --git a/tools/gfx-unit-test/get-cmd-queue-handle-test.cpp b/tools/gfx-unit-test/get-cmd-queue-handle-test.cpp index 82561f4a2..57e50b74b 100644 --- a/tools/gfx-unit-test/get-cmd-queue-handle-test.cpp +++ b/tools/gfx-unit-test/get-cmd-queue-handle-test.cpp @@ -1,31 +1,32 @@ #include "core/slang-basic.h" #include "gfx-test-util.h" -#include "gfx-util/shader-cursor.h" -#include "slang-gfx.h" +#include "slang-rhi/shader-cursor.h" #include "unit-test/slang-unit-test.h" +#include + #if SLANG_WINDOWS_FAMILY #include #endif -using namespace gfx; +using namespace rhi; namespace gfx_test { void getQueueHandleTestImpl(IDevice* device, UnitTestContext* context) { - ICommandQueue::Desc queueDesc = {ICommandQueue::QueueType::Graphics}; - auto queue = device->createCommandQueue(queueDesc); - InteropHandle handle; + ComPtr queue; + GFX_CHECK_CALL_ABORT(device->getQueue(QueueType::Graphics, queue.writeRef())); + NativeHandle handle; GFX_CHECK_CALL_ABORT(queue->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 d3d12Queue = (ID3D12CommandQueue*)handle.handleValue; + auto d3d12Queue = (ID3D12CommandQueue*)handle.value; Slang::ComPtr testHandle1; GFX_CHECK_CALL_ABORT(d3d12Queue->QueryInterface(testHandle1.writeRef())); Slang::ComPtr testHandle2; @@ -38,23 +39,24 @@ void getQueueHandleTestImpl(IDevice* device, UnitTestContext* context) void getQueueHandleTestAPI(UnitTestContext* context, Slang::RenderApiFlag::Enum api) { - gfxEnableDebugLayer(context->enableDebugLayers); + if (context->enableDebugLayers) + getRHI()->enableDebugLayers(); if ((api & context->enabledApis) == 0) { SLANG_IGNORE_TEST; } Slang::ComPtr 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; @@ -63,14 +65,14 @@ void getQueueHandleTestAPI(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; } -- cgit v1.2.3