aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2011-11-19 16:41:08 +0100
committerMarek Olšák <[email protected]>2011-11-22 20:56:50 +0100
commit6b43d6fdda13d73ca7b059f986ce2a2046bf03a0 (patch)
treeb240d4e326c9cc3ce9767dcaf06c41bcef28cff8 /src
parentbbcb648bc2f45dd85e33c7301527c8f6d97cbce6 (diff)
glsl: finish up ARB_conservative_depth (v2)
v2: updated an error message Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/glsl/ast_to_hir.cpp10
-rw-r--r--src/glsl/glsl_lexer.ll1
-rw-r--r--src/glsl/glsl_parser.yy9
3 files changed, 16 insertions, 4 deletions
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index ac090c315e7..d5b04e9d7bb 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2090,6 +2090,7 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
* The following extension do not allow the deprecated keywords:
*
* GL_AMD_conservative_depth
+ * GL_ARB_conservative_depth
* GL_ARB_gpu_shader5
* GL_ARB_separate_shader_objects
* GL_ARB_tesselation_shader
@@ -2122,9 +2123,11 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
+ qual->flags.q.depth_less
+ qual->flags.q.depth_unchanged;
if (depth_layout_count > 0
- && !state->AMD_conservative_depth_enable) {
+ && !state->AMD_conservative_depth_enable
+ && !state->ARB_conservative_depth_enable) {
_mesa_glsl_error(loc, state,
- "extension GL_AMD_conservative_depth must be enabled "
+ "extension GL_AMD_conservative_depth or "
+ "GL_ARB_conservative_depth must be enabled "
"to use depth layout qualifiers");
} else if (depth_layout_count > 0
&& strcmp(var->name, "gl_FragDepth") != 0) {
@@ -2237,7 +2240,8 @@ get_variable_being_redeclared(ir_variable *var, ast_declaration *decl,
earlier->interpolation = var->interpolation;
/* Layout qualifiers for gl_FragDepth. */
- } else if (state->AMD_conservative_depth_enable
+ } else if ((state->AMD_conservative_depth_enable ||
+ state->ARB_conservative_depth_enable)
&& strcmp(var->name, "gl_FragDepth") == 0
&& earlier->type == var->type
&& earlier->mode == var->mode) {
diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll
index 49f3bc82eb8..c7cfedd4232 100644
--- a/src/glsl/glsl_lexer.ll
+++ b/src/glsl/glsl_lexer.ll
@@ -310,6 +310,7 @@ void return VOID_TOK;
layout {
if ((yyextra->language_version >= 140)
|| yyextra->AMD_conservative_depth_enable
+ || yyextra->ARB_conservative_depth_enable
|| yyextra->ARB_explicit_attrib_location_enable
|| yyextra->ARB_fragment_coord_conventions_enable) {
return LAYOUT_TOK;
diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 836390453b1..71ab039d620 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -1124,7 +1124,9 @@ layout_qualifier_id:
}
/* Layout qualifiers for AMD/ARB_conservative_depth. */
- if (!got_one && state->AMD_conservative_depth_enable) {
+ if (!got_one &&
+ (state->AMD_conservative_depth_enable ||
+ state->ARB_conservative_depth_enable)) {
if (strcmp($1, "depth_any") == 0) {
got_one = true;
$$.flags.q.depth_any = 1;
@@ -1141,6 +1143,11 @@ layout_qualifier_id:
if (got_one && state->AMD_conservative_depth_warn) {
_mesa_glsl_warning(& @1, state,
+ "GL_AMD_conservative_depth "
+ "layout qualifier `%s' is used\n", $1);
+ }
+ if (got_one && state->ARB_conservative_depth_warn) {
+ _mesa_glsl_warning(& @1, state,
"GL_ARB_conservative_depth "
"layout qualifier `%s' is used\n", $1);
}