diff options
Diffstat (limited to 'tools/render-test')
| -rw-r--r-- | tools/render-test/shader-input-layout.cpp | 34 | ||||
| -rw-r--r-- | tools/render-test/shader-input-layout.h | 6 | ||||
| -rw-r--r-- | tools/render-test/slang-support.cpp | 49 |
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); } |
