From df069c6b1cbaa7cb12a46049620c1933e3abca2a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 1 Sep 2020 18:38:37 -0400 Subject: [PATCH] radeonsi: stop using TGSI_PROPERTY_CS_LOCAL_SIZE Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_compute.c | 6 +----- src/gallium/drivers/radeonsi/si_shader.h | 3 --- src/gallium/drivers/radeonsi/si_shader_llvm.c | 10 ++++------ 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c index 4fc81ec464c..55aebf8f606 100644 --- a/src/gallium/drivers/radeonsi/si_compute.c +++ b/src/gallium/drivers/radeonsi/si_compute.c @@ -127,11 +127,7 @@ static void si_create_compute_state_async(void *job, int thread_index) assert(program->ir_type == PIPE_SHADER_IR_NIR); si_nir_scan_shader(sel->nir, &sel->info); - /* Store the declared LDS size into si_shader_info for the shader - * cache to include it. - */ - sel->info.properties[TGSI_PROPERTY_CS_LOCAL_SIZE] = program->local_size; - + sel->info.base.cs.shared_size = program->local_size; si_get_active_slot_masks(&sel->info, &sel->active_const_and_shader_buffers, &sel->active_samplers_and_images); diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index eee16c5441c..b7670e4004a 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -267,9 +267,6 @@ enum enum { - /* Use a property enum that CS wouldn't use. */ - TGSI_PROPERTY_CS_LOCAL_SIZE = TGSI_PROPERTY_FS_COORD_ORIGIN, - /* These represent the number of SGPRs the shader uses. */ SI_VS_BLIT_SGPRS_POS = 3, SI_VS_BLIT_SGPRS_POS_COLOR = 7, diff --git a/src/gallium/drivers/radeonsi/si_shader_llvm.c b/src/gallium/drivers/radeonsi/si_shader_llvm.c index 27b5593cb5f..142587b1d53 100644 --- a/src/gallium/drivers/radeonsi/si_shader_llvm.c +++ b/src/gallium/drivers/radeonsi/si_shader_llvm.c @@ -387,7 +387,7 @@ LLVMValueRef si_llvm_get_block_size(struct ac_shader_abi *abi) void si_llvm_declare_compute_memory(struct si_shader_context *ctx) { struct si_shader_selector *sel = ctx->shader->selector; - unsigned lds_size = sel->info.properties[TGSI_PROPERTY_CS_LOCAL_SIZE]; + unsigned lds_size = sel->info.base.cs.shared_size; LLVMTypeRef i8p = LLVMPointerType(ctx->ac.i8, AC_ADDR_SPACE_LDS); LLVMValueRef var; @@ -447,6 +447,9 @@ bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir) ctx->abi.user_data = ac_build_expand_to_vec4(&ctx->ac, ctx->abi.user_data, nir->info.cs.user_data_components_amd); } + + if (ctx->shader->selector->info.base.cs.shared_size) + si_llvm_declare_compute_memory(ctx); } ctx->abi.inputs = &ctx->inputs[0]; @@ -455,11 +458,6 @@ bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir) ctx->abi.convert_undef_to_zero = true; ctx->abi.clamp_div_by_zero = ctx->screen->options.clamp_div_by_zero; - if (ctx->shader->selector->info.properties[TGSI_PROPERTY_CS_LOCAL_SIZE]) { - assert(gl_shader_stage_is_compute(nir->info.stage)); - si_llvm_declare_compute_memory(ctx); - } - const struct si_shader_info *info = &ctx->shader->selector->info; for (unsigned i = 0; i < info->num_outputs; i++) { for (unsigned j = 0; j < 4; j++) -- 2.30.2