On 14 December 2011 05:48, Marek Olšák <mar...@gmail.com> wrote: > The strides are useful, although they can be computed by summing up > all the NumComponents fields for each buffer. Note that I also take > into account ARB_transform_feedback3, which allows having interleaved > attribs in more than one buffer. For the EXT_transform_feedback case > and separate attribs, BufferStride is really equal to NumComponents. > > I'd like to ask about something here. > > There is yet another property which can be computed from the other > variables: the destination offsets. Assuming the outputs are supposed > to be interleaved in one buffer, the offset is always 0 for the first > output. The second output has an offset equal to > Outputs[0].NumComponents. The third output has an offset equal to > Outputs[0].NumComponents + Outputs[1].NumComponents, and so on. This > will become more important when we start supporting > ARB_transform_feedback3, which allows holes between attribs via > gl_SkipComponents{1,2,3,4}. It would be useful for Radeons too, > because r600g must already compute the offsets from NumComponents. So > the structure for ARB_transform_feedback3 would look like: > > unsigned NumComponents; > + unsigned DstOffset; > } Outputs[MAX_PROGRAM_OUTPUTS]; > > Are you okay with this change as a way to express gl_SkipComponents? >
Yes, I like this idea very much. I'll work on it this morning and post a follow-up patch.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev