summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GeometryShaderGen.cpp
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2022-05-20 23:18:23 -0500
committeriwubcode <iwubcode@users.noreply.github.com>2022-06-24 18:09:53 -0500
commitcad1d6ce909eeca6820444b09d9bf3ae9c6c7bc4 (patch)
tree1349d0e0c167a9494eda04c032793b3bbec0812f /Source/Core/VideoCommon/GeometryShaderGen.cpp
parent993fa3bf945b0effdf8d3ae841d1adb4b147ef1e (diff)
VideoCommon: fix support of stereoscopic rendering after moving d3d to SPIRV generation
Diffstat (limited to 'Source/Core/VideoCommon/GeometryShaderGen.cpp')
-rw-r--r--Source/Core/VideoCommon/GeometryShaderGen.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp
index 997e809860..10895ccf88 100644
--- a/Source/Core/VideoCommon/GeometryShaderGen.cpp
+++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp
@@ -123,9 +123,6 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig&
GetInterpolationQualifier(msaa, ssaa, true, false),
ShaderStage::Geometry);
- if (stereo)
- out.Write("\tflat int layer;\n");
-
out.Write("}} ps;\n");
out.Write("void main()\n{{\n");
@@ -136,7 +133,9 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig&
out.Write("\tVS_OUTPUT o;\n");
if (stereo)
+ {
out.Write("\tuint layer : SV_RenderTargetArrayIndex;\n");
+ }
out.Write("\tfloat4 posout : SV_Position;\n");
out.Write("}};\n");
@@ -354,9 +353,12 @@ static void EmitVertex(ShaderCode& out, const ShaderHostConfig& host_config,
if (stereo)
{
// Select the output layer
- out.Write("\tps.layer = eye;\n");
if (api_type == APIType::OpenGL || api_type == APIType::Vulkan)
out.Write("\tgl_Layer = eye;\n");
+ else
+ {
+ out.Write("\tps.layer = eye;\n");
+ }
}
if (api_type == APIType::OpenGL || api_type == APIType::Vulkan)