mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 13:10:10 +01:00
radeonsi: fix a TCS regression
This change caused the regression:
@@ -853,7 +853,7 @@ bool si_llvm_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler *
/* Reset the shader context. */
ctx.shader = shader;
- ctx.stage = sel->stage;
+ ctx.stage = nir->info.stage;
bool same_thread_count = shader->key.ge.opt.same_patch_vertices;
si_build_wrapper_function(&ctx, parts, same_thread_count);
because "nir" contains the previous shader (LS), not the current shader (HS).
Fix it by using prev_nir for the previous shader, so that we can keep using
"nir".
Fixes: 9b7ea720c9 - radeonsi: use nir->info instead of sel->info.base
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32780>
This commit is contained in:
parent
227a894775
commit
a0579f75fb
1 changed files with 2 additions and 2 deletions
|
|
@ -840,12 +840,12 @@ bool si_llvm_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler *
|
|||
struct si_shader prev_shader = {};
|
||||
|
||||
bool free_nir;
|
||||
nir = si_get_prev_stage_nir_shader(shader, &prev_shader, ctx.args, &free_nir);
|
||||
nir_shader *prev_nir = si_get_prev_stage_nir_shader(shader, &prev_shader, ctx.args, &free_nir);
|
||||
|
||||
struct ac_llvm_pointer parts[2];
|
||||
parts[1] = ctx.main_fn;
|
||||
|
||||
if (!si_llvm_translate_nir(&ctx, &prev_shader, nir, free_nir)) {
|
||||
if (!si_llvm_translate_nir(&ctx, &prev_shader, prev_nir, free_nir)) {
|
||||
si_llvm_dispose(&ctx);
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue