glsl: Cross validate variable's invariance by explicit invariance only
authorDanylo Piliaiev <danylo.piliaiev@globallogic.com>
Tue, 4 Sep 2018 08:42:04 +0000 (11:42 +0300)
committerJordan Justen <jordan.l.justen@intel.com>
Fri, 22 Mar 2019 06:28:08 +0000 (23:28 -0700)
commitea9bde151f1394ff82b73d028c2a3a747723e525
treea75bb87a5fc1b550dfcab077bfc2a6f89e22cd96
parent1d996ef7144f97ce948fb8e8ec5792898bea56f6
glsl: Cross validate variable's invariance by explicit invariance only

'invariant' qualifier is propagated on variables which are used
to calculate other invariant variables, however when we are matching
variable's declarations we should take into account only explicitly
declared invariance because invariance propagation is an implementation
specific detail.

Thus new flag is added to ir_variable_data which indicates 'invariant'
qualifier being explicitly set in the shader.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100316
Fixes: 89b60492 ('glsl: Add a pass to propagate the "invariant" and
  "precise" qualifiers')

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/compiler/glsl/ast_to_hir.cpp
src/compiler/glsl/ir.cpp
src/compiler/glsl/ir.h
src/compiler/glsl/ir_print_visitor.cpp
src/compiler/glsl/ir_reader.cpp
src/compiler/glsl/link_varyings.cpp
src/compiler/glsl/linker.cpp