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-sta...@lists.freedesktop.org> > > Signed-off-by: Anuj Phogat <anuj.pho...@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.pohjolai...@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@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev