summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/PostProcessing.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2019-10-02 12:59:50 +1000
committerStenzek <stenzek@gmail.com>2019-10-02 12:59:50 +1000
commit33a6d265e51c2289192eef15ffeec830b98b2410 (patch)
tree9c286545beca792f35a1a51caa47abfc2975f2ae /Source/Core/VideoCommon/PostProcessing.cpp
parentaf849126b37b3a9adb9542437b134aca947b8f5a (diff)
PostProcessing: Use interface blocks for shaders
Diffstat (limited to 'Source/Core/VideoCommon/PostProcessing.cpp')
-rw-r--r--Source/Core/VideoCommon/PostProcessing.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/PostProcessing.cpp b/Source/Core/VideoCommon/PostProcessing.cpp
index 8329b74e79..23c0ded751 100644
--- a/Source/Core/VideoCommon/PostProcessing.cpp
+++ b/Source/Core/VideoCommon/PostProcessing.cpp
@@ -499,7 +499,18 @@ std::string PostProcessing::GetHeader() const
else
{
ss << "SAMPLER_BINDING(0) uniform sampler2DArray samp0;\n";
- ss << "VARYING_LOCATION(0) in float3 v_tex0;\n";
+
+ if (g_ActiveConfig.backend_info.bSupportsGeometryShaders)
+ {
+ ss << "VARYING_LOCATION(0) in VertexData {\n";
+ ss << " float3 v_tex0;\n";
+ ss << "};\n";
+ }
+ else
+ {
+ ss << "VARYING_LOCATION(0) in float3 v_tex0;\n";
+ }
+
ss << "FRAGMENT_OUTPUT_LOCATION(0) out float4 ocol0;\n";
}
@@ -597,7 +608,17 @@ bool PostProcessing::CompileVertexShader()
}
else
{
- ss << "VARYING_LOCATION(0) out float3 v_tex0;\n";
+ if (g_ActiveConfig.backend_info.bSupportsGeometryShaders)
+ {
+ ss << "VARYING_LOCATION(0) out VertexData {\n";
+ ss << " float3 v_tex0;\n";
+ ss << "};\n";
+ }
+ else
+ {
+ ss << "VARYING_LOCATION(0) out float3 v_tex0;\n";
+ }
+
ss << "#define id gl_VertexID\n";
ss << "#define opos gl_Position\n";
ss << "void main() {\n";