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&#174; 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

Reply via email to