From: Andrii Simiklit Date: Wed, 3 Apr 2019 13:51:14 +0000 (+0300) Subject: util: clean the 24-bit unused field to avoid an issues X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cade9001b1758ee9b76f365b02822c97a414006a;p=mesa.git util: clean the 24-bit unused field to avoid an issues This is a field of FLOAT_32_UNSIGNED_INT_24_8_REV texture pixel. OpenGL spec "8.4.4.2 Special Interpretations" is saying: "the second word contains a packed 24-bit unused field, followed by an 8-bit index" The spec doesn't require us to clear this unused field however it make sense to do it to avoid some undefined behavior in some apps. Suggested-by: Eric Anholt Reviewed-by: Marek Olšák Reviewed-by: Eric Anholt Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110305 Signed-off-by: Andrii Simiklit --- diff --git a/src/gallium/auxiliary/util/u_format_zs.c b/src/gallium/auxiliary/util/u_format_zs.c index ff584769d12..4c977172b1b 100644 --- a/src/gallium/auxiliary/util/u_format_zs.c +++ b/src/gallium/auxiliary/util/u_format_zs.c @@ -830,11 +830,11 @@ util_format_z32_float_s8x24_uint_pack_s_8uint(uint8_t *dst_row, unsigned dst_str unsigned x, y; for(y = 0; y < height; ++y) { const uint8_t *src = src_row; - uint8_t *dst = dst_row + 4; + uint32_t *dst = ((uint32_t *)dst_row) + 1; for(x = 0; x < width; ++x) { - *dst = *src; + *dst = util_cpu_to_le32(*src); src += 1; - dst += 8; + dst += 2; } dst_row += dst_stride/sizeof(*dst_row); src_row += src_stride/sizeof(*src_row);