summaryrefslogtreecommitdiffstats
path: root/tools/render-test/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/render-test/main.cpp')
-rw-r--r--tools/render-test/main.cpp38
1 files changed, 22 insertions, 16 deletions
diff --git a/tools/render-test/main.cpp b/tools/render-test/main.cpp
index 767c33e14..935b9bc98 100644
--- a/tools/render-test/main.cpp
+++ b/tools/render-test/main.cpp
@@ -96,12 +96,6 @@ static const char vertexEntryPointName[] = "vertexMain";
static const char fragmentEntryPointName[] = "fragmentMain";
static const char computeEntryPointName[] = "computeMain";
-// "Profile" to use when compiling for HLSL targets
-// TODO: does this belong here?
-static const char vertexProfileName[] = "vs_5_0";
-static const char fragmentProfileName[] = "ps_5_0";
-static const char computeProfileName[] = "cs_5_0";
-
SlangResult RenderTestApp::initialize(Renderer* renderer, ShaderCompiler* shaderCompiler)
{
SLANG_RETURN_ON_FAIL(initializeShaders(shaderCompiler));
@@ -201,16 +195,13 @@ Result RenderTestApp::initializeShaders(ShaderCompiler* shaderCompiler)
{
compileRequest.vertexShader.source = sourceInfo;
compileRequest.vertexShader.name = vertexEntryPointName;
- compileRequest.vertexShader.profile = vertexProfileName;
compileRequest.fragmentShader.source = sourceInfo;
compileRequest.fragmentShader.name = fragmentEntryPointName;
- compileRequest.fragmentShader.profile = fragmentProfileName;
}
else
{
compileRequest.computeShader.source = sourceInfo;
compileRequest.computeShader.name = computeEntryPointName;
- compileRequest.computeShader.profile = computeProfileName;
}
compileRequest.entryPointTypeArguments = m_shaderInputLayout.globalTypeArguments;
m_shaderProgram = shaderCompiler->compileProgram(compileRequest);
@@ -412,30 +403,40 @@ SlangResult innerMain(int argc, char** argv)
SlangSourceLanguage nativeLanguage = SLANG_SOURCE_LANGUAGE_UNKNOWN;
SlangCompileTarget slangTarget = SLANG_TARGET_NONE;
+ SlangPassThrough slangPassThrough = SLANG_PASS_THROUGH_NONE;
+ char const* profileName = "";
switch (gOptions.rendererType)
{
case RendererType::DirectX11:
renderer = createD3D11Renderer();
- slangTarget = SLANG_HLSL;
+ slangTarget = SLANG_DXBC;
nativeLanguage = SLANG_SOURCE_LANGUAGE_HLSL;
+ slangPassThrough = SLANG_PASS_THROUGH_FXC;
+ profileName = "sm_5_0";
break;
case RendererType::DirectX12:
renderer = createD3D12Renderer();
- slangTarget = SLANG_HLSL;
+ slangTarget = SLANG_DXBC;
nativeLanguage = SLANG_SOURCE_LANGUAGE_HLSL;
+ slangPassThrough = SLANG_PASS_THROUGH_FXC;
+ profileName = "sm_5_0";
break;
case RendererType::OpenGl:
renderer = createGLRenderer();
slangTarget = SLANG_GLSL;
nativeLanguage = SLANG_SOURCE_LANGUAGE_GLSL;
+ slangPassThrough = SLANG_PASS_THROUGH_GLSLANG;
+ profileName = "glsl_430";
break;
case RendererType::Vulkan:
renderer = createVKRenderer();
slangTarget = SLANG_SPIRV;
nativeLanguage = SLANG_SOURCE_LANGUAGE_GLSL;
+ slangPassThrough = SLANG_PASS_THROUGH_GLSLANG;
+ profileName = "glsl_430";
break;
default:
@@ -449,15 +450,20 @@ SlangResult innerMain(int argc, char** argv)
SLANG_RETURN_ON_FAIL(renderer->initialize(desc, windowHandle));
- auto shaderCompiler = renderer->getShaderCompiler();
+ ShaderCompiler shaderCompiler;
+ shaderCompiler.renderer = renderer;
+ shaderCompiler.target = slangTarget;
+ shaderCompiler.profile = profileName;
switch (gOptions.inputLanguageID)
{
case Options::InputLanguageID::Slang:
- shaderCompiler = createSlangShaderCompiler(shaderCompiler, SLANG_SOURCE_LANGUAGE_SLANG, slangTarget);
+ shaderCompiler.sourceLanguage = SLANG_SOURCE_LANGUAGE_SLANG;
+ shaderCompiler.passThrough = SLANG_PASS_THROUGH_NONE;
break;
- case Options::InputLanguageID::NativeRewrite:
- shaderCompiler = createSlangShaderCompiler(shaderCompiler, nativeLanguage, slangTarget);
+ case Options::InputLanguageID::Native:
+ shaderCompiler.sourceLanguage = nativeLanguage;
+ shaderCompiler.passThrough = slangPassThrough;
break;
default:
@@ -467,7 +473,7 @@ SlangResult innerMain(int argc, char** argv)
{
RenderTestApp app;
- SLANG_RETURN_ON_FAIL(app.initialize(renderer, shaderCompiler));
+ SLANG_RETURN_ON_FAIL(app.initialize(renderer, &shaderCompiler));
// Once initialization is all complete, we show the window...
ShowWindow(windowHandle, showCommand);