On Wed, 2009-07-22 at 01:35 -0700, Michał Król wrote: > Keith Whitwell pisze: > > Remove the need to have a pointer in this struct by just including > > the immediate data inline. Having a pointer in the struct introduces > > complications like needing to alloc/free the data pointed to, uncertainty > > about who owns the data, etc. There doesn't seem to be a need for it, > > and it is unlikely to make much difference plus or minus to performance. > > > > This patch is OK, though it heavily relies on the fact the immediates > are always stored as float quadruplets. We either need to add a bunch of > asserts about that, or specialise the tgsi representation by removing > NrTokens field and make it explicit we are dealing with exactly four > values, not (NrTokens-1).
I don't think it relies on this at all. Can you be more specific what you think has been lost? Immediates with less than four values will be handled fine, with some of the slots in the full_immediate struct remaining unused. This is the same as all the other tgsi_full_* structs -- they all have slots that don't always get populated. The NrTokens field retains its meaning, and the tokenized representation of programs isn't changed by this patch. Also, if we ever support non-float immediates, that can be handled by this change just as well as previously -- ie. by adding an Unsigned value to the union tgsi_immediate_data. Keith ------------------------------------------------------------------------------ _______________________________________________ Mesa3d-dev mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
