Mesa (master): glsl: Treat gl_FragCoord as a varying even when it's a system value
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jul 29 23:30:41 UTC 2019
Module: Mesa
Branch: master
Commit: 44268b1c72e327a812678f123000942083407944
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=44268b1c72e327a812678f123000942083407944
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Fri Jul 19 10:42:56 2019 -0500
glsl: Treat gl_FragCoord as a varying even when it's a system value
This fixes glsl-fcoord-invariant-pass.shader_test on drivers that set
GLSLFragCoordIsSysVal which includes radeonsi among others.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
---
src/compiler/glsl/ast_to_hir.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
index 9cd67ab7885..d7c396aa0eb 100644
--- a/src/compiler/glsl/ast_to_hir.cpp
+++ b/src/compiler/glsl/ast_to_hir.cpp
@@ -2706,7 +2706,9 @@ is_varying_var(ir_variable *var, gl_shader_stage target)
case MESA_SHADER_VERTEX:
return var->data.mode == ir_var_shader_out;
case MESA_SHADER_FRAGMENT:
- return var->data.mode == ir_var_shader_in;
+ return var->data.mode == ir_var_shader_in ||
+ (var->data.mode == ir_var_system_value &&
+ var->data.location == SYSTEM_VALUE_FRAG_COORD);
default:
return var->data.mode == ir_var_shader_out || var->data.mode == ir_var_shader_in;
}
More information about the mesa-commit
mailing list