From: Timothy Arceri Date: Wed, 19 Apr 2023 12:07:32 +0000 (+1000) Subject: glsl: call nir version of lower_blend_equation_advanced() X-Git-Tag: upstream/23.3.3~6285 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c02252950ca69cf4fba7b90ffc117938305099bb;p=platform%2Fupstream%2Fmesa.git glsl: call nir version of lower_blend_equation_advanced() Reviewed-by: Emma Anholt Part-of: --- diff --git a/src/mesa/state_tracker/st_glsl_to_ir.cpp b/src/mesa/state_tracker/st_glsl_to_ir.cpp index 5bcdf40..a4c43a7 100644 --- a/src/mesa/state_tracker/st_glsl_to_ir.cpp +++ b/src/mesa/state_tracker/st_glsl_to_ir.cpp @@ -81,10 +81,6 @@ link_shader(struct gl_context *ctx, struct gl_shader_program *prog) ctx->st->has_half_float_packing); do_mat_op_to_vec(ir); - if (stage == MESA_SHADER_FRAGMENT && pscreen->get_param(pscreen, PIPE_CAP_FBFETCH)) - lower_blend_equation_advanced( - shader, ctx->Extensions.KHR_blend_equation_advanced_coherent); - lower_instructions(ir, have_dround, ctx->Extensions.ARB_gpu_shader5); diff --git a/src/mesa/state_tracker/st_glsl_to_nir.cpp b/src/mesa/state_tracker/st_glsl_to_nir.cpp index c1f4607..7407e69 100644 --- a/src/mesa/state_tracker/st_glsl_to_nir.cpp +++ b/src/mesa/state_tracker/st_glsl_to_nir.cpp @@ -339,6 +339,15 @@ st_nir_preprocess(struct st_context *st, struct gl_program *prog, assert(options); nir_shader *nir = prog->nir; + if (prog->info.stage == MESA_SHADER_FRAGMENT && + st->screen->get_param(st->screen, PIPE_CAP_FBFETCH)) { + nir_shader_gather_info(prog->nir, nir_shader_get_entrypoint(prog->nir)); + NIR_PASS_V(prog->nir, gl_nir_lower_blend_equation_advanced, + st->ctx->Extensions.KHR_blend_equation_advanced_coherent); + nir_lower_global_vars_to_local(prog->nir); + NIR_PASS_V(prog->nir, nir_opt_combine_stores, nir_var_shader_out); + } + /* Set the next shader stage hint for VS and TES. */ if (!nir->info.separate_shader && (nir->info.stage == MESA_SHADER_VERTEX ||