On Wed, 2009-09-02 at 08:48 -0700, José Fonseca wrote:
> On Wed, 2009-09-02 at 05:11 -0700, Chris Wilson wrote:
> > By rearranging the bitfields within the key we can reduce the size
> > of the key from 644 to 196 bytes, reducing the cost of both the
> > hashing and equality tests.
> > ---
> >  src/mesa/main/texenvprogram.c |    7 ++++---
> >  1 files changed, 4 insertions(+), 3 deletions(-)
> > 
> > diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c
> > index 5913957..3851937 100644
> > --- a/src/mesa/main/texenvprogram.c
> > +++ b/src/mesa/main/texenvprogram.c
> > @@ -82,8 +82,8 @@ texenv_doing_secondary_color(GLcontext *ctx)
> >  #define DISASSEM (MESA_VERBOSE & VERBOSE_DISASSEM)
> >  
> >  struct mode_opt {
> > -   GLuint Source:4;  /**< SRC_x */
> > -   GLuint Operand:3; /**< OPR_x */
> > +   GLubyte Source:4;  /**< SRC_x */
> > +   GLubyte Operand:3; /**< OPR_x */
> >  };
> 
> This doesn't compact anything. This chunk stay as is.

The size of the struct decreases from 4 bytes to one.

If you compile and run the below, you get "1 4" as the output:


#include <stdio.h>

struct fc {
   unsigned char foo:2;
   unsigned char bar:6;
};

struct fi {
   unsigned int foo:2;
   unsigned int bar:6;
};

int main()
{
   printf("%d %d\n", sizeof(struct fc), sizeof(struct fi));
   return 0;
}   



------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to