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