From 493fdcf44647ee471e934de3e63d193c6a3b6ff0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 14 Aug 2020 01:30:49 -0400 Subject: [PATCH] st/mesa: don't pass NIR to draw module if IO is lowered The draw module can't handle it. Reviewed-by: Eric Anholt Part-of: --- src/mesa/state_tracker/st_program.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c index bfc6d90922a..f968073cc59 100644 --- a/src/mesa/state_tracker/st_program.c +++ b/src/mesa/state_tracker/st_program.c @@ -546,7 +546,8 @@ st_translate_vertex_program(struct st_context *st, /* For st_draw_feedback, we need to generate TGSI too if draw doesn't * use LLVM. */ - if (draw_has_llvm()) { + /* TODO: Draw can't handle lowered IO. */ + if (draw_has_llvm() && !stp->Base.info.io_lowered) { st_prepare_vertex_program(stp); return true; } @@ -731,7 +732,9 @@ st_create_vp_variant(struct st_context *st, state.stream_output = stvp->state.stream_output; if (stvp->state.type == PIPE_SHADER_IR_NIR && - (!key->is_draw_shader || draw_has_llvm())) { + (!key->is_draw_shader || + /* TODO: Draw can't handle lowered IO. */ + (draw_has_llvm() && !stvp->Base.info.io_lowered))) { bool finalize = false; state.type = PIPE_SHADER_IR_NIR; -- 2.30.2