diff options
author | Marek Olšák <[email protected]> | 2019-12-04 17:27:13 -0500 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-12-09 21:09:28 -0500 |
commit | 41118246c6069db3a4443fb6b1ab872b6af1b2b7 (patch) | |
tree | 1a3b3d4485f16e53a55f13d42cf7ba26dfdfe6b3 /src/mesa | |
parent | a3de63fbb3d63ed792fd7dd969ad940d5bf17338 (diff) |
draw, st/mesa: generate TGSI for ffvp/ARB_vp if draw lacks LLVM
Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/state_tracker/st_program.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index 1beba6317b6..84fd8e320af 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -462,7 +462,11 @@ st_translate_vertex_program(struct st_context *st, stp->state.type = PIPE_SHADER_IR_NIR; stp->Base.nir = st_translate_prog_to_nir(st, &stp->Base, MESA_SHADER_VERTEX); - return true; + /* For st_draw_feedback, we need to generate TGSI too if draw doesn't + * use LLVM. + */ + if (draw_has_llvm()) + return true; } } @@ -578,7 +582,8 @@ st_create_vp_variant(struct st_context *st, state.stream_output = stvp->state.stream_output; - if (stvp->state.type == PIPE_SHADER_IR_NIR) { + if (stvp->state.type == PIPE_SHADER_IR_NIR && + (!key->is_draw_shader || draw_has_llvm())) { bool finalize = false; state.type = PIPE_SHADER_IR_NIR; |