On on., aug. 29, 2018 at 12:34 AM, Dave Airlie <airl...@gmail.com>
wrote:
From: Dave Airlie <airl...@redhat.com>
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)
Just a suggestion (doesn't affect the rb): You could also just remove
the "+ 1" for the same effect, no?
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);
Please either drop this line, or change it to:
if (virgl_debug & VIRGL_DEBUG_VERBOSE)
debug_printf("this pass is %d %d %d\n", thispass, ctx->cbuf->cdw,
hdr_len);
...instead.
Otherwise we'll get spewing on stderr, which has been known to cause
issues for some test-suite runners.
With that fixed:
Reviewed-by: Erik Faye-Lund <erik.faye-l...@collabora.com>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev