diff options
author | Roland Scheidegger <[email protected]> | 2013-03-01 02:25:13 +0100 |
---|---|---|
committer | Roland Scheidegger <[email protected]> | 2013-03-02 02:54:30 +0100 |
commit | b3b3b389fa7756869e7a8bc2755bce081c94945f (patch) | |
tree | 127e2e87e309c97dd503c55d2c94bf818cf55ec1 /src/gallium/auxiliary/gallivm/lp_bld_sample_aos.h | |
parent | a99eb5c83fd64d64fee2b6d7f2bb3fea3264ce47 (diff) |
gallivm: add support for texel offsets for ordinary texturing.
This was previously only handled for texelFetch (much easier).
Depending on the wrap mode this works slightly differently (for somewhat
efficient implementation), hence have to do that separately in all roughly
137 places - it is easy if we use fixed point coords for wrapping, however
some wrapping modes are near impossible with fixed point (the repeat stuff)
hence we have to normalize the offsets if we can't do the wrapping in
unnormalized space (which is a division which is slow but should still be
much better than the alternative, which would be integer modulo for wrapping
which is just unusable). This should still give accurate results in all
cases that really matter, though it might be not quite conformant behavior
for some apis (but we have much worse problems there anyway even without
using offsets).
(Untested, no piglit test.)
Reviewed-by: Jose Fonseca <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/gallivm/lp_bld_sample_aos.h')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_sample_aos.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.h b/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.h index 6590e8ce090..6fce9712a48 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_aos.h @@ -46,6 +46,7 @@ lp_build_sample_aos(struct lp_build_sample_context *bld, LLVMValueRef s, LLVMValueRef t, LLVMValueRef r, + const LLVMValueRef *offsets, LLVMValueRef lod_ipart, LLVMValueRef lod_fpart, LLVMValueRef ilevel0, |