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>
/* 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) {
}
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;
}