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> --- .../gfx-unit-test/link-time-type-layout-nested.cpp | 27 +++++++++++----------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'tools/gfx-unit-test/link-time-type-layout-nested.cpp') diff --git a/tools/gfx-unit-test/link-time-type-layout-nested.cpp b/tools/gfx-unit-test/link-time-type-layout-nested.cpp index b6ea0e64d..2c2c83a94 100644 --- a/tools/gfx-unit-test/link-time-type-layout-nested.cpp +++ b/tools/gfx-unit-test/link-time-type-layout-nested.cpp @@ -1,9 +1,9 @@ #include "core/slang-blob.h" #include "gfx-test-util.h" -#include "slang-gfx.h" +#include "slang-rhi.h" #include "unit-test/slang-unit-test.h" -using namespace gfx; +using namespace rhi; namespace gfx_test { @@ -17,8 +17,8 @@ static void diagnoseIfNeeded(Slang::ComPtr& diagnosticsBlob) } static Slang::Result loadProgram( - gfx::IDevice* device, - Slang::ComPtr& outShaderProgram, + rhi::IDevice* device, + Slang::ComPtr& outShaderProgram, slang::ProgramLayout*& slangReflection) { // main.slang: declares the interface, extern struct Inner, and Outer struct with Inner field @@ -102,9 +102,9 @@ static Slang::Result loadProgram( slangReflection = composedProgram->getLayout(); // Create a shader program - gfx::IShaderProgram::Desc programDesc = {}; + ShaderProgramDesc programDesc = {}; programDesc.slangGlobalScope = composedProgram.get(); - auto shaderProgram = device->createProgram(programDesc); + auto shaderProgram = device->createShaderProgram(programDesc); outShaderProgram = shaderProgram; return SLANG_OK; @@ -200,9 +200,9 @@ static void validateNestedExternStructLayout( SLANG_CHECK_MSG(foundDataField, "Could not find field 'data' in Inner struct"); } -void linkTimeTypeLayoutNestedImpl(gfx::IDevice* device, UnitTestContext* context) +void linkTimeTypeLayoutNestedImpl(rhi::IDevice* device, UnitTestContext* context) { - Slang::ComPtr shaderProgram; + Slang::ComPtr shaderProgram; slang::ProgramLayout* slangReflection = nullptr; auto result = loadProgram(device, shaderProgram, slangReflection); @@ -212,13 +212,12 @@ void linkTimeTypeLayoutNestedImpl(gfx::IDevice* device, UnitTestContext* context validateNestedExternStructLayout(context, slangReflection); // Create a graphics pipeline to verify everything works - GraphicsPipelineStateDesc pipelineDesc = {}; + RenderPipelineDesc pipelineDesc = {}; pipelineDesc.program = shaderProgram.get(); - pipelineDesc.primitiveType = PrimitiveType::Triangle; + pipelineDesc.primitiveTopology = PrimitiveTopology::TriangleList; - ComPtr pipelineState; - auto pipelineResult = - device->createGraphicsPipelineState(pipelineDesc, pipelineState.writeRef()); + ComPtr pipelineState; + auto pipelineResult = device->createRenderPipeline(pipelineDesc, pipelineState.writeRef()); SLANG_CHECK(SLANG_SUCCEEDED(pipelineResult)); } @@ -235,7 +234,7 @@ void linkTimeTypeLayoutNestedImpl(gfx::IDevice* device, UnitTestContext* context SLANG_UNIT_TEST(linkTimeTypeLayoutNested) { - runTestImpl(linkTimeTypeLayoutNestedImpl, unitTestContext, Slang::RenderApiFlag::Vulkan); + runTestImpl(linkTimeTypeLayoutNestedImpl, unitTestContext, DeviceType::Vulkan); } } // namespace gfx_test -- cgit v1.2.3