st/mesa: don't pass NIR to draw module if IO is lowered
The draw module can't handle it.
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6442>
diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
index bfc6d90..f968073 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -546,7 +546,8 @@
/* 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 @@
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;