<div id="geary-body" dir="auto"><div><br></div></div><div id="geary-quote" dir="auto"><br>On on., aug. 29, 2018 at 12:34 AM, Dave Airlie <airlied@gmail.com> wrote:<br><blockquote type="cite"><div class="plaintext" style="white-space: pre-wrap;">From: Dave Airlie <<a href="mailto:airlied@redhat.com">airlied@redhat.com</a>>

This fixes the situation where we'd send a shader with just the
header and no data.

piglit/glsl-max-varyings test was causing this to happen, and
the renderer fix was breaking it.
---
 src/gallium/drivers/virgl/virgl_encode.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/virgl/virgl_encode.c b/src/gallium/drivers/virgl/virgl_encode.c
index b56e1f5e428..c1082791af5 100644
--- a/src/gallium/drivers/virgl/virgl_encode.c
+++ b/src/gallium/drivers/virgl/virgl_encode.c
@@ -284,11 +284,12 @@ int virgl_encode_shader_state(struct virgl_context *ctx,
    while (left_bytes) {
       uint32_t length, offlen;
       int hdr_len = base_hdr_size + (first_pass ? strm_hdr_size : 0);
-      if (ctx->cbuf->cdw + hdr_len + 1 > VIRGL_MAX_CMDBUF_DWORDS)
+      if (ctx->cbuf->cdw + hdr_len + 1 >= VIRGL_MAX_CMDBUF_DWORDS)</div></blockquote><span style="white-space: pre-wrap;"><div><span style="white-space: pre-wrap;"><br></span></div><div><span style="white-space: pre-wrap;">Just a suggestion (doesn't affect the rb): You could also just remove the "+ 1" for the same effect, no?</span></div><br></span><blockquote type="cite"><div class="plaintext" style="white-space: pre-wrap;">          ctx->base.flush(&ctx->base, NULL, 0);
 
       thispass = (VIRGL_MAX_CMDBUF_DWORDS - ctx->cbuf->cdw - hdr_len - 1) * 4;
 
+      fprintf(stderr, "this pass is %d %d %d\n", thispass, ctx->cbuf->cdw, hdr_len);</div></blockquote><div style="white-space: pre-wrap;"><span style="white-space: pre-wrap;"><br></span></div><div style="white-space: pre-wrap;"><span style="white-space: pre-wrap;">Please either drop this line, or change it to:</span></div><div style="white-space: pre-wrap;"><span style="white-space: pre-wrap;"><br></span></div><div><span style="white-space: pre-wrap;">if (virgl_debug & VIRGL_DEBUG_VERBOSE)</span></div><div><span style="white-space: pre-wrap;">   debug_printf(</span><span style="white-space: pre-wrap;">"this pass is %d %d %d\n", thispass, ctx->cbuf->cdw, hdr_len);</span></div><div><span style="white-space: pre-wrap;"><br></span></div><div><span style="white-space: pre-wrap;">...instead.</span></div><div style="white-space: pre-wrap;"><span style="white-space: pre-wrap;"><br></span></div><div style="white-space: pre-wrap;"><span style="white-space: pre-wrap;">Otherwis
 e we'll get spewing on stderr, which has been known to cause issues for some test-suite runners.</span></div><div style="white-space: pre-wrap;"><span style="white-space: pre-wrap;"><br></span></div><div style="white-space: pre-wrap;"><span style="white-space: pre-wrap;">With that fixed:</span></div><div style="white-space: pre-wrap;"><span style="white-space: pre-wrap;"><br></span></div><div style="white-space: pre-wrap;"><span style="white-space: pre-wrap;">Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com></span></div></div>