Mesa (master): lavapipe: fix dynamic viewport/scissor pipeline emission

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Mar 5 03:44:43 UTC 2021


Module: Mesa
Branch: master
Commit: 1186fbcdf1221724baca9528dad9d7bd2c333df8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1186fbcdf1221724baca9528dad9d7bd2c333df8

Author: Dave Airlie <airlied at redhat.com>
Date:   Fri Mar  5 13:17:28 2021 +1000

lavapipe: fix dynamic viewport/scissor pipeline emission

Just fixup the tests for when the pipeline vp/scissors
are emitted.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9422>

---

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

diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c
index 4de47d08c1d..bb464e6cba7 100644
--- a/src/gallium/frontends/lavapipe/lvp_execute.c
+++ b/src/gallium/frontends/lavapipe/lvp_execute.c
@@ -671,12 +671,14 @@ static void handle_graphics_pipeline(struct lvp_cmd_buffer_entry *cmd,
          state->scissor_dirty = true;
       }
 
-      if (!dynamic_states[VK_DYNAMIC_STATE_VIEWPORT]) {
+      if (!dynamic_states[VK_DYNAMIC_STATE_VIEWPORT] &&
+          !dynamic_states[conv_dynamic_state_idx(VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT)]) {
          for (i = 0; i < vpi->viewportCount; i++)
             get_viewport_xform(&vpi->pViewports[i], state->viewports[i].scale, state->viewports[i].translate);
          state->vp_dirty = true;
       }
-      if (!dynamic_states[VK_DYNAMIC_STATE_SCISSOR]) {
+      if (!dynamic_states[VK_DYNAMIC_STATE_SCISSOR] &&
+          !dynamic_states[conv_dynamic_state_idx(VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT)]) {
          for (i = 0; i < vpi->scissorCount; i++) {
             const VkRect2D *ss = &vpi->pScissors[i];
             state->scissors[i].minx = ss->offset.x;



More information about the mesa-commit mailing list