aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-02-05 11:06:59 +0000
committerEric Anholt <[email protected]>2018-02-05 13:53:38 +0000
commit63a8a0f3c017d018220966422deffcb46bf2e373 (patch)
tree46bb83774f2f0502cba2702a7852ac039ee4673c
parente29988c9089616da67e2803f0f0c37c16e202deb (diff)
broadcom/vc5: Fix non-mipfiltered sampling.
We need to clamp the LOD to 0 if mip filtering is disabled. This is part of fixing KHR-GLES3.shaders.struct.uniform.sampler_array_fragment.
-rw-r--r--src/gallium/drivers/vc5/vc5_state.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/vc5/vc5_state.c b/src/gallium/drivers/vc5/vc5_state.c
index 9d4d0893f8b..65dd9a2c42b 100644
--- a/src/gallium/drivers/vc5/vc5_state.c
+++ b/src/gallium/drivers/vc5/vc5_state.c
@@ -538,12 +538,17 @@ vc5_create_sampler_state(struct pipe_context *pctx,
sampler.mag_filter_nearest =
cso->mag_img_filter == PIPE_TEX_FILTER_NEAREST;
sampler.mip_filter_nearest =
- cso->min_mip_filter == PIPE_TEX_MIPFILTER_NEAREST;
+ cso->min_mip_filter != PIPE_TEX_MIPFILTER_LINEAR;
sampler.min_level_of_detail = MIN2(MAX2(0, cso->min_lod),
15);
sampler.max_level_of_detail = MIN2(cso->max_lod, 15);
+ if (cso->min_mip_filter == PIPE_TEX_MIPFILTER_NONE) {
+ sampler.min_level_of_detail = 0;
+ sampler.max_level_of_detail = 0;
+ }
+
if (cso->max_anisotropy) {
sampler.anisotropy_enable = true;