2017-09-22 11:24 GMT+02:00 Lucas Stach <l.st...@pengutronix.de>: > util_pack_color may leave undefined values in the upper half of the packed > integer. As our hardware needs the upper 16 bits to mirror the lower 16bits, > this breaks clears of those formats if the undefined values aren't masked off. > > I've only observed the issue with R5G6B5_UNORM surfaces, other 16bpp > formats seem to work fine. > > Fixes: d6aa2ba2b2 (etnaviv: replace translate_clear_color with > util_pack_color) > Cc: mesa-sta...@lists.freedesktop.org > Signed-off-by: Lucas Stach <l.st...@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmei...@gmail.com> > --- > src/gallium/drivers/etnaviv/etnaviv_clear_blit.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c > b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c > index 971403c45476..c85ada926699 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c > +++ b/src/gallium/drivers/etnaviv/etnaviv_clear_blit.c > @@ -106,7 +106,7 @@ pack_rgba(enum pipe_format format, const float *rgba) > union util_color uc; > util_pack_color(rgba, format, &uc); > if (util_format_get_blocksize(format) == 2) > - return uc.ui[0] << 16 | uc.ui[0]; > + return uc.ui[0] << 16 | (uc.ui[0] & 0xffff); > else > return uc.ui[0]; > } > -- > 2.11.0 > > _______________________________________________ > etnaviv mailing list > etna...@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/etnaviv greets -- Christian Gmeiner, MSc https://christian-gmeiner.info _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev