Mesa (main): virgl: Work around old virglrenderer's BARRIER counting bug.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Feb 14 23:34:34 UTC 2022


Module: Mesa
Branch: main
Commit: 2fd9e072cee02ce3d4269828af1855b4d2c641d4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2fd9e072cee02ce3d4269828af1855b4d2c641d4

Author: Emma Anholt <emma at anholt.net>
Date:   Fri Oct  8 10:10:43 2021 -0700

virgl: Work around old virglrenderer's BARRIER counting bug.

One less regression from doing nir-to-tgsi on CI's virglrenderer.

Reviewed-by: Gert Wollny <gert.wollny at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15014>

---

 src/gallium/drivers/virgl/virgl_encode.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/gallium/drivers/virgl/virgl_encode.c b/src/gallium/drivers/virgl/virgl_encode.c
index bd564333516..c4fb33b599b 100644
--- a/src/gallium/drivers/virgl/virgl_encode.c
+++ b/src/gallium/drivers/virgl/virgl_encode.c
@@ -552,6 +552,13 @@ int virgl_encode_shader_state(struct virgl_context *ctx,
    if (virgl_debug & VIRGL_DEBUG_TGSI)
       debug_printf("TGSI:\n---8<---\n%s\n---8<---\n", str);
 
+   /* virglrenderer before addbd9c5058dcc9d561b20ab747aed58c53499da mis-counts
+    * the tokens needed for a BARRIER, so ask it to allocate some more space.
+    */
+   const char *barrier = str;
+   while ((barrier = strstr(barrier + 1, "BARRIER")))
+      num_tokens++;
+
    shader_len = strlen(str) + 1;
 
    left_bytes = shader_len;



More information about the mesa-commit mailing list