assert(prog->data->LinkStatus);
+ /* Skip the GLSL steps when using SPIR-V. */
+ if (prog->data->spirv) {
+ assert(use_nir);
+ return st_link_nir(ctx, prog);
+ }
+
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
if (prog->_LinkedShaders[i] == NULL)
continue;
lower_offset_arrays(ir);
do_mat_op_to_vec(ir);
- if (stage == MESA_SHADER_FRAGMENT)
+ if (stage == MESA_SHADER_FRAGMENT && pscreen->get_param(pscreen, PIPE_CAP_FBFETCH))
lower_blend_equation_advanced(
shader, ctx->Extensions.KHR_blend_equation_advanced_coherent);
do_vec_index_to_cond_assign(ir);
lower_vector_insert(ir, true);
lower_quadop_vector(ir, false);
- lower_noise(ir);
if (options->MaxIfDepth == 0) {
lower_discard(ir);
}
validate_ir_tree(ir);
}
- build_program_resource_list(ctx, prog);
+ build_program_resource_list(ctx, prog, use_nir);
if (use_nir)
return st_link_nir(ctx, prog);