summaryrefslogtreecommitdiffstats
path: root/tools/render-test
diff options
context:
space:
mode:
Diffstat (limited to 'tools/render-test')
-rw-r--r--tools/render-test/shader-input-layout.cpp34
-rw-r--r--tools/render-test/shader-input-layout.h6
-rw-r--r--tools/render-test/slang-support.cpp49
3 files changed, 28 insertions, 61 deletions
diff --git a/tools/render-test/shader-input-layout.cpp b/tools/render-test/shader-input-layout.cpp
index 37aa5dab6..3ba20c2cb 100644
--- a/tools/render-test/shader-input-layout.cpp
+++ b/tools/render-test/shader-input-layout.cpp
@@ -89,10 +89,8 @@ namespace renderer_test
void ShaderInputLayout::parse(RandomGenerator* rand, const char * source)
{
entries.clear();
- globalGenericTypeArguments.clear();
- entryPointGenericTypeArguments.clear();
- globalExistentialTypeArguments.clear();
- entryPointExistentialTypeArguments.clear();
+ globalSpecializationArgs.clear();
+ entryPointSpecializationArgs.clear();
auto lines = Split(source, '\n');
for (auto & line : lines)
{
@@ -102,37 +100,25 @@ namespace renderer_test
TokenReader parser(lineContent);
try
{
- if (parser.LookAhead("type"))
+ if (parser.LookAhead("entryPointSpecializationArg")
+ || parser.LookAhead("type")
+ || parser.LookAhead("entryPointExistentialType"))
{
parser.ReadToken();
StringBuilder typeExp;
while (!parser.IsEnd())
typeExp << parser.ReadToken().Content;
- entryPointGenericTypeArguments.add(typeExp);
+ entryPointSpecializationArgs.add(typeExp);
}
- else if (parser.LookAhead("global_type"))
+ else if (parser.LookAhead("globalSpecializationArg")
+ || parser.LookAhead("global_type")
+ || parser.LookAhead("globalExistentialType"))
{
parser.ReadToken();
StringBuilder typeExp;
while (!parser.IsEnd())
typeExp << parser.ReadToken().Content;
- globalGenericTypeArguments.add(typeExp);
- }
- else if (parser.LookAhead("globalExistentialType"))
- {
- parser.ReadToken();
- StringBuilder typeExp;
- while (!parser.IsEnd())
- typeExp << parser.ReadToken().Content;
- globalExistentialTypeArguments.add(typeExp);
- }
- else if (parser.LookAhead("entryPointExistentialType"))
- {
- parser.ReadToken();
- StringBuilder typeExp;
- while (!parser.IsEnd())
- typeExp << parser.ReadToken().Content;
- entryPointExistentialTypeArguments.add(typeExp);
+ globalSpecializationArgs.add(typeExp);
}
else
{
diff --git a/tools/render-test/shader-input-layout.h b/tools/render-test/shader-input-layout.h
index 8a00980d9..e57e1ed8b 100644
--- a/tools/render-test/shader-input-layout.h
+++ b/tools/render-test/shader-input-layout.h
@@ -85,10 +85,8 @@ class ShaderInputLayout
{
public:
Slang::List<ShaderInputLayoutEntry> entries;
- Slang::List<Slang::String> globalGenericTypeArguments;
- Slang::List<Slang::String> entryPointGenericTypeArguments;
- Slang::List<Slang::String> globalExistentialTypeArguments;
- Slang::List<Slang::String> entryPointExistentialTypeArguments;
+ Slang::List<Slang::String> globalSpecializationArgs;
+ Slang::List<Slang::String> entryPointSpecializationArgs;
int numRenderTargets = 1;
Slang::Index findEntryIndexByName(const Slang::String& name) const;
diff --git a/tools/render-test/slang-support.cpp b/tools/render-test/slang-support.cpp
index 5b038d208..9a7c13d7a 100644
--- a/tools/render-test/slang-support.cpp
+++ b/tools/render-test/slang-support.cpp
@@ -119,31 +119,18 @@ static const char computeEntryPointName[] = "computeMain";
computeTranslationUnit = translationUnit;
}
-
- Slang::List<const char*> rawGlobalTypeNames;
- for (auto typeName : request.globalGenericTypeArguments)
- rawGlobalTypeNames.add(typeName.getBuffer());
- spSetGlobalGenericArgs(
- slangRequest,
- (int)rawGlobalTypeNames.getCount(),
- rawGlobalTypeNames.getBuffer());
-
- Slang::List<const char*> rawEntryPointTypeNames;
- for (auto typeName : request.entryPointGenericTypeArguments)
- rawEntryPointTypeNames.add(typeName.getBuffer());
-
- const int globalExistentialTypeCount = int(request.globalExistentialTypeArguments.getCount());
- for(int ii = 0; ii < globalExistentialTypeCount; ++ii )
+ const int globalSpecializationArgCount = int(request.globalSpecializationArgs.getCount());
+ for(int ii = 0; ii < globalSpecializationArgCount; ++ii )
{
- spSetTypeNameForGlobalExistentialTypeParam(slangRequest, ii, request.globalExistentialTypeArguments[ii].getBuffer());
+ spSetTypeNameForGlobalExistentialTypeParam(slangRequest, ii, request.globalSpecializationArgs[ii].getBuffer());
}
- const int entryPointExistentialTypeCount = int(request.entryPointExistentialTypeArguments.getCount());
- auto setEntryPointExistentialTypeArgs = [&](int entryPoint)
+ const int entryPointSpecializationArgCount = int(request.entryPointSpecializationArgs.getCount());
+ auto setEntryPointSpecializationArgs = [&](int entryPoint)
{
- for( int ii = 0; ii < entryPointExistentialTypeCount; ++ii )
+ for( int ii = 0; ii < entryPointSpecializationArgCount; ++ii )
{
- spSetTypeNameForEntryPointExistentialTypeParam(slangRequest, entryPoint, ii, request.entryPointExistentialTypeArguments[ii].getBuffer());
+ spSetTypeNameForEntryPointExistentialTypeParam(slangRequest, entryPoint, ii, request.entryPointSpecializationArgs[ii].getBuffer());
}
};
@@ -152,13 +139,11 @@ static const char computeEntryPointName[] = "computeMain";
int computeEntryPointIndex = 0;
if(!gOptions.dontAddDefaultEntryPoints)
{
- computeEntryPointIndex = spAddEntryPointEx(slangRequest, computeTranslationUnit,
+ computeEntryPointIndex = spAddEntryPoint(slangRequest, computeTranslationUnit,
computeEntryPointName,
- SLANG_STAGE_COMPUTE,
- (int)rawEntryPointTypeNames.getCount(),
- rawEntryPointTypeNames.getBuffer());
+ SLANG_STAGE_COMPUTE);
- setEntryPointExistentialTypeArgs(computeEntryPointIndex);
+ setEntryPointSpecializationArgs(computeEntryPointIndex);
}
spSetLineDirectiveMode(slangRequest, SLANG_LINE_DIRECTIVE_MODE_NONE);
@@ -207,11 +192,11 @@ static const char computeEntryPointName[] = "computeMain";
int fragmentEntryPoint = 1;
if( !gOptions.dontAddDefaultEntryPoints )
{
- vertexEntryPoint = spAddEntryPointEx(slangRequest, vertexTranslationUnit, vertexEntryPointName, SLANG_STAGE_VERTEX, (int)rawEntryPointTypeNames.getCount(), rawEntryPointTypeNames.getBuffer());
- fragmentEntryPoint = spAddEntryPointEx(slangRequest, fragmentTranslationUnit, fragmentEntryPointName, SLANG_STAGE_FRAGMENT, (int)rawEntryPointTypeNames.getCount(), rawEntryPointTypeNames.getBuffer());
+ vertexEntryPoint = spAddEntryPoint(slangRequest, vertexTranslationUnit, vertexEntryPointName, SLANG_STAGE_VERTEX);
+ fragmentEntryPoint = spAddEntryPoint(slangRequest, fragmentTranslationUnit, fragmentEntryPointName, SLANG_STAGE_FRAGMENT);
- setEntryPointExistentialTypeArgs(vertexEntryPoint);
- setEntryPointExistentialTypeArgs(fragmentEntryPoint);
+ setEntryPointSpecializationArgs(vertexEntryPoint);
+ setEntryPointSpecializationArgs(fragmentEntryPoint);
}
const SlangResult res = spCompile(slangRequest);
@@ -340,10 +325,8 @@ static const char computeEntryPointName[] = "computeMain";
compileRequest.computeShader.source = sourceInfo;
compileRequest.computeShader.name = computeEntryPointName;
}
- compileRequest.globalGenericTypeArguments = layout.globalGenericTypeArguments;
- compileRequest.entryPointGenericTypeArguments = layout.entryPointGenericTypeArguments;
- compileRequest.globalExistentialTypeArguments = layout.globalExistentialTypeArguments;
- compileRequest.entryPointExistentialTypeArguments = layout.entryPointExistentialTypeArguments;
+ compileRequest.globalSpecializationArgs = layout.globalSpecializationArgs;
+ compileRequest.entryPointSpecializationArgs = layout.entryPointSpecializationArgs;
return ShaderCompilerUtil::compileProgram(session, input, compileRequest, output.output);
}