radeonsi: fix VS kill_outputs handling

981bd8cbe2 moved outputs removing handling to NIR, but instead of
applying it only to the last stage before the FS this now applies
it to both the GS and the VS.

This commit fixes this by clearing the kill_outputs field for
the VS when using a ES-GS shader.

Fixes: 981bd8cbe2 ("radeonsi: apply key.ge.opt.kill_{outputs,pointsize,clipdistance} in NIR")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16249>
This commit is contained in:
Pierre-Eric Pelloux-Prayer 2022-04-29 17:51:11 +02:00
parent 8a525c0fa5
commit 529f316d87
1 changed files with 2 additions and 0 deletions

View File

@ -1223,6 +1223,8 @@ bool si_llvm_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler *
shader_es.key.ge.mono = shader->key.ge.mono;
shader_es.key.ge.opt = shader->key.ge.opt;
shader_es.key.ge.opt.inline_uniforms = false; /* only GS can inline uniforms */
/* kill_outputs was computed based on GS outputs so we can't use it to kill VS outputs */
shader_es.key.ge.opt.kill_outputs = 0;
shader_es.is_monolithic = true;
nir = si_get_nir_shader(es, &shader_es.key, &free_nir);