From baf5a756640fde8cd4d4e704ed8c9c45da3e5407 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 13 May 2014 11:59:01 -0700 Subject: [PATCH] glsl: Use accessors for ir_variable::warn_extension MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Matt Turner Reviewed-by: Tapani Pälli --- src/glsl/builtin_variables.cpp | 4 ++-- src/glsl/ir.cpp | 11 +++++++++++ src/glsl/ir.h | 22 +++++++++++++++++----- 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 @@ -526,6 +526,18 @@ public: return this->interface_type; } + /** + * 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 */ @@ -782,11 +794,6 @@ public: ir_state_slot *state_slots; /**< State descriptors. */ /*@}*/ - /** - * Emit a warning if this variable is accessed. - */ - const char *warn_extension; - /** * Value assigned in the initializer of a variable declared "const" */ @@ -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; }; /** -- 2.30.2