summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureConverterShaderGen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/TextureConverterShaderGen.cpp')
-rw-r--r--Source/Core/VideoCommon/TextureConverterShaderGen.cpp26
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");
}