From: Alyssa Rosenzweig Date: Tue, 22 Mar 2022 01:31:53 +0000 (-0400) Subject: asahi: Run lower_blend for all fragment shaders X-Git-Tag: upstream/22.3.5~8515 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0ea174f38c349652630ccf256d6ce40d5562c691;p=platform%2Fupstream%2Fmesa.git asahi: Run lower_blend for all fragment shaders Unify the paths so that colour masks are respected even when regular blending is off (or when logic ops are used!) Fixes dEQP-GLES2.functional.color_clear.masked_rgb Signed-off-by: Alyssa Rosenzweig Part-of: --- diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index 8c8cdd3..9c22e63 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -913,26 +913,19 @@ agx_update_shader(struct agx_context *ctx, struct agx_compiled_shader **out, nir_shader *nir = nir_shader_clone(NULL, so->nir); - if (key->blend.blend_enable) { - nir_lower_blend_options opts = { - .format = { key->rt_formats[0] }, - .scalar_blend_const = true - }; - - memcpy(opts.rt, key->blend.rt, sizeof(opts.rt)); - NIR_PASS_V(nir, nir_lower_blend, &opts); - } else if (key->blend.logicop_enable) { + if (stage == PIPE_SHADER_FRAGMENT) { nir_lower_blend_options opts = { .format = { key->rt_formats[0] }, - .logicop_enable = true, + .scalar_blend_const = true, + .logicop_enable = key->blend.logicop_enable, .logicop_func = key->blend.logicop_func, }; + memcpy(opts.rt, key->blend.rt, sizeof(opts.rt)); NIR_PASS_V(nir, nir_lower_blend, &opts); - } - if (stage == PIPE_SHADER_FRAGMENT) NIR_PASS_V(nir, nir_lower_fragcolor, key->nr_cbufs); + } agx_compile_shader_nir(nir, &key->base, &binary, &compiled->info);