panfrost: Set the anisotropy level when cso->max_anisotropy is set
authorIcecream95 <ixn@disroot.org>
Wed, 16 Dec 2020 10:57:20 +0000 (23:57 +1300)
committerMarge Bot <eric+marge@anholt.net>
Mon, 21 Dec 2020 22:49:28 +0000 (22:49 +0000)
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8149>

src/gallium/drivers/panfrost/pan_cmdstream.c

index 183dfff596245d4c966db9d06b585336fc42cdb6..21f72965a8e0a0e1d9d2192d0dbe840f472069eb 100644 (file)
@@ -219,6 +219,11 @@ void panfrost_sampler_desc_init_bifrost(const struct pipe_sampler_state *cso,
                 cfg.minimum_lod = FIXED_16(cso->min_lod, false);
                 cfg.maximum_lod = FIXED_16(cso->max_lod, false);
 
+                if (cso->max_anisotropy > 1) {
+                        cfg.maximum_anisotropy = cso->max_anisotropy;
+                        cfg.lod_algorithm = MALI_LOD_ALGORITHM_ANISOTROPIC;
+                }
+
                 cfg.wrap_mode_s = translate_tex_wrap(cso->wrap_s, false, using_nearest);
                 cfg.wrap_mode_t = translate_tex_wrap(cso->wrap_t, false, using_nearest);
                 cfg.wrap_mode_r = translate_tex_wrap(cso->wrap_r, false, using_nearest);