[Mesa-dev] [PATCH] mesa: Fix regression introduced by commit "mesa: fix packing of float texels to GL_SHORT/GL_BYTE".
Chris Forbes
chrisf at ijw.co.nz
Wed Jul 2 13:18:32 PDT 2014
Assuming this causes no piglit regressions,
Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>
Can we get some piglits which demonstrate these problems? oglconform
is too secret.
On Wed, Jul 2, 2014 at 10:54 PM, Popov, Pavel E <pavel.e.popov at intel.com> wrote:
> Hi Chris,
>
> Could you review this patch?
>
> Probably a better solution here is to use only one type of conversion formulas to avoid issues like this. We can remove old formulas ("BYTE_TO_FLOAT", "FLOAT_TO_BYTE", etc.) and use only formulas which were recently added in spec ("BYTE_TO_FLOAT_TEX", "FLOAT_TO_BYTE_TEXT", etc.). But now I just replaced *_TO_FLOATZ in function extract_float_rgba to *_TO_FLOAT_TEX to fix oglconform regressions.
>
> Regards,
> Pavel
>
> -----Original Message-----
> From: Popov, Pavel E
> Sent: Monday, June 30, 2014 10:22 PM
> To: mesa-dev at lists.freedesktop.org
> Cc: Popov, Pavel E
> Subject: [PATCH] mesa: Fix regression introduced by commit "mesa: fix packing of float texels to GL_SHORT/GL_BYTE".
>
> This commit "mesa: fix packing of float texels to GL_SHORT/GL_BYTE" replaced *_TO_BYTE to *_TO_BYTE_TEX because *_TO_FLOAT_TEX are used to unpack the texels to floats.
> In this case *_TO_FLOATZ in function extract_float_rgba also should be replaced to *_TO_FLOAT_TEX. Underline that these macros automatically preserve zero when converting.
>
> The regression was observed on 3 oglconform tests:
> snorm-textures basic.getTexImage
> snorm-textures advanced.mipmap.manual.getTex
> snorm-textures advanced.mipmap.upload.getTex
>
> Signed-off-by: Pavel Popov <pavel.e.popov at intel.com>
> ---
> src/mesa/main/pack.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/src/mesa/main/pack.c b/src/mesa/main/pack.c index 1df6568..70c8b93 100644
> --- a/src/mesa/main/pack.c
> +++ b/src/mesa/main/pack.c
> @@ -3253,10 +3253,10 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
> PROCESS(aSrc, ACOMP, 1.0F, 255, GLubyte, UBYTE_TO_FLOAT);
> break;
> case GL_BYTE:
> - PROCESS(rSrc, RCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOATZ);
> - PROCESS(gSrc, GCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOATZ);
> - PROCESS(bSrc, BCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOATZ);
> - PROCESS(aSrc, ACOMP, 1.0F, 127, GLbyte, BYTE_TO_FLOATZ);
> + PROCESS(rSrc, RCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOAT_TEX);
> + PROCESS(gSrc, GCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOAT_TEX);
> + PROCESS(bSrc, BCOMP, 0.0F, 0, GLbyte, BYTE_TO_FLOAT_TEX);
> + PROCESS(aSrc, ACOMP, 1.0F, 127, GLbyte, BYTE_TO_FLOAT_TEX);
> break;
> case GL_UNSIGNED_SHORT:
> PROCESS(rSrc, RCOMP, 0.0F, 0, GLushort, USHORT_TO_FLOAT);
> @@ -3265,10 +3265,10 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
> PROCESS(aSrc, ACOMP, 1.0F, 0xffff, GLushort, USHORT_TO_FLOAT);
> break;
> case GL_SHORT:
> - PROCESS(rSrc, RCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOATZ);
> - PROCESS(gSrc, GCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOATZ);
> - PROCESS(bSrc, BCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOATZ);
> - PROCESS(aSrc, ACOMP, 1.0F, 32767, GLshort, SHORT_TO_FLOATZ);
> + PROCESS(rSrc, RCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOAT_TEX);
> + PROCESS(gSrc, GCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOAT_TEX);
> + PROCESS(bSrc, BCOMP, 0.0F, 0, GLshort, SHORT_TO_FLOAT_TEX);
> + PROCESS(aSrc, ACOMP, 1.0F, 32767, GLshort,
> + SHORT_TO_FLOAT_TEX);
> break;
> case GL_UNSIGNED_INT:
> PROCESS(rSrc, RCOMP, 0.0F, 0, GLuint, UINT_TO_FLOAT);
> --
> 1.9.1
>
>
> --------------------------------------------------------------------
> Closed Joint Stock Company Intel A/O
> Registered legal address: Krylatsky Hills Business Park,
> 17 Krylatskaya Str., Bldg 4, Moscow 121614,
> Russian Federation
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
>
More information about the mesa-dev
mailing list