[Mesa-dev] [PATCH] virgl: Fix flush in virgl_encoder_inline_write.
Lepton Wu
lepton at chromium.org
Tue Jul 17 01:56:32 UTC 2018
The current code is buggy: if there are only 12 dwords left in cbuf,
we emit a zero data length command which will be rejected by virglrenderer.
Fix it by calling flush in this case.
---
src/gallium/drivers/virgl/virgl_encode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/virgl/virgl_encode.c b/src/gallium/drivers/virgl/virgl_encode.c
index 6b800d3d07..e097fa83a9 100644
--- a/src/gallium/drivers/virgl/virgl_encode.c
+++ b/src/gallium/drivers/virgl/virgl_encode.c
@@ -528,7 +528,7 @@ int virgl_encoder_inline_write(struct virgl_context *ctx,
left_bytes = size;
while (left_bytes) {
- if (ctx->cbuf->cdw + 12 > VIRGL_MAX_CMDBUF_DWORDS)
+ if (ctx->cbuf->cdw + 12 >= VIRGL_MAX_CMDBUF_DWORDS)
ctx->base.flush(&ctx->base, NULL, 0);
thispass = (VIRGL_MAX_CMDBUF_DWORDS - ctx->cbuf->cdw - 12) * 4;
--
2.18.0.203.gfac676dfb9-goog
More information about the mesa-dev
mailing list