From 2d670169ce7cf5aefc26f04711855083e15d62fd Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 31 Jul 2023 17:37:15 +1000 Subject: [PATCH] nvk: fix independent color write masks. This fixes: dEQP-VK.renderpass.suballocation.attachment_write_mask.attachment_count_* Part-of: --- src/nouveau/vulkan/nvk_graphics_pipeline.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/nouveau/vulkan/nvk_graphics_pipeline.c b/src/nouveau/vulkan/nvk_graphics_pipeline.c index 17d229d7a5f..5c5379926cd 100644 --- a/src/nouveau/vulkan/nvk_graphics_pipeline.c +++ b/src/nouveau/vulkan/nvk_graphics_pipeline.c @@ -145,6 +145,7 @@ static void emit_pipeline_cb_state(struct nv_push *p, const struct vk_color_blend_state *cb) { + bool indep_color_masks = true; P_IMMD(p, NV9097, SET_BLEND_STATE_PER_TARGET, ENABLE_TRUE); for (uint32_t a = 0; a < cb->attachment_count; a++) { @@ -172,7 +173,12 @@ emit_pipeline_cb_state(struct nv_push *p, .b_enable = (att->write_mask & BITFIELD_BIT(2)) != 0, .a_enable = (att->write_mask & BITFIELD_BIT(3)) != 0, }); + + if (att->write_mask != cb->attachments[0].write_mask) + indep_color_masks = false; } + + P_IMMD(p, NV9097, SET_SINGLE_CT_WRITE_CONTROL, indep_color_masks); } static void