From 0fa4b64f6c349da91bde6bcadda307b249705862 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 24 Jun 2021 14:20:25 +1000 Subject: [PATCH] crocus: dirty blend state more often. The blend state depends on wm_prog_data dual_src and it also depends on the cbuf formats in can_emit_logic_op. Dirty it in the correct places. Fixes: dEQP-GLES3.functional.fbo.invalidate* Part-of: --- src/gallium/drivers/crocus/crocus_program.c | 2 +- src/gallium/drivers/crocus/crocus_state.c | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/crocus/crocus_program.c b/src/gallium/drivers/crocus/crocus_program.c index 8b2cd2d..b236a26 100644 --- a/src/gallium/drivers/crocus/crocus_program.c +++ b/src/gallium/drivers/crocus/crocus_program.c @@ -1977,7 +1977,7 @@ crocus_update_compiled_fs(struct crocus_context *ice) if (devinfo->ver < 6) ice->state.dirty |= CROCUS_DIRTY_GEN4_CLIP_PROG | CROCUS_DIRTY_GEN4_SF_PROG; else - ice->state.dirty |= CROCUS_DIRTY_CLIP; + ice->state.dirty |= CROCUS_DIRTY_CLIP | CROCUS_DIRTY_GEN6_BLEND_STATE; if (devinfo->ver == 6) ice->state.dirty |= CROCUS_DIRTY_RASTER; if (devinfo->ver >= 7) diff --git a/src/gallium/drivers/crocus/crocus_state.c b/src/gallium/drivers/crocus/crocus_state.c index 8cb00a9..b39b523 100644 --- a/src/gallium/drivers/crocus/crocus_state.c +++ b/src/gallium/drivers/crocus/crocus_state.c @@ -3379,10 +3379,8 @@ crocus_set_framebuffer_state(struct pipe_context *ctx, } #endif -#if GFX_VER >= 6 - if (cso->nr_cbufs != state->nr_cbufs) { - ice->state.dirty |= CROCUS_DIRTY_GEN6_BLEND_STATE; - } +#if GFX_VER >= 6 && GFX_VER < 8 + ice->state.dirty |= CROCUS_DIRTY_GEN6_BLEND_STATE; #endif if ((cso->layers == 0) != (layers == 0)) { -- 2.7.4