<p dir="ltr"><br>
On Jan 16, 2015 5:09 AM, "Iago Toral" <<a href="mailto:itoral@igalia.com">itoral@igalia.com</a>> wrote:<br>
><br>
> Looks good to me.<br>
> Jason: does this get your R-b?</p>
<p dir="ltr">Sure.</p>
<p dir="ltr">><br>
> Iago<br>
><br>
> On Fri, 2015-01-16 at 12:48 +0200, Tapani Pälli wrote:<br>
> > Commit 8ec6534 changed texture upload path and the way how texture<br>
> > format is being checked, this commit adds support for GL_RGB with<br>
> > GL_UNSIGNED_INT_2_10_10_10_REV as specified by the extension<br>
> > EXT_texture_type_2_10_10_10_REV specification.<br>
> ><br>
> > This fixes regression in ES3 conformance test<br>
> >    ES3-CTS.gtf.GL3Tests.packed_pixels.packed_pixels<br>
> ><br>
> > v2: add MESA_FORMAT_R10G10B10X2_UNORM format (Iago Toral)<br>
> ><br>
> > Signed-off-by: Tapani Pälli <<a href="mailto:tapani.palli@intel.com">tapani.palli@intel.com</a>><br>
> > Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=88385">https://bugs.freedesktop.org/show_bug.cgi?id=88385</a><br>
> > ---<br>
> >  src/mesa/main/formats.c      | 2 ++<br>
> >  src/mesa/main/formats.csv    | 1 +<br>
> >  src/mesa/main/formats.h      | 1 +<br>
> >  src/mesa/main/glformats.c    | 2 ++<br>
> >  src/mesa/swrast/s_texfetch.c | 2 ++<br>
> >  5 files changed, 8 insertions(+)<br>
> ><br>
> > diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c<br>
> > index 8ac0583..b6c5124 100644<br>
> > --- a/src/mesa/main/formats.c<br>
> > +++ b/src/mesa/main/formats.c<br>
> > @@ -1439,6 +1439,7 @@ _mesa_format_to_type_and_comps(mesa_format format,<br>
> >        return;<br>
> ><br>
> >     case MESA_FORMAT_B10G10R10X2_UNORM:<br>
> > +   case MESA_FORMAT_R10G10B10X2_UNORM:<br>
> >        *datatype = GL_UNSIGNED_INT_2_10_10_10_REV;<br>
> >        *comps = 4;<br>
> >        return;<br>
> > @@ -2090,6 +2091,7 @@ _mesa_format_matches_format_and_type(mesa_format mesa_format,<br>
> >     case MESA_FORMAT_RGBX_UINT8:<br>
> >     case MESA_FORMAT_RGBX_SINT8:<br>
> >     case MESA_FORMAT_B10G10R10X2_UNORM:<br>
> > +   case MESA_FORMAT_R10G10B10X2_UNORM:<br>
> >     case MESA_FORMAT_RGBX_UNORM16:<br>
> >     case MESA_FORMAT_RGBX_SNORM16:<br>
> >     case MESA_FORMAT_RGBX_FLOAT16:<br>
> > diff --git a/src/mesa/main/formats.csv b/src/mesa/main/formats.csv<br>
> > index 15d82aa..e159e7d 100644<br>
> > --- a/src/mesa/main/formats.csv<br>
> > +++ b/src/mesa/main/formats.csv<br>
> > @@ -82,6 +82,7 @@ MESA_FORMAT_G16R16_UNORM                  , packed, 1, 1, un16, un16,     ,<br>
> >  MESA_FORMAT_B10G10R10A2_UNORM             , packed, 1, 1, un10, un10, un10, un2 , zyxw, rgb<br>
> >  MESA_FORMAT_B10G10R10X2_UNORM             , packed, 1, 1, un10, un10, un10, x2  , zyx1, rgb<br>
> >  MESA_FORMAT_R10G10B10A2_UNORM             , packed, 1, 1, un10, un10, un10, un2 , xyzw, rgb<br>
> > +MESA_FORMAT_R10G10B10X2_UNORM             , packed, 1, 1, un10, un10, un10, x2  , xyz1, rgb<br>
> ><br>
> >  MESA_FORMAT_S8_UINT_Z24_UNORM             , packed, 1, 1, un24, u8  ,     ,     , xy__, zs<br>
> >  MESA_FORMAT_X8_UINT_Z24_UNORM             , packed, 1, 1, un24, x8  ,     ,     , x___, zs<br>
> > diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h<br>
> > index 09890ec..7e451ca 100644<br>
> > --- a/src/mesa/main/formats.h<br>
> > +++ b/src/mesa/main/formats.h<br>
> > @@ -352,6 +352,7 @@ typedef enum<br>
> >     MESA_FORMAT_B10G10R10A2_UNORM,/* AARR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */<br>
> >     MESA_FORMAT_B10G10R10X2_UNORM,/* xxRR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */<br>
> >     MESA_FORMAT_R10G10B10A2_UNORM,/* AABB BBBB BBBB GGGG GGGG GGRR RRRR RRRR */<br>
> > +   MESA_FORMAT_R10G10B10X2_UNORM,/* xxBB BBBB BBBB GGGG GGGG GGRR RRRR RRRR */<br>
> ><br>
> >     MESA_FORMAT_S8_UINT_Z24_UNORM,/* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ SSSS SSSS */<br>
> >     MESA_FORMAT_X8_UINT_Z24_UNORM,/* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ xxxx xxxx */<br>
> > diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c<br>
> > index 3e913ed..06f9aaf 100644<br>
> > --- a/src/mesa/main/glformats.c<br>
> > +++ b/src/mesa/main/glformats.c<br>
> > @@ -2666,6 +2666,8 @@ _mesa_format_from_format_and_type(GLenum format, GLenum type)<br>
> >           return MESA_FORMAT_A2R10G10B10_UINT;<br>
> >        break;<br>
> >     case GL_UNSIGNED_INT_2_10_10_10_REV:<br>
> > +      if (format == GL_RGB)<br>
> > +         return MESA_FORMAT_R10G10B10X2_UNORM;<br>
> >        if (format == GL_RGBA)<br>
> >           return MESA_FORMAT_R10G10B10A2_UNORM;<br>
> >        else if (format == GL_RGBA_INTEGER)<br>
> > diff --git a/src/mesa/swrast/s_texfetch.c b/src/mesa/swrast/s_texfetch.c<br>
> > index a0f34fd..9629024 100644<br>
> > --- a/src/mesa/swrast/s_texfetch.c<br>
> > +++ b/src/mesa/swrast/s_texfetch.c<br>
> > @@ -166,6 +166,8 @@ texfetch_funcs[] =<br>
> >     FETCH_FUNCS(B10G10R10A2_UNORM),<br>
> >     FETCH_NULL(B10G10R10X2_UNORM),<br>
> >     FETCH_FUNCS(R10G10B10A2_UNORM),<br>
> > +   FETCH_NULL(R10G10B10X2_UNORM),<br>
> > +<br>
> >     FETCH_FUNCS(S8_UINT_Z24_UNORM),<br>
> >     {<br>
> >        MESA_FORMAT_X8_UINT_Z24_UNORM,<br>
><br>
><br>
</p>