From cade9001b1758ee9b76f365b02822c97a414006a Mon Sep 17 00:00:00 2001 From: Andrii Simiklit Date: Wed, 3 Apr 2019 16:51:14 +0300 Subject: [PATCH] util: clean the 24-bit unused field to avoid an issues MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/gallium/auxiliary/util/u_format_zs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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); -- 2.30.2