mesa/st: allow using nir for ff-fragment shaders

This is similar to what we do for ff-vertex shaders.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22755>
This commit is contained in:
Erik Faye-Lund 2023-04-18 22:05:28 +02:00 committed by Marge Bot
parent 793840937f
commit 5e997beeb7

View file

@ -865,7 +865,7 @@ st_translate_fragment_program(struct st_context *st,
/* Translate to NIR. ATI_fs translates at variant time. */
if (!prog->ati_fs) {
if (prog->nir)
if (prog->nir && prog->arb.Instructions)
ralloc_free(prog->nir);
if (prog->serialized_nir) {
@ -874,8 +874,11 @@ st_translate_fragment_program(struct st_context *st,
}
prog->state.type = PIPE_SHADER_IR_NIR;
prog->nir = st_translate_prog_to_nir(st, prog,
MESA_SHADER_FRAGMENT);
if (prog->arb.Instructions)
prog->nir = st_translate_prog_to_nir(st, prog,
MESA_SHADER_FRAGMENT);
else
st_prog_to_nir_postprocess(st, prog->nir, prog);
prog->info = prog->nir->info;
}