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