OSDN Git Service

broadcom/vc5: Fix non-mipfiltered sampling.
authorEric Anholt <eric@anholt.net>
Mon, 5 Feb 2018 11:06:59 +0000 (11:06 +0000)
committerEric Anholt <eric@anholt.net>
Mon, 5 Feb 2018 13:53:38 +0000 (13:53 +0000)
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.

src/gallium/drivers/vc5/vc5_state.c

index 9d4d089..65dd9a2 100644 (file)
@@ -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;