diff options
Diffstat (limited to 'tools/render-test/slang-support.cpp')
| -rw-r--r-- | tools/render-test/slang-support.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/tools/render-test/slang-support.cpp b/tools/render-test/slang-support.cpp index 1dc7323a5..0bf086d43 100644 --- a/tools/render-test/slang-support.cpp +++ b/tools/render-test/slang-support.cpp @@ -92,16 +92,25 @@ RefPtr<ShaderProgram> ShaderCompiler::compileProgram( RefPtr<ShaderProgram> shaderProgram; - Slang::List<const char*> rawTypeNames; + + Slang::List<const char*> rawGlobalTypeNames; + for (auto typeName : request.globalTypeArguments) + rawGlobalTypeNames.Add(typeName.Buffer()); + spSetGlobalGenericArgs( + slangRequest, + (int)rawGlobalTypeNames.Count(), + rawGlobalTypeNames.Buffer()); + + Slang::List<const char*> rawEntryPointTypeNames; for (auto typeName : request.entryPointTypeArguments) - rawTypeNames.Add(typeName.Buffer()); + rawEntryPointTypeNames.Add(typeName.Buffer()); if (request.computeShader.name) { int computeEntryPoint = spAddEntryPointEx(slangRequest, computeTranslationUnit, computeEntryPointName, SLANG_STAGE_COMPUTE, - (int)rawTypeNames.Count(), - rawTypeNames.Buffer()); + (int)rawEntryPointTypeNames.Count(), + rawEntryPointTypeNames.Buffer()); spSetLineDirectiveMode(slangRequest, SLANG_LINE_DIRECTIVE_MODE_NONE); const SlangResult res = spCompile(slangRequest); @@ -129,8 +138,8 @@ RefPtr<ShaderProgram> ShaderCompiler::compileProgram( } else { - int vertexEntryPoint = spAddEntryPointEx(slangRequest, vertexTranslationUnit, vertexEntryPointName, SLANG_STAGE_VERTEX, (int)rawTypeNames.Count(), rawTypeNames.Buffer()); - int fragmentEntryPoint = spAddEntryPointEx(slangRequest, fragmentTranslationUnit, fragmentEntryPointName, SLANG_STAGE_FRAGMENT, (int)rawTypeNames.Count(), rawTypeNames.Buffer()); + int vertexEntryPoint = spAddEntryPointEx(slangRequest, vertexTranslationUnit, vertexEntryPointName, SLANG_STAGE_VERTEX, (int)rawEntryPointTypeNames.Count(), rawEntryPointTypeNames.Buffer()); + int fragmentEntryPoint = spAddEntryPointEx(slangRequest, fragmentTranslationUnit, fragmentEntryPointName, SLANG_STAGE_FRAGMENT, (int)rawEntryPointTypeNames.Count(), rawEntryPointTypeNames.Buffer()); const SlangResult res = spCompile(slangRequest); if (auto diagnostics = spGetDiagnosticOutput(slangRequest)) |
