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);
/* 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;
}
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;
/* 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)) {