summaryrefslogtreecommitdiffstats
path: root/src/glsl/opt_if_simplification.cpp
diff options
context:
space:
mode:
authorAnuj Phogat <[email protected]>2014-02-05 15:01:58 -0800
committerAnuj Phogat <[email protected]>2014-05-01 10:58:39 -0700
commit35f11e85cbe82b4bb77535e84e5515a5c49f67a6 (patch)
tree5e1ac993a4b9367808313b68f0ac77f3735ebfc7 /src/glsl/opt_if_simplification.cpp
parenta751adf07117ec4b3659fe60d0a833ebfcd4f840 (diff)
glsl: Link error if fs defines conflicting qualifiers for gl_FragCoord
GLSL 1.50 spec says: "If gl_FragCoord is redeclared in any fragment shader in a program, it must be redeclared in all the fragment shaders in that program that have a static use gl_FragCoord. All redeclarations of gl_FragCoord in all fragment shaders in a single program must have the same set of qualifiers." This patch causes the shader link to fail if we have multiple fragment shaders with conflicting layout qualifiers for gl_FragCoord. V2: Restructure the code and add conditions to correctly handle the following case: fragment shader 1: layout(origin_upper_left) in vec4 gl_FragCoord; void main() { foo(); gl_FragColor = gl_FragData; } fragment shader 2: layout(pixel_center_integer) in vec4 gl_FragCoord; void foo() { } V3: Allow linking in the following case: fragment shader 1: void main() { foo(); gl_FragColor = gl_FragCoord; } fragment shader 2: in vec4 gl_FragCoord; void foo() { ... } Signed-off-by: Anuj Phogat <[email protected]> Cc: <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/glsl/opt_if_simplification.cpp')
0 files changed, 0 insertions, 0 deletions