/* return shader */
NIR_PASS_V(b.shader, nir_lower_samplers);
- struct pipe_shader_state state = {};
- state.type = PIPE_SHADER_IR_NIR;
- state.ir.nir = b.shader;
+ struct pipe_shader_state state;
+ pipe_shader_state_from_nir(&state, b.shader);
return pipe->create_fs_state(pipe, &state);
}
nir_validate_shader(b.shader, "in nvc0_program_init_tcp_empty");
- struct pipe_shader_state state = {0};
- state.type = PIPE_SHADER_IR_NIR;
- state.ir.nir = b.shader;
+ struct pipe_shader_state state;
+ pipe_shader_state_from_nir(&state, b.shader);
nvc0->tcp_empty = nvc0->base.pipe.create_tcs_state(&nvc0->base.pipe, &state);
}
NIR_PASS_V(b.shader, nir_lower_var_copies);
- struct pipe_shader_state state = {};
- state.type = PIPE_SHADER_IR_NIR;
- state.ir.nir = b.shader;
+ struct pipe_shader_state state;
+ pipe_shader_state_from_nir(&state, b.shader);
return pipe->create_vs_state(pipe, &state);
}
memset(&state->stream_output, 0, sizeof(state->stream_output));
}
+static inline void
+pipe_shader_state_from_nir(struct pipe_shader_state *state,
+ void *nir)
+{
+ state->type = PIPE_SHADER_IR_NIR;
+ state->ir.nir = nir;
+ state->tokens = NULL;
+ memset(&state->stream_output, 0, sizeof(state->stream_output));
+}
+
struct pipe_stencil_state
{