summaryrefslogtreecommitdiffstats
path: root/src/glsl
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2014-05-13 11:59:01 -0700
committerIan Romanick <[email protected]>2014-09-30 13:34:41 -0700
commitbaf5a756640fde8cd4d4e704ed8c9c45da3e5407 (patch)
tree0657ef8f218275aae628cd8d006becf66d713161 /src/glsl
parent1012e95a40fe08f5d4f6219c1bc9812ad8f91423 (diff)
glsl: Use accessors for ir_variable::warn_extension
The payoff for this will come in the next patch. No change Valgrind massif results for a trimmed apitrace of dota2. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Tapani Pälli <[email protected]>
Diffstat (limited to 'src/glsl')
-rw-r--r--src/glsl/builtin_variables.cpp4
-rw-r--r--src/glsl/ir.cpp11
-rw-r--r--src/glsl/ir.h22
3 files changed, 30 insertions, 7 deletions
diff --git a/src/glsl/builtin_variables.cpp b/src/glsl/builtin_variables.cpp
index 5b6f4ae6220..ddfdc1227c9 100644
--- a/src/glsl/builtin_variables.cpp
+++ b/src/glsl/builtin_variables.cpp
@@ -908,14 +908,14 @@ builtin_variable_generator::generate_fs_special_vars()
ir_variable *const var =
add_output(FRAG_RESULT_STENCIL, int_t, "gl_FragStencilRefARB");
if (state->ARB_shader_stencil_export_warn)
- var->warn_extension = "GL_ARB_shader_stencil_export";
+ var->enable_extension_warning("GL_ARB_shader_stencil_export");
}
if (state->AMD_shader_stencil_export_enable) {
ir_variable *const var =
add_output(FRAG_RESULT_STENCIL, int_t, "gl_FragStencilRefAMD");
if (state->AMD_shader_stencil_export_warn)
- var->warn_extension = "GL_AMD_shader_stencil_export";
+ var->enable_extension_warning("GL_AMD_shader_stencil_export");
}
if (state->ARB_sample_shading_enable) {
diff --git a/src/glsl/ir.cpp b/src/glsl/ir.cpp
index 739a9f41257..b83884163d5 100644
--- a/src/glsl/ir.cpp
+++ b/src/glsl/ir.cpp
@@ -1617,6 +1617,17 @@ ir_variable::determine_interpolation_mode(bool flat_shade)
return INTERP_QUALIFIER_SMOOTH;
}
+void
+ir_variable::enable_extension_warning(const char *extension)
+{
+ this->warn_extension = extension;
+}
+
+const char *
+ir_variable::get_extension_warning() const
+{
+ return this->warn_extension;
+}
ir_function_signature::ir_function_signature(const glsl_type *return_type,
builtin_available_predicate b)
diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index 8003f88ce3d..3537ecfd9ac 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -527,6 +527,18 @@ public:
}
/**
+ * Enable emitting extension warnings for this variable
+ */
+ void enable_extension_warning(const char *extension);
+
+ /**
+ * Get the extension warning string for this variable
+ *
+ * If warnings are not enabled, \c NULL is returned.
+ */
+ const char *get_extension_warning() const;
+
+ /**
* Declared type of the variable
*/
const struct glsl_type *type;
@@ -783,11 +795,6 @@ public:
/*@}*/
/**
- * Emit a warning if this variable is accessed.
- */
- const char *warn_extension;
-
- /**
* Value assigned in the initializer of a variable declared "const"
*/
ir_constant *constant_value;
@@ -810,6 +817,11 @@ private:
* \sa ir_variable::location
*/
const glsl_type *interface_type;
+
+ /**
+ * Emit a warning if this variable is accessed.
+ */
+ const char *warn_extension;
};
/**