gallivm: drop border wrap clamping code
authorRoland Scheidegger <sroland@vmware.com>
Fri, 30 Nov 2012 19:46:23 +0000 (20:46 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Sat, 1 Dec 2012 16:05:48 +0000 (17:05 +0100)
commit587bd16d0d8ceb7313eaf0604b98797e140a386d
tree21334ccbf15fedee47a8ca8b8c8a1ddede9081ae
parent224d0e4a3ffee9df46b5340ed236f2d48eeb0778
gallivm: drop border wrap clamping code

The border clamping code is unnecessary, since we don't care if a wrapped
coord value is -1 or <-1 (same for length vs. >length), in either case the
border handling code will mask out the offset and replace the texel value with
the border color.
Note that technically this is not entirely correct. Omitting clamping on the
float coords means that flt->int conversion may result in undefined values for
values of very large magnitude.
However there's no reason we should honor this here since:
a) we don't care for that for ordinary wrap modes in the aos code when
   converting coords and the problem is worse there (as we've got only
   effectively 24 instead of 32bits)
b) at least in some cases the clamping was done already in int space hence
   doing nothing to fix that problem.
c) with sse2 flt->int conversion with such values results in 0x80000000 which
   is just perfect (for clamp to border - not so much for the ordinary clamp to
   edge).

Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c