aco: ensure to initialize exec manually for non-monolithic {VS,TES}/GS on GFX9+

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24862>
This commit is contained in:
Samuel Pitoiset
2023-08-24 09:41:55 +02:00
committed by Marge Bot
parent 92015fe3dc
commit 37aa6d25e1

View File

@@ -264,7 +264,11 @@ add_coupling_code(exec_ctx& ctx, Block* block, std::vector<aco_ptr<Instruction>>
/* exec seems to need to be manually initialized with combined shaders */
if (ctx.program->stage.num_sw_stages() > 1 ||
ctx.program->stage.hw == AC_HW_NEXT_GEN_GEOMETRY_SHADER ||
(ctx.program->stage.hw == AC_HW_HULL_SHADER && ctx.program->stage.sw == SWStage::VS)) {
(ctx.program->stage.sw == SWStage::VS &&
(ctx.program->stage.hw == AC_HW_HULL_SHADER ||
ctx.program->stage.hw == AC_HW_LEGACY_GEOMETRY_SHADER)) ||
(ctx.program->stage.sw == SWStage::TES &&
ctx.program->stage.hw == AC_HW_LEGACY_GEOMETRY_SHADER)) {
start_exec = Operand::c32_or_c64(-1u, bld.lm == s2);
bld.copy(Definition(exec, bld.lm), start_exec);
}