From a67cb0609587c230746b52567ff5775cab215220 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Sat, 3 Feb 2024 10:14:04 +0800 Subject: GLSL Passthrough support for SSBO types (#3446) * GLSL Passthrough support for SSBO types * GLSL Passthrough support for SSBO types * Correctly apply glsl local size layout to entry points during lowering * Test for glsl layout correctness * typo * Reflect GLSL SSBO as raw buffers * Functional test for glsl ssbo * Allow allow glsl for render tests * Functional test for ssbo passthrough * Functional test for ssbo passthrough with spirv-direct * fix windows build error --------- Co-authored-by: Yong He --- tools/render-test/options.cpp | 8 ++++++++ tools/render-test/options.h | 4 ++++ tools/render-test/slang-support.cpp | 2 ++ 3 files changed, 14 insertions(+) (limited to 'tools') diff --git a/tools/render-test/options.cpp b/tools/render-test/options.cpp index 0266a0c75..4b62eb60b 100644 --- a/tools/render-test/options.cpp +++ b/tools/render-test/options.cpp @@ -223,6 +223,14 @@ static gfx::DeviceType _toRenderType(Slang::RenderApiType apiType) // // TODO: At some point we could warn/error and deprecate this option. } + else if (argValue == "-allow-glsl") + { + outOptions.allowGLSL = true; + } + else if (argValue == "-entry") + { + SLANG_RETURN_ON_FAIL(reader.expectArg(outOptions.entryPointName)); + } else { // Lookup diff --git a/tools/render-test/options.h b/tools/render-test/options.h index e3b19c272..5a46c4000 100644 --- a/tools/render-test/options.h +++ b/tools/render-test/options.h @@ -71,6 +71,10 @@ struct Options bool dontAddDefaultEntryPoints = false; + bool allowGLSL = false; + + Slang::String entryPointName; + Slang::List renderFeatures; /// Required render features for this test to run uint32_t computeDispatchSize[3] = { 1, 1, 1 }; diff --git a/tools/render-test/slang-support.cpp b/tools/render-test/slang-support.cpp index 82d292cee..c598e4ea5 100644 --- a/tools/render-test/slang-support.cpp +++ b/tools/render-test/slang-support.cpp @@ -110,6 +110,8 @@ void ShaderCompilerUtil::Output::reset() if (options.generateSPIRVDirectly) spSetTargetFlags(slangRequest, 0, SLANG_TARGET_FLAG_GENERATE_SPIRV_DIRECTLY); + slangRequest->setAllowGLSLInput(options.allowGLSL); + // Define a macro so that shader code in a test can detect what language we // are nominally working with. char const* langDefine = nullptr; -- cgit v1.2.3