summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/ir_function_detect_recursion.cpp
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2017-06-14 12:43:10 +0200
committerNicolai Hähnle <[email protected]>2017-11-03 14:30:08 +0100
commit4f42450b86ea30f9228309e02ca68755c389866f (patch)
tree419b0281c0f72e5191ee1310a0034c52ea862fdb /src/compiler/glsl/ir_function_detect_recursion.cpp
parent57372c5a42969afe6c7afd6a0389a92e3e1a5178 (diff)
glsl: allow any l-value of an input variable as interpolant in interpolateAt*
The intended rule has been clarified in GLSL 4.60, Section 8.13.2 (Interpolation Functions): "For all of the interpolation functions, interpolant must be an l-value from an in declaration; this can include a variable, a block or structure member, an array element, or some combination of these. Component selection operators (e.g., .xy) may be used when specifying interpolant." For members of interface blocks, var->data.must_be_shader_input must be determined on-the-fly after lowering interface blocks, since we don't want to disable varying packing for an entire block just because one input in it is used in interpolateAt*. v2: keep setting must_be_shader_input in ast_function (Ian) v3: follow the relaxed rule of GLSL 4.60 v4: only apply the relaxed rules to desktop GL (the ES WG decided that the relaxed rules may apply in a future version but not retroactively; see also dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_centroid.negative.*) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101378 Reviewed-by: Ian Romanick <[email protected]> (v1) Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/compiler/glsl/ir_function_detect_recursion.cpp')
0 files changed, 0 insertions, 0 deletions