Hi Tapani, thanks for looking into this one, I certainly missed that extension...
On mié, 2015-01-14 at 14:04 +0200, Tapani Pälli wrote: > Commit 8ec6534 changed texture upload path and the way how texture > format is being checked, this commit adds support for GL_RGB with > GL_UNSIGNED_INT_2_10_10_10_REV as specified by the extension > EXT_texture_type_2_10_10_10_REV specification. The extension mentions that when this is used with RGB, the alpha channel assumes a value 1.0 when expanded... > This fixes regression in ES3 conformance test > ES3-CTS.gtf.GL3Tests.packed_pixels.packed_pixels > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88385 > --- > src/mesa/main/glformats.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c > index 3e913ed..e54bb90 100644 > --- a/src/mesa/main/glformats.c > +++ b/src/mesa/main/glformats.c > @@ -2666,7 +2666,8 @@ _mesa_format_from_format_and_type(GLenum format, GLenum > type) > return MESA_FORMAT_A2R10G10B10_UINT; > break; > case GL_UNSIGNED_INT_2_10_10_10_REV: > - if (format == GL_RGBA) > + if (format == GL_RGB || /* GL_EXT_texture_type_2_10_10_10_REV */ > + format == GL_RGBA) > return MESA_FORMAT_R10G10B10A2_UNORM; ...so I think this is not correct: with this we will lose track that this was RGB data and we will not ensure A=1.0 if this is stored as RGBA. I think what we want to do here is add a new mesa_format like MESA_FORMAT_R10G10B10X2_UNORM, so we can use auto-generated pack/unpack functions that take care of this. We would add that enum to formats.h, then add the type description to formats.csv and then return that enum here for the RGB case. Jason, what do you think? > else if (format == GL_RGBA_INTEGER) > return MESA_FORMAT_R10G10B10A2_UINT; _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev