Mesa (master): panfrost: Only set varyings and varying_buffers when varying_count > 0

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Dec 5 12:48:57 UTC 2020


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

Author: Boris Brezillon <boris.brezillon at collabora.com>
Date:   Sun Nov 22 11:35:29 2020 +0100

panfrost: Only set varyings and varying_buffers when varying_count > 0

This removes the "warn: No Varying records" printed by pandecode.

Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7921>

---

 src/gallium/drivers/panfrost/pan_cmdstream.c | 4 ++--
 src/gallium/drivers/panfrost/pan_context.c   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c
index 113653bcc6f..b72bf291156 100644
--- a/src/gallium/drivers/panfrost/pan_cmdstream.c
+++ b/src/gallium/drivers/panfrost/pan_cmdstream.c
@@ -1818,8 +1818,8 @@ panfrost_emit_varying_descriptor(struct panfrost_batch *batch,
         pan_emit_special_input(varyings, present, PAN_VARY_FRAGCOORD, MALI_ATTRIBUTE_SPECIAL_FRAG_COORD);
 
         *buffers = T.gpu;
-        *vs_attribs = trans.gpu;
-        *fs_attribs = trans.gpu + vs_size;
+        *vs_attribs = vs->varying_count ? trans.gpu : 0;
+        *fs_attribs = fs->varying_count ? trans.gpu + vs_size : 0;
 }
 
 void
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index e11077b952f..b9bfc5a99bf 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -304,7 +304,7 @@ panfrost_draw_emit_vertex(struct panfrost_batch *batch,
                 cfg.state = panfrost_emit_compute_shader_meta(batch, PIPE_SHADER_VERTEX);
                 cfg.attributes = panfrost_emit_vertex_data(batch, &cfg.attribute_buffers);
                 cfg.varyings = vs_vary;
-                cfg.varying_buffers = varyings;
+                cfg.varying_buffers = vs_vary ? varyings : 0;
                 cfg.thread_storage = shared_mem;
                 pan_emit_draw_descs(batch, &cfg, PIPE_SHADER_VERTEX);
         }
@@ -402,7 +402,7 @@ panfrost_draw_emit_tiler(struct panfrost_batch *batch,
                 cfg.state = panfrost_emit_frag_shader_meta(batch);
                 cfg.viewport = panfrost_emit_viewport(batch);
                 cfg.varyings = fs_vary;
-                cfg.varying_buffers = varyings;
+                cfg.varying_buffers = fs_vary ? varyings : 0;
                 cfg.thread_storage = shared_mem;
 
                 pan_emit_draw_descs(batch, &cfg, PIPE_SHADER_FRAGMENT);



More information about the mesa-commit mailing list