Mesa (main): nine: don't memset sampler state during conversion

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Aug 6 15:22:29 UTC 2021


Module: Mesa
Branch: main
Commit: d20b0c87bca0a871683fc69c7dc9e05c3c022f20
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d20b0c87bca0a871683fc69c7dc9e05c3c022f20

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed Jul 14 13:35:47 2021 -0400

nine: don't memset sampler state during conversion

this ends up having pretty huge overhead

Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Reviewed-by: Axel Davy <davyaxel0 at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11887>

---

 src/gallium/frontends/nine/nine_pipe.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/gallium/frontends/nine/nine_pipe.c b/src/gallium/frontends/nine/nine_pipe.c
index 84644567ee7..eaa91101a24 100644
--- a/src/gallium/frontends/nine/nine_pipe.c
+++ b/src/gallium/frontends/nine/nine_pipe.c
@@ -216,13 +216,13 @@ nine_convert_sampler_state(struct cso_context *ctx, int idx, const DWORD *ss)
            (idx < NINE_MAX_SAMPLERS_PS || idx >= NINE_SAMPLER_VS(0)) &&
            (idx < NINE_MAX_SAMPLERS));
 
-    memset(&samp, 0, sizeof(samp)); /* memcmp safety */
-
     if (ss[D3DSAMP_MIPFILTER] != D3DTEXF_NONE) {
         samp.lod_bias = asfloat(ss[D3DSAMP_MIPMAPLODBIAS]);
         samp.min_lod = ss[NINED3DSAMP_MINLOD];
         samp.min_mip_filter = (ss[D3DSAMP_MIPFILTER] == D3DTEXF_POINT) ? PIPE_TEX_FILTER_NEAREST : PIPE_TEX_FILTER_LINEAR;
     } else {
+        samp.min_lod = 0.0;
+        samp.lod_bias = 0.0;
         samp.min_mip_filter = PIPE_TEX_MIPFILTER_NONE;
     }
     samp.max_lod = 15.0f;
@@ -242,10 +242,15 @@ nine_convert_sampler_state(struct cso_context *ctx, int idx, const DWORD *ss)
     if (ss[D3DSAMP_MINFILTER] == D3DTEXF_ANISOTROPIC ||
         ss[D3DSAMP_MAGFILTER] == D3DTEXF_ANISOTROPIC)
         samp.max_anisotropy = MIN2(16, ss[D3DSAMP_MAXANISOTROPY]);
+    else
+        samp.max_anisotropy = 0;
     samp.compare_mode = ss[NINED3DSAMP_SHADOW] ? PIPE_TEX_COMPARE_R_TO_TEXTURE : PIPE_TEX_COMPARE_NONE;
     samp.compare_func = PIPE_FUNC_LEQUAL;
     samp.normalized_coords = 1;
     samp.seamless_cube_map = 0;
+    samp.border_color_is_integer = 0;
+    samp.reduction_mode = 0;
+    samp.pad = 0;
     d3dcolor_to_pipe_color_union(&samp.border_color, ss[D3DSAMP_BORDERCOLOR]);
 
     /* see nine_state.h */



More information about the mesa-commit mailing list