summaryrefslogtreecommitdiffstats
path: root/tools/render-test/slang-support.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/render-test/slang-support.cpp')
-rw-r--r--tools/render-test/slang-support.cpp21
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))