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.cpp53
1 files changed, 29 insertions, 24 deletions
diff --git a/tools/render-test/main.cpp b/tools/render-test/main.cpp
index 51a96436f..3255f4b9b 100644
--- a/tools/render-test/main.cpp
+++ b/tools/render-test/main.cpp
@@ -4,6 +4,7 @@
#include "render.h"
#include "render-d3d11.h"
#include "render-gl.h"
+#include "render-vk.h"
#include "slang-support.h"
#include "shader-input-layout.h"
#include <stdio.h>
@@ -98,7 +99,8 @@ Error initializeShaders(
ShaderCompileRequest::SourceInfo sourceInfo;
sourceInfo.path = sourcePath;
- sourceInfo.text = sourceText;
+ sourceInfo.dataBegin = sourceText;
+ sourceInfo.dataEnd = sourceText + sourceSize;
ShaderCompileRequest compileRequest;
compileRequest.source = sourceInfo;
@@ -322,18 +324,28 @@ int main(
Renderer* renderer = nullptr;
- switch( gOptions.mode )
+ SlangSourceLanguage nativeLanguage = SLANG_SOURCE_LANGUAGE_UNKNOWN;
+ SlangCompileTarget slangTarget = SLANG_TARGET_NONE;
+ switch( gOptions.rendererID )
{
- case Mode::Slang:
- case Mode::HLSL:
- case Mode::HLSLRewrite:
+ case RendererID::D3D11:
renderer = createD3D11Renderer();
+ slangTarget = SLANG_HLSL;
+ nativeLanguage = SLANG_SOURCE_LANGUAGE_HLSL;
break;
- case Mode::GLSL:
- case Mode::GLSLRewrite:
- case Mode::GLSLCrossCompile:
+ // TODO: `RendererID::D3D12`
+
+ case RendererID::GL:
renderer = createGLRenderer();
+ slangTarget = SLANG_GLSL;
+ nativeLanguage = SLANG_SOURCE_LANGUAGE_GLSL;
+ break;
+
+ case RendererID::VK:
+ renderer = createVKRenderer();
+ slangTarget = SLANG_SPIRV;
+ nativeLanguage = SLANG_SOURCE_LANGUAGE_GLSL;
break;
default:
@@ -345,22 +357,14 @@ int main(
renderer->initialize(windowHandle);
auto shaderCompiler = renderer->getShaderCompiler();
- switch( gOptions.mode )
+ switch( gOptions.inputLanguageID )
{
- case Mode::Slang:
- shaderCompiler = createSlangShaderCompiler(shaderCompiler, SLANG_SOURCE_LANGUAGE_SLANG, SLANG_HLSL);
- break;
-
- case Mode::HLSLRewrite:
- shaderCompiler = createSlangShaderCompiler(shaderCompiler, SLANG_SOURCE_LANGUAGE_HLSL, SLANG_HLSL);
- break;
-
- case Mode::GLSLRewrite:
- shaderCompiler = createSlangShaderCompiler(shaderCompiler, SLANG_SOURCE_LANGUAGE_GLSL, SLANG_GLSL);
+ case InputLanguageID::Slang:
+ shaderCompiler = createSlangShaderCompiler(shaderCompiler, SLANG_SOURCE_LANGUAGE_SLANG, slangTarget);
break;
- case Mode::GLSLCrossCompile:
- shaderCompiler = createSlangShaderCompiler(shaderCompiler, SLANG_SOURCE_LANGUAGE_SLANG, SLANG_GLSL);
+ case InputLanguageID::NativeRewrite:
+ shaderCompiler = createSlangShaderCompiler(shaderCompiler, nativeLanguage, slangTarget);
break;
default:
@@ -397,9 +401,6 @@ int main(
{
// Whenver we don't have Windows events to process,
// we render a frame.
- static const float kClearColor[] = { 0.25, 0.25, 0.25, 1.0 };
- renderer->setClearColor(kClearColor);
- renderer->clearFrame();
if (gOptions.shaderType == ShaderProgramType::Compute)
{
@@ -407,6 +408,10 @@ int main(
}
else
{
+ static const float kClearColor[] = { 0.25, 0.25, 0.25, 1.0 };
+ renderer->setClearColor(kClearColor);
+ renderer->clearFrame();
+
renderFrameInner(renderer);
}
// If we are in a mode where output is requested, we need to snapshot the back buffer here