Module: Mesa Branch: main Commit: 86fd7f5484eda5414a75ae47509bb44390f4607f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=86fd7f5484eda5414a75ae47509bb44390f4607f
Author: Marek Olšák <[email protected]> Date: Mon Jun 7 08:51:41 2021 -0400 st/mesa: move handling CubeMapSeamless into st_convert_sampler where it belongs Reviewed-By: Mike Blumenkrantz <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12334> --- src/mesa/state_tracker/st_atom_sampler.c | 9 +++++---- src/mesa/state_tracker/st_cb_texture.c | 2 +- src/mesa/state_tracker/st_texture.h | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c index 9f5a35720e5..5c314d3c75b 100644 --- a/src/mesa/state_tracker/st_atom_sampler.c +++ b/src/mesa/state_tracker/st_atom_sampler.c @@ -61,10 +61,13 @@ st_convert_sampler(const struct st_context *st, const struct gl_texture_object *texobj, const struct gl_sampler_object *msamp, float tex_unit_lod_bias, - struct pipe_sampler_state *sampler) + struct pipe_sampler_state *sampler, + bool seamless_cube_map) { memcpy(sampler, &msamp->Attrib.state, sizeof(*sampler)); + sampler->seamless_cube_map |= seamless_cube_map; + if (texobj->_IsIntegerFormat && st->ctx->Const.ForceIntegerTexNearest) { sampler->min_img_filter = PIPE_TEX_FILTER_NEAREST; sampler->mag_img_filter = PIPE_TEX_FILTER_NEAREST; @@ -156,9 +159,7 @@ st_convert_sampler_from_unit(const struct st_context *st, msamp = _mesa_get_samplerobj(ctx, texUnit); st_convert_sampler(st, texobj, msamp, ctx->Texture.Unit[texUnit].LodBiasQuantized, - sampler); - - sampler->seamless_cube_map |= ctx->Texture.CubeMapSeamless; + sampler, ctx->Texture.CubeMapSeamless); } diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index a39005ffd4f..deb1aaeea74 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -3617,7 +3617,7 @@ st_NewTextureHandle(struct gl_context *ctx, struct gl_texture_object *texObj, if (!st_finalize_texture(ctx, pipe, texObj, 0)) return 0; - st_convert_sampler(st, texObj, sampObj, 0, &sampler); + st_convert_sampler(st, texObj, sampObj, 0, &sampler, false); /* TODO: Clarify the interaction of ARB_bindless_texture and EXT_texture_sRGB_decode */ view = st_get_texture_sampler_view_from_stobj(st, stObj, sampObj, 0, diff --git a/src/mesa/state_tracker/st_texture.h b/src/mesa/state_tracker/st_texture.h index 824ef4b14d0..c9d670f8576 100644 --- a/src/mesa/state_tracker/st_texture.h +++ b/src/mesa/state_tracker/st_texture.h @@ -367,7 +367,8 @@ st_convert_sampler(const struct st_context *st, const struct gl_texture_object *texobj, const struct gl_sampler_object *msamp, float tex_unit_lod_bias, - struct pipe_sampler_state *sampler); + struct pipe_sampler_state *sampler, + bool seamless_cube_map); void st_convert_sampler_from_unit(const struct st_context *st,
