summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2010-03-11 14:42:26 -0700
committerBrian Paul <brianp@vmware.com>2010-03-11 14:49:01 -0700
commit26ae4aab6a7d833cc9c95d70ebe4ee5ba597f591 (patch)
tree0677410cbf1b6fc6c82d8c1a709b4247b74c1ccb
parente9f654d2fb9e747d555a8e5f5fe0b4efdb1bc261 (diff)
gallivm: enable 3D texture sampling
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
index 2fc22fb1fd..50b61dc224 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
@@ -1280,6 +1280,8 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
ilevel0);
if (dims == 3) {
depth0_vec = lp_build_minify(bld, depth_vec, ilevel0_vec);
+ img_stride0_vec = lp_build_mul(&bld->int_coord_bld,
+ row_stride0_vec, height0_vec);
}
}
if (mip_filter == PIPE_TEX_MIPFILTER_LINEAR) {
@@ -1291,6 +1293,8 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
ilevel1);
if (dims == 3) {
depth1_vec = lp_build_minify(bld, depth_vec, ilevel1_vec);
+ img_stride1_vec = lp_build_mul(&bld->int_coord_bld,
+ row_stride1_vec, height1_vec);
}
}
}
@@ -1710,6 +1714,7 @@ lp_build_sample_soa(LLVMBuilderRef builder,
depth_vec = lp_build_broadcast_scalar(&bld.uint_coord_bld, depth);
if (lp_format_is_rgba8(bld.format_desc) &&
+ static_state->target == PIPE_TEXTURE_2D &&
static_state->min_img_filter == PIPE_TEX_FILTER_LINEAR &&
static_state->mag_img_filter == PIPE_TEX_FILTER_LINEAR &&
static_state->min_mip_filter == PIPE_TEX_MIPFILTER_NONE &&