From: Dave Airlie Date: Mon, 14 Nov 2011 09:34:07 +0000 (+0000) Subject: llvmpipe: fix unswizzle of packed float types. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b04d19da104729ef0d72981ba66f4d9c9d9f9509;p=mesa.git llvmpipe: fix unswizzle of packed float types. I messed up adding the ubyte->float conversion. This fixes getteximage-formats https://bugs.freedesktop.org/show_bug.cgi?id=42837 Signed-off-by: Dave Airlie --- diff --git a/src/gallium/drivers/llvmpipe/lp_tile_soa.py b/src/gallium/drivers/llvmpipe/lp_tile_soa.py index bbceb9f3146..d548ad845c7 100644 --- a/src/gallium/drivers/llvmpipe/lp_tile_soa.py +++ b/src/gallium/drivers/llvmpipe/lp_tile_soa.py @@ -256,12 +256,12 @@ def emit_tile_pixel_unswizzle_code(format, src_channel): if format.name == 'PIPE_FORMAT_R11G11B10_FLOAT': print ' float tmp[3];' for i in range(3): - print ' tmp[%d] = (float)TILE_PIXEL(src, x, y, %u);' % (i, inv_swizzle[i]) + print ' tmp[%d] = ubyte_to_float(TILE_PIXEL(src, x, y, %u));' % (i, inv_swizzle[i]) print ' *dst_pixel++ = float3_to_r11g11b10f(tmp);' elif format.name == 'PIPE_FORMAT_R9G9B9E5_FLOAT': print ' float tmp[3];' for i in range(3): - print ' tmp[%d] = (float)TILE_PIXEL(src, x, y, %u);' % (i, inv_swizzle[i]) + print ' tmp[%d] = ubyte_to_float(TILE_PIXEL(src, x, y, %u));' % (i, inv_swizzle[i]) print ' *dst_pixel++ = float3_to_rgb9e5(tmp);' elif format.layout == PLAIN: if not format.is_array():