summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/gallivm
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2013-07-05 18:06:17 +0200
committerRoland Scheidegger <[email protected]>2013-07-05 18:07:51 +0200
commit9ef49cfd841a8cbf280a1a2b66ce90f710e44687 (patch)
treeb9a23addd79386817b67d73789e30ce276191a3c /src/gallium/auxiliary/gallivm
parent45f174ce40c8eab006e8f032ffc40703050a639b (diff)
gallivm: (trivial) fix using one lod instead of per-quad lod for texel fetch
The logic for choosing number of lods was bogus. (The code should ultimately handle the case of only one lod even with multiple quads but currently can't.)
Diffstat (limited to 'src/gallium/auxiliary/gallivm')
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
index 4b5674197f0..fa9edb5489c 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
@@ -1588,7 +1588,8 @@ lp_build_sample_soa(struct gallivm_state *gallivm,
(!is_fetch && mip_filter != PIPE_TEX_MIPFILTER_NONE)))
bld.num_lods = type.length;
/* TODO: for true scalar_lod should only use 1 lod value */
- else if (!is_fetch && mip_filter != PIPE_TEX_MIPFILTER_NONE) {
+ else if ((is_fetch && explicit_lod && bld.static_texture_state->target != PIPE_BUFFER ) ||
+ (!is_fetch && mip_filter != PIPE_TEX_MIPFILTER_NONE)) {
bld.num_lods = num_quads;
}
else {