diff options
author | Marek Olšák <marek.olsak@amd.com> | 2020-08-12 11:09:43 -0400 |
---|---|---|
committer | Eric Engestrom <eric@engestrom.ch> | 2020-09-02 21:50:42 +0200 |
commit | dc6be9867fd95f285f2a7780e7d392aff6927908 (patch) | |
tree | 2bdd2e1a4c1e4234feec686a90d013de10153aa1 | |
parent | 2a765e2d3e56db10d932a9a1cdfe0a7e5673e99a (diff) |
st/mesa: don't generate NIR for ARB_vp/fp if NIR is not preferred
Fixes: 5d0630e5043fc2 "st/mesa: call prog_to_nir sooner for ARB_fp"
Fixes: a3de63fbb3d63e "st/mesa: don't generate VS TGSI if NIR is enabled"
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6442>
(cherry picked from commit 2424485fb436b2abeca2dc801ffda156e3d1fe78)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_program.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/.pick_status.json b/.pick_status.json index 3613c5b3520..c2f1519e510 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3316,7 +3316,7 @@ "description": "st/mesa: don't generate NIR for ARB_vp/fp if NIR is not preferred", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "5d0630e5043fc25aea3788c6a94059e2aceedf06" }, diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index cb9fcfdbdd6..e4cc3408fd8 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -510,7 +510,8 @@ st_translate_vertex_program(struct st_context *st, stp->affected_states |= ST_NEW_VS_CONSTANTS; /* Translate to NIR if preferred. */ - if (st->pipe->screen->get_shader_param(st->pipe->screen, + if (PIPE_SHADER_IR_NIR == + st->pipe->screen->get_shader_param(st->pipe->screen, PIPE_SHADER_VERTEX, PIPE_SHADER_CAP_PREFERRED_IR)) { assert(!stp->glsl_to_tgsi); @@ -883,6 +884,7 @@ st_translate_fragment_program(struct st_context *st, /* Translate to NIR. */ if (!stfp->ati_fs && + PIPE_SHADER_IR_NIR == st->pipe->screen->get_shader_param(st->pipe->screen, PIPE_SHADER_FRAGMENT, PIPE_SHADER_CAP_PREFERRED_IR)) { |