diff options
author | Erik Faye-Lund <erik.faye-lund@collabora.com> | 2023-04-18 12:23:15 +0200 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-04-29 12:39:18 +0000 |
commit | 7610747e9446fc367e28fae30c3d9f72e3f8f749 (patch) | |
tree | 5e79922cfbd9b5c5484fc0822f68ca995875ac16 /src/mesa | |
parent | fdd20b9469dd962b221f9c1c0e31068a779cfc21 (diff) | |
download | mesa-7610747e9446fc367e28fae30c3d9f72e3f8f749.tar.gz |
mesa/main: allow passing nir-shaders to st_program_string_notify
This will enable us to emit NIR directly for fixed-function vertex
shaders.
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/22520>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/state_tracker/st_program.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 855cec4dc7c..5d39b2e9203 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -598,7 +598,7 @@ st_translate_vertex_program(struct st_context *st, if (prog->Parameters->NumParameters) prog->affected_states |= ST_NEW_VS_CONSTANTS; - if (prog->nir) + if (prog->arb.Instructions && prog->nir) ralloc_free(prog->nir); if (prog->serialized_nir) { @@ -607,8 +607,11 @@ st_translate_vertex_program(struct st_context *st, } prog->state.type = PIPE_SHADER_IR_NIR; - prog->nir = st_translate_prog_to_nir(st, prog, - MESA_SHADER_VERTEX); + if (prog->arb.Instructions) + prog->nir = st_translate_prog_to_nir(st, prog, + MESA_SHADER_VERTEX); + else + st_prog_to_nir_postprocess(st, prog->nir, prog); prog->info = prog->nir->info; st_prepare_vertex_program(prog); |