[Mesa-dev] [PATCH 2/5] meta: Use _mesa_get_format_bits() to get the GL_RED_BITS

Pohjolainen, Topi topi.pohjolainen at intel.com
Mon Aug 4 02:26:05 PDT 2014


On Mon, Aug 04, 2014 at 12:11:53PM +0300, Pohjolainen, Topi wrote:
> On Wed, Jul 30, 2014 at 07:11:24PM -0700, Anuj Phogat wrote:
> > We currently get red bits from ctx->DrawBuffer->Visual.redBits
> > by making a false assumption that the texture we're writing to
> > (in glCopyTexImage2D()) is used as a DrawBuffer.
> > 
> > Fixes many failures in gles3 Khronos CTS test:
> > copy_tex_image_conversions_required
> > 
> > Cc: <mesa-stable at lists.freedesktop.org>
> > Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
> > ---
> >  src/mesa/drivers/common/meta.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
> > index 28bd065..ba84eb8 100644
> > --- a/src/mesa/drivers/common/meta.c
> > +++ b/src/mesa/drivers/common/meta.c
> > @@ -2722,6 +2722,7 @@ static GLenum
> >  get_temp_image_type(struct gl_context *ctx, mesa_format format)
> >  {
> >     GLenum baseFormat = _mesa_get_format_base_format(format);
> > +   GLint format_red_bits = _mesa_get_format_bits(format, GL_RED_BITS);
> 
> Now the results depend only on the given format and not on the current state.
> Even though there are things I don't know about meta and gl-state, this makes
> perfect sense to me.
> You declare it constant as well.

s/You declare/You could declare/

> 
> Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> 
> >  
> >     switch (baseFormat) {
> >     case GL_RGBA:
> > @@ -2732,9 +2733,9 @@ get_temp_image_type(struct gl_context *ctx, mesa_format format)
> >     case GL_LUMINANCE:
> >     case GL_LUMINANCE_ALPHA:
> >     case GL_INTENSITY:
> > -      if (ctx->DrawBuffer->Visual.redBits <= 8) {
> > +      if (format_red_bits <= 8) {
> >           return GL_UNSIGNED_BYTE;
> > -      } else if (ctx->DrawBuffer->Visual.redBits <= 16) {
> > +      } else if (format_red_bits <= 16) {
> >           return GL_UNSIGNED_SHORT;
> >        } else {
> >           GLenum datatype = _mesa_get_format_datatype(format);
> > -- 
> > 1.9.3
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list