diff options
| author | Connor McLaughlin <stenzek@gmail.com> | 2019-04-22 12:41:12 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-22 12:41:12 +1000 |
| commit | 93be178f28a55ea1bb3fa796b32eecae482a53d1 (patch) | |
| tree | c7e529d6f174a17456bcb9c39dd2e596f4fc4ba9 /Source/Core/VideoCommon/TextureConverterShaderGen.cpp | |
| parent | fb841c75cbde93c6d615fcc91d8142ba2493e1fd (diff) | |
| parent | eddde3e6c8d8ea37a724e66dbc82b432ae63df96 (diff) | |
Merge pull request #7857 from stenzek/opengl-stereo
OGL: Fix stereoscopy
Diffstat (limited to 'Source/Core/VideoCommon/TextureConverterShaderGen.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/TextureConverterShaderGen.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp index 15de7ba9a7..df46254d91 100644 --- a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp +++ b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp @@ -67,8 +67,17 @@ ShaderCode GenerateVertexShader(APIType api_type) } else if (api_type == APIType::OpenGL || api_type == APIType::Vulkan) { - out.Write("VARYING_LOCATION(0) out float3 v_tex0;\n" - "#define id gl_VertexID\n" + if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) + { + out.Write("VARYING_LOCATION(0) out VertexData {\n"); + out.Write(" float3 v_tex0;\n"); + out.Write("};\n"); + } + else + { + out.Write("VARYING_LOCATION(0) out float3 v_tex0;\n"); + } + out.Write("#define id gl_VertexID\n" "#define opos gl_Position\n" "void main() {\n"); } @@ -112,8 +121,17 @@ ShaderCode GeneratePixelShader(APIType api_type, const UidData* uid_data) "clamp_tb.x, clamp_tb.y), %s));\n" "}\n", mono_depth ? "0.0" : "uv.z"); - out.Write("VARYING_LOCATION(0) in vec3 v_tex0;\n" - "FRAGMENT_OUTPUT_LOCATION(0) out vec4 ocol0;" + if (g_ActiveConfig.backend_info.bSupportsGeometryShaders) + { + out.Write("VARYING_LOCATION(0) in VertexData {\n"); + out.Write(" float3 v_tex0;\n"); + out.Write("};\n"); + } + else + { + out.Write("VARYING_LOCATION(0) in vec3 v_tex0;\n"); + } + out.Write("FRAGMENT_OUTPUT_LOCATION(0) out vec4 ocol0;" "void main()\n{\n"); } |
