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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11567>
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user