diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index df18d08d84a..4cff84179fe 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -12107,6 +12107,7 @@ select_vs_prolog(Program* program, const struct aco_vs_prolog_key* key, ac_shade init_program(program, compute_cs, info, options->gfx_level, options->family, options->wgp_mode, config); + program->dev.vgpr_limit = 256; Block* block = program->create_and_insert_block(); block->kind = block_kind_top_level; diff --git a/src/amd/compiler/aco_ir.cpp b/src/amd/compiler/aco_ir.cpp index 6ff059d7433..f09524ec82c 100644 --- a/src/amd/compiler/aco_ir.cpp +++ b/src/amd/compiler/aco_ir.cpp @@ -95,7 +95,7 @@ init_program(Program* program, Stage stage, const struct aco_shader_info* info, /* apparently gfx702 also has 16-bank LDS but I can't find a family for that */ program->dev.has_16bank_lds = family == CHIP_KABINI || family == CHIP_STONEY; - program->dev.vgpr_limit = 256; + program->dev.vgpr_limit = gfx_level >= GFX11 ? 128 : 256; //TODO: fix encoding for 16-bit v128+ program->dev.physical_vgprs = 256; program->dev.vgpr_alloc_granule = 4;