gallivm: implement TG4 for ARB_texture_gather
authorRoland Scheidegger <sroland@vmware.com>
Sun, 29 Mar 2015 21:40:31 +0000 (23:40 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Tue, 31 Mar 2015 15:23:51 +0000 (17:23 +0200)
commit0753b135f6e83b171d8a1b08aea967374f3542bc
tree972574248be573747f373964f352a18f2853682c
parent73c6914195bd3cc81f52192d4ec8e23fc6239c41
gallivm: implement TG4 for ARB_texture_gather

This is quite trivial, essentially just follow all the same code you'd
use with linear min/mag (and no mip) filter, then just skip the filtering
after looking up the texels in favor of direct assignment of the right channel
to the result. (This is though not true for the multi-offset version if we'd
want to support it - for this would probably need to do something along the
lines of 4x nearest sampling due to the necessity of doing coord wrapping
individually per texel.)
Supports multi-channel formats.
From the SM5 gather cap bit, should support non-constant offsets, plus shadow
comparisons (the former untested), but not component selection (should be
easy to implement but all this stuff is not really exposable anyway for now).

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c