On 11/01/2013 06:41 PM, Eric Anholt wrote:
Tapani Pälli <tapani.pa...@intel.com> writes:

On 10/29/2013 03:48 PM, Paul Berry wrote:
On 29 October 2013 00:53, Tapani <tapani.pa...@intel.com
<mailto:tapani.pa...@intel.com>> wrote:
         +}
         +
         +
         +/* data required to serialize ir_variable */
         +struct ir_cache_variable_data


     As with glsl_type_data, I don't understand why we need to have
     this class rather than just adding a serialize() method to the
     ir_variable class.
     This could be a serialize function in ir_cache_serialize.cpp. I
     did not want to touch existing ir classes, I think it helps to
     have the cache code separated and in one place. This is of course
     debatable, every ir instruction could have serialize() and
     unserialize() to deal with this.


My chief worry with separating them is that people will forget to
update the serialization code when they change the ir class, because
the thing they need to update will be far away.  This is particularly
a problem when adding new members to the class (something we do quite
frequently when implementing new GLSL features).
I understand and I've been worried about this from the maintainability
point of view as well. I've thought to add some documentation on the
ir.h file about this.
If it's not tested, it will break, and documentation will only help you
say "I told you so!", which is not very useful.  This is why we've been
emphasizing automatic caching over get_program_binary -- because
everyone (except crazy RO root systems) will always be using it,
developers will actually catch the bugs.

Ok *sigh* I'll revisit the architecture and try to get automatic cache to work first.

// Tapani

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to