Mesa (staging/22.1): lavapipe: fix logicop, independent blend enable/disable

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 27 18:15:09 UTC 2022


Module: Mesa
Branch: staging/22.1
Commit: fb59b58ee0af80f6b68a1c91efd1150162e99258
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fb59b58ee0af80f6b68a1c91efd1150162e99258

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Jun  9 17:48:43 2022 -0600

lavapipe: fix logicop, independent blend enable/disable

The logicop_enable and independent_blend_enable vars need to always
be assigned, otherwise, once turned on, they could never be disabled.

This fixes a number of failures in VMware's test suite.

Signed-off-by: Brian Paul <brianp at vmware.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17062>
(cherry picked from commit 2b14a7658a4c798564d5269541b833975ad9d950)

---

 .pick_status.json                            | 2 +-
 src/gallium/frontends/lavapipe/lvp_execute.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 0f9835aa8a3..49323565a8b 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -5188,7 +5188,7 @@
         "description": "lavapipe: fix logicop, independent blend enable/disable",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c
index 4cb05e3ef69..6a8fe4f26d1 100644
--- a/src/gallium/frontends/lavapipe/lvp_execute.c
+++ b/src/gallium/frontends/lavapipe/lvp_execute.c
@@ -748,14 +748,14 @@ static void handle_graphics_pipeline(struct vk_cmd_queue_entry *cmd,
       const VkPipelineColorBlendStateCreateInfo *cb = pipeline->graphics_create_info.pColorBlendState;
       int i;
 
+      state->blend_state.logicop_enable = cb->logicOpEnable;
       if (cb->logicOpEnable) {
-         state->blend_state.logicop_enable = VK_TRUE;
          if (!dynamic_states[conv_dynamic_state_idx(VK_DYNAMIC_STATE_LOGIC_OP_EXT)])
             state->blend_state.logicop_func = vk_conv_logic_op(cb->logicOp);
       }
 
-      if (cb->attachmentCount > 1)
-         state->blend_state.independent_blend_enable = true;
+      state->blend_state.independent_blend_enable = (cb->attachmentCount > 1);
+
       for (i = 0; i < cb->attachmentCount; i++) {
          state->blend_state.rt[i].colormask = cb->pAttachments[i].colorWriteMask;
          state->blend_state.rt[i].blend_enable = cb->pAttachments[i].blendEnable;



More information about the mesa-commit mailing list