[Mesa-dev] [PATCH 2/2] gallium: don't use enum bitfields in p_video_state.h
Christian König
deathsimple at vodafone.de
Thu Jul 14 06:28:30 PDT 2011
Am Donnerstag, den 14.07.2011, 15:04 +0200 schrieb Michel Dänzer:
> On Mit, 2011-07-13 at 16:28 -0600, Brian Paul wrote:
> > Silences many warnings about "type of bit-field ‘field_select’ is a
> > GCC extension".
> > ---
> > src/gallium/include/pipe/p_video_state.h | 8 ++++----
> > 1 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/src/gallium/include/pipe/p_video_state.h b/src/gallium/include/pipe/p_video_state.h
> > index 5b47b15..1f42ac5 100644
> > --- a/src/gallium/include/pipe/p_video_state.h
> > +++ b/src/gallium/include/pipe/p_video_state.h
> > @@ -49,8 +49,8 @@ struct pipe_motionvector
> > {
> > struct {
> > signed x:16, y:16;
> > - enum pipe_video_field_select field_select:16;
> > - enum pipe_video_mv_weight weight:16;
> > + unsigned field_select:16; /**< enum pipe_video_field_select */
> > + unsigned weight:16; /**< enum pipe_video_mv_weight */
> > } top, bottom;
> > };
> >
> > @@ -58,8 +58,8 @@ struct pipe_motionvector
> > struct pipe_ycbcr_block
> > {
> > unsigned x:8, y:8;
> > - enum pipe_mpeg12_dct_intra intra:8;
> > - enum pipe_mpeg12_dct_type coding:8;
> > + unsigned intra:8; /**< enum pipe_mpeg12_dct_intra */
> > + unsigned coding:8; /**< enum pipe_mpeg12_dct_type */
> > };
> >
> > struct pipe_picture_desc
>
> Out of curiosity, what's the benefit of using bitfields here at all, as
> opposed to fixed size integer types?
>
> IME bitfields are generally best avoided if possible.
There is no real benefit, those are there just for historical reasons. I
started with and interface that looked some like this:
app copies info into XvMC structure->XvMC state tracker copies into
those pipe structures->driver copies them into vertex buffers.
That were a bit too much copy things around for my taste, so I changed
the driver interface to directly export pointers to the vertex buffers
with types of pipe_motionvector/pipe_ycbcr_block and was so happy about
the speed improvements that I forgotten to clean that up.
I just put it onto my todo list, but not as prio 1. I've anybody has
time to spare feel free to clean it up.
Christian.
More information about the mesa-dev
mailing list