From: Kenneth Graunke Date: Fri, 15 Feb 2019 22:22:52 +0000 (-0800) Subject: iris: Always emit at least one BLEND_STATE X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=51ddc4008429e61f80d64e63a8abc47392faa6d0;p=mesa.git iris: Always emit at least one BLEND_STATE --- diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 95c05f77757..bd222db4843 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -4140,7 +4140,14 @@ iris_upload_dirty_render_state(struct iris_context *ice, struct pipe_framebuffer_state *cso_fb = &ice->state.framebuffer; struct iris_depth_stencil_alpha_state *cso_zsa = ice->state.cso_zsa; const int header_dwords = GENX(BLEND_STATE_length); - const int rt_dwords = cso_fb->nr_cbufs * GENX(BLEND_STATE_ENTRY_length); + + /* Always write at least one BLEND_STATE - the final RT message will + * reference BLEND_STATE[0] even if there aren't color writes. There + * may still be alpha testing, computed depth, and so on. + */ + const int rt_dwords = + MAX2(cso_fb->nr_cbufs, 1) * GENX(BLEND_STATE_ENTRY_length); + uint32_t blend_offset; uint32_t *blend_map = stream_state(batch, ice->state.dynamic_uploader,