mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 17:48:10 +02:00
radeonsi: refine si_llvm_es_build_end
1. merge si_set_es_return_value_for_gs into si_llvm_es_build_end 2. stop return value when mono mode in which case GS use ES input as input instead of ES output Reviewed-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24204>
This commit is contained in:
parent
401a40a5f4
commit
21ae5909a4
2 changed files with 6 additions and 11 deletions
|
|
@ -589,7 +589,7 @@ void si_init_shader_args(struct si_shader *shader, struct si_shader_args *args)
|
|||
declare_tes_input_vgprs(args);
|
||||
}
|
||||
|
||||
if (shader->key.ge.as_es &&
|
||||
if (shader->key.ge.as_es && !shader->is_monolithic &&
|
||||
(stage == MESA_SHADER_VERTEX || stage == MESA_SHADER_TESS_EVAL)) {
|
||||
/* ES return values are inputs to GS. */
|
||||
for (i = 0; i < 8 + GFX9_GS_NUM_USER_SGPR; i++)
|
||||
|
|
|
|||
|
|
@ -25,11 +25,12 @@ LLVMValueRef si_is_gs_thread(struct si_shader_context *ctx)
|
|||
si_unpack_param(ctx, ctx->args->ac.merged_wave_info, 8, 8), "");
|
||||
}
|
||||
|
||||
/* Pass GS inputs from ES to GS on GFX9. */
|
||||
static void si_set_es_return_value_for_gs(struct si_shader_context *ctx)
|
||||
void si_llvm_es_build_end(struct si_shader_context *ctx)
|
||||
{
|
||||
if (!ctx->shader->is_monolithic)
|
||||
ac_build_endif(&ctx->ac, ctx->merged_wrap_if_label);
|
||||
if (ctx->screen->info.gfx_level < GFX9 || ctx->shader->is_monolithic)
|
||||
return;
|
||||
|
||||
ac_build_endif(&ctx->ac, ctx->merged_wrap_if_label);
|
||||
|
||||
LLVMValueRef ret = ctx->return_value;
|
||||
|
||||
|
|
@ -64,12 +65,6 @@ static void si_set_es_return_value_for_gs(struct si_shader_context *ctx)
|
|||
ctx->return_value = ret;
|
||||
}
|
||||
|
||||
void si_llvm_es_build_end(struct si_shader_context *ctx)
|
||||
{
|
||||
if (ctx->screen->info.gfx_level >= GFX9)
|
||||
si_set_es_return_value_for_gs(ctx);
|
||||
}
|
||||
|
||||
void si_llvm_gs_build_end(struct si_shader_context *ctx)
|
||||
{
|
||||
if (ctx->screen->info.gfx_level >= GFX9)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue