On Mon, 2010-03-01 at 09:03 -0800, Michel Dänzer wrote: > On Fri, 2010-02-26 at 08:47 -0800, Jose Fonseca wrote: > > Module: Mesa > > Branch: master > > Commit: 9beb302212a2afac408016cbd7b93c8b859e4910 > > URL: > > http://cgit.freedesktop.org/mesa/mesa/commit/?id=9beb302212a2afac408016cbd7b93c8b859e4910 > > > > Author: José Fonseca <jfons...@vmware.com> > > Date: Fri Feb 26 16:45:22 2010 +0000 > > > > util: Code generate functions to pack and unpack a single pixel. > > > > Should work correctly for all pixel formats except SRGB formats. > > > > Generated code made much simpler by defining the pixel format as > > a C structure. For example this is the generated structure for > > PIPE_FORMAT_B6UG5SR5S_NORM: > > > > union util_format_b6ug5sr5s_norm { > > uint16_t value; > > struct { > > int r:5; > > int g:5; > > unsigned b:6; > > } chan; > > }; > > José, are you aware that the memory layout of bitfields is mostly > implementation dependent? IME this makes them mostly unusable for > modelling hardware in a portable manner.
No, I wasn't! I'm surprised -- they're used quite a lot. > > Not used everywhere yet because it seems compiled code is slower than > > bitshift arithmetic by some misterious reason. So we should generate > > bitshift arithmetic at least for the simple UNORM pixel formats. > > Due to above I'd recommend always using bitshift arithmetic rather than > bitfields anyway. :) Yeah. I think I'll do just that. bitfields made generated code cleaner, but if I have to implement bitshift arith for performance then might as well do it for all formats that apply. Thanks for the feedback. Jose ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev