From bed78862d4db044a87d6c3808548abd6df95dd7d Mon Sep 17 00:00:00 2001 From: Chris Li Date: Wed, 14 Jul 2010 14:19:11 +0100 Subject: llvmpipe: Addi ssse3 swizzling for B8G8R8A8_UNORM. --- .../drivers/llvmpipe/lp_tile_shuffle_mask.py | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/gallium/drivers/llvmpipe/lp_tile_shuffle_mask.py (limited to 'src/gallium/drivers/llvmpipe/lp_tile_shuffle_mask.py') diff --git a/src/gallium/drivers/llvmpipe/lp_tile_shuffle_mask.py b/src/gallium/drivers/llvmpipe/lp_tile_shuffle_mask.py new file mode 100644 index 0000000000..ea2fc0f375 --- /dev/null +++ b/src/gallium/drivers/llvmpipe/lp_tile_shuffle_mask.py @@ -0,0 +1,32 @@ + +tile = [[0,1,4,5], + [2,3,6,7], + [8,9,12,13], + [10,11,14,15]] +shift = 0 +align = 1 +value = 0L +holder = [] + +import sys + +basemask = [0x +fd = sys.stdout +indent = " "*9 +for c in range(4): + fd.write(indent + "*pdst++ = \n"); + for l,line in enumerate(tile): + fd.write(indent + " %s_mm_shuffle_epi8(line%d, (__m128i){"%(l and '+' or ' ',l)) + for i,pos in enumerate(line): + mask = 0x00ffffffff & (~(0xffL << shift)) + value = mask | ((pos) << shift) + holder.append(value) + if holder and (i + 1) %2 == 0: + fd.write("0x%8.0x"%(holder[0] + (holder[1] << 32))) + holder = [] + if (i) %4 == 1: + fd.write( ',') + + fd.write("})%s\n"%((l == 3) and ';' or '')) + print + shift += 8 -- cgit v1.2.3