zink: rename nonseamless struct members to emulate_nonseamless

make it clearer that this is separate from the gallium state

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16944>
This commit is contained in:
Mike Blumenkrantz 2022-06-10 11:38:30 -04:00 committed by Marge Bot
parent 08858070b1
commit d8b4ceb27a
2 changed files with 10 additions and 10 deletions

View File

@ -409,7 +409,7 @@ zink_create_sampler_state(struct pipe_context *pctx,
calc_descriptor_hash_sampler_state(sampler);
sampler->custom_border_color = need_custom;
if (!screen->info.have_EXT_non_seamless_cube_map)
sampler->nonseamless = !state->seamless_cube_map;
sampler->emulate_nonseamless = !state->seamless_cube_map;
return sampler;
}
@ -439,7 +439,7 @@ get_imageview_for_binding(struct zink_context *ctx, enum pipe_shader_type stage,
if (!sampler_view->base.texture)
return NULL;
/* if this is a non-seamless cube sampler, return the cube array view */
return (ctx->di.nonseamless[stage] & ctx->di.cubes[stage] & BITFIELD_BIT(idx)) ?
return (ctx->di.emulate_nonseamless[stage] & ctx->di.cubes[stage] & BITFIELD_BIT(idx)) ?
sampler_view->cube_array :
sampler_view->image_view;
}
@ -600,7 +600,7 @@ update_nonseamless_shader_key(struct zink_context *ctx, enum pipe_shader_type ps
else
mask = &ctx->gfx_pipeline_state.shader_keys.key[pstage].base.nonseamless_cube_mask;
const uint32_t new_mask = ctx->di.nonseamless[pstage] & ctx->di.cubes[pstage];
const uint32_t new_mask = ctx->di.emulate_nonseamless[pstage] & ctx->di.cubes[pstage];
if (new_mask != *mask)
ctx->dirty_shader_stages |= BITFIELD_BIT(pstage);
*mask = new_mask;
@ -616,22 +616,22 @@ zink_bind_sampler_states(struct pipe_context *pctx,
struct zink_context *ctx = zink_context(pctx);
struct zink_screen *screen = zink_screen(pctx->screen);
uint32_t mask = BITFIELD_RANGE(start_slot, num_samplers);
ctx->di.nonseamless[shader] &= ~mask;
ctx->di.emulate_nonseamless[shader] &= ~mask;
for (unsigned i = 0; i < num_samplers; ++i) {
struct zink_sampler_state *state = samplers[i];
if (ctx->sampler_states[shader][start_slot + i] != state)
zink_screen(pctx->screen)->context_invalidate_descriptor_state(ctx, shader, ZINK_DESCRIPTOR_TYPE_SAMPLER_VIEW, start_slot, 1);
bool was_nonseamless = false;
if (ctx->sampler_states[shader][start_slot + i])
was_nonseamless = ctx->sampler_states[shader][start_slot + i]->nonseamless;
was_nonseamless = ctx->sampler_states[shader][start_slot + i]->emulate_nonseamless;
ctx->sampler_states[shader][start_slot + i] = state;
ctx->di.textures[shader][start_slot + i].sampler = state ? state->sampler : VK_NULL_HANDLE;
if (state) {
zink_batch_usage_set(&state->batch_uses, ctx->batch.state);
const uint32_t bit = BITFIELD_BIT(start_slot + i);
if (state->nonseamless)
ctx->di.nonseamless[shader] |= bit;
if (state->nonseamless != was_nonseamless && (ctx->di.cubes[shader] & bit)) {
if (state->emulate_nonseamless)
ctx->di.emulate_nonseamless[shader] |= bit;
if (state->emulate_nonseamless != was_nonseamless && (ctx->di.cubes[shader] & bit)) {
struct zink_surface *surface = get_imageview_for_binding(ctx, shader, ZINK_DESCRIPTOR_TYPE_SAMPLER_VIEW, start_slot + i);
if (surface && ctx->di.image_surfaces[shader][start_slot + i].surface != surface) {
ctx->di.images[shader][start_slot + i].imageView = surface->image_view;

View File

@ -80,7 +80,7 @@ struct zink_sampler_state {
struct zink_descriptor_refs desc_set_refs;
struct zink_batch_usage *batch_uses;
bool custom_border_color;
bool nonseamless;
bool emulate_nonseamless;
};
struct zink_buffer_view {
@ -333,7 +333,7 @@ struct zink_context {
VkDescriptorImageInfo textures[PIPE_SHADER_TYPES][PIPE_MAX_SAMPLERS];
VkBufferView tbos[PIPE_SHADER_TYPES][PIPE_MAX_SAMPLERS];
uint32_t nonseamless[PIPE_SHADER_TYPES];
uint32_t emulate_nonseamless[PIPE_SHADER_TYPES];
uint32_t cubes[PIPE_SHADER_TYPES];
uint8_t num_samplers[PIPE_SHADER_TYPES];
uint8_t num_sampler_views[PIPE_SHADER_TYPES];