mesa/st: add pipe_sampler_state::border_color_is_integer
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 25 Jan 2021 20:31:15 +0000 (15:31 -0500)
committerMarge Bot <eric+marge@anholt.net>
Thu, 18 Feb 2021 14:32:05 +0000 (14:32 +0000)
some drivers need to know whether the border color format is integer,
so this allows disambiguation between samplers based on format types

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8756>

src/gallium/include/pipe/p_state.h
src/mesa/state_tracker/st_atom_sampler.c

index c1bdf5e..56d863e 100644 (file)
@@ -412,6 +412,7 @@ struct pipe_sampler_state
    unsigned normalized_coords:1; /**< Are coords normalized to [0,1]? */
    unsigned max_anisotropy:5;
    unsigned seamless_cube_map:1;
+   unsigned border_color_is_integer:1;
    float lod_bias;               /**< LOD/lambda bias */
    float min_lod, max_lod;       /**< LOD clamp range, after bias */
    union pipe_color_union border_color;
index a2af3a7..7416de3 100644 (file)
@@ -202,6 +202,7 @@ st_convert_sampler(const struct st_context *st,
                             &sampler->border_color,
                             texBaseFormat, is_integer);
       }
+      sampler->border_color_is_integer = is_integer;
    }
 
    sampler->max_anisotropy = (msamp->Attrib.MaxAnisotropy == 1.0 ?