diff --git a/src/gallium/drivers/radeonsi/si_debug.c b/src/gallium/drivers/radeonsi/si_debug.c index 7dfa75f50aa..5fe2f11aec9 100644 --- a/src/gallium/drivers/radeonsi/si_debug.c +++ b/src/gallium/drivers/radeonsi/si_debug.c @@ -767,11 +767,10 @@ static unsigned si_identity(unsigned slot) static void si_dump_descriptors(struct si_context *sctx, gl_shader_stage stage, const struct si_shader_info *info, struct u_log_context *log) { - enum pipe_shader_type processor = pipe_shader_type_from_mesa(stage); struct si_descriptors *descs = - &sctx->descriptors[SI_DESCS_FIRST_SHADER + processor * SI_NUM_SHADER_DESCS]; + &sctx->descriptors[SI_DESCS_FIRST_SHADER + stage * SI_NUM_SHADER_DESCS]; static const char *shader_name[] = {"VS", "PS", "GS", "TCS", "TES", "CS"}; - const char *name = shader_name[processor]; + const char *name = shader_name[stage]; unsigned enabled_constbuf, enabled_shaderbuf, enabled_samplers; unsigned enabled_images; @@ -782,15 +781,15 @@ static void si_dump_descriptors(struct si_context *sctx, gl_shader_stage stage, enabled_images = u_bit_consecutive(0, info->base.num_images); } else { enabled_constbuf = - sctx->const_and_shader_buffers[processor].enabled_mask >> SI_NUM_SHADER_BUFFERS; + sctx->const_and_shader_buffers[stage].enabled_mask >> SI_NUM_SHADER_BUFFERS; enabled_shaderbuf = 0; for (int i = 0; i < SI_NUM_SHADER_BUFFERS; i++) { enabled_shaderbuf |= - (sctx->const_and_shader_buffers[processor].enabled_mask & + (sctx->const_and_shader_buffers[stage].enabled_mask & 1llu << (SI_NUM_SHADER_BUFFERS - i - 1)) << i; } - enabled_samplers = sctx->samplers[processor].enabled_mask; - enabled_images = sctx->images[processor].enabled_mask; + enabled_samplers = sctx->samplers[stage].enabled_mask; + enabled_images = sctx->images[stage].enabled_mask; } si_dump_descriptor_list(sctx->screen, &descs[SI_SHADER_DESCS_CONST_AND_SHADER_BUFFERS], name, diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 69984faffc7..7136f79ca39 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1072,7 +1072,6 @@ struct si_context { struct si_shader_ctx_state gs; struct si_shader_ctx_state ps; } shader; - /* indexed access using pipe_shader_type (not by MESA_SHADER_*) */ struct si_shader_ctx_state shaders[SI_NUM_GRAPHICS_SHADERS]; }; struct si_cs_shader_state cs_shader_state; diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 3e0575ac7f7..ec7e3567cea 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -1987,8 +1987,7 @@ static void si_lower_ngg(struct si_shader *shader, nir_shader *nir) struct nir_shader *si_deserialize_shader(struct si_shader_selector *sel) { struct pipe_screen *screen = &sel->screen->b; - const void *options = screen->get_compiler_options(screen, PIPE_SHADER_IR_NIR, - pipe_shader_type_from_mesa(sel->stage)); + const void *options = screen->get_compiler_options(screen, PIPE_SHADER_IR_NIR, sel->stage); struct blob_reader blob_reader; blob_reader_init(&blob_reader, sel->nir_binary, sel->nir_size); @@ -2347,7 +2346,7 @@ static struct nir_shader *si_get_nir_shader(struct si_shader *shader, struct si_ bool inline_uniforms = false; uint32_t *inlined_uniform_values; - si_get_inline_uniform_state((union si_shader_key*)key, sel->pipe_shader_type, + si_get_inline_uniform_state((union si_shader_key*)key, sel->stage, &inline_uniforms, &inlined_uniform_values); if (inline_uniforms) { diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index 07333d4eb8d..a96cc3661f8 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -620,7 +620,6 @@ struct si_shader_selector { struct si_shader_info info; - enum pipe_shader_type pipe_shader_type; uint8_t const_and_shader_buf_descriptors_index; uint8_t sampler_and_images_descriptors_index; uint8_t cs_shaderbufs_sgpr_index; diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp index 21620671324..479539e5d56 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp +++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp @@ -3605,12 +3605,10 @@ static void *si_create_shader_selector(struct pipe_context *ctx, si_nir_scan_shader(sscreen, sel->nir, &sel->info); sel->stage = sel->nir->info.stage; - const enum pipe_shader_type type = pipe_shader_type_from_mesa(sel->stage); - sel->pipe_shader_type = type; sel->const_and_shader_buf_descriptors_index = - si_const_and_shader_buffer_descriptors_idx(type); + si_const_and_shader_buffer_descriptors_idx(sel->stage); sel->sampler_and_images_descriptors_index = - si_sampler_and_image_descriptors_idx(type); + si_sampler_and_image_descriptors_idx(sel->stage); if (si_can_dump_shader(sscreen, sel->stage, SI_DUMP_INIT_NIR)) nir_print_shader(sel->nir, stderr); @@ -4130,13 +4128,12 @@ static void si_destroy_shader_selector(struct pipe_context *ctx, void *cso) { struct si_context *sctx = (struct si_context *)ctx; struct si_shader_selector *sel = (struct si_shader_selector *)cso; - enum pipe_shader_type type = pipe_shader_type_from_mesa(sel->stage); util_queue_drop_job(&sctx->screen->shader_compiler_queue, &sel->ready); - if (sctx->shaders[type].cso == sel) { - sctx->shaders[type].cso = NULL; - sctx->shaders[type].current = NULL; + if (sctx->shaders[sel->stage].cso == sel) { + sctx->shaders[sel->stage].cso = NULL; + sctx->shaders[sel->stage].current = NULL; } for (unsigned i = 0; i < sel->variants_count; i++) {