glsl: Use accessors for ir_variable::warn_extension
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 13 May 2014 18:59:01 +0000 (11:59 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 30 Sep 2014 20:34:41 +0000 (13:34 -0700)
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 <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
src/glsl/builtin_variables.cpp
src/glsl/ir.cpp
src/glsl/ir.h

index 5b6f4ae6220f45e36c31b7a00854fbea79e220d9..ddfdc1227c9350101223f57a88fc07d369246d17 100644 (file)
@@ -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) {
index 739a9f41257bb941a21db512d63be718aac57e90..b83884163d5099e5eb2693ffbefdcf4050ce0804 100644 (file)
@@ -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)
index 8003f88ce3d93e3d84e4de6a8f58ab8f8e15329d..3537ecfd9ac1c4d86b0c8be0f0ce77ea1886d1db 100644 (file)
@@ -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;
 };
 
 /**