From 5d7858f1517eb0961811e4106ba11c011d7002e3 Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Thu, 4 Oct 2018 16:40:07 +0200 Subject: [PATCH] virgl, vtest: Correct the transfer size calculation The transfer size used in virglrenderer refers to uint32_t, so one must add 3 and then divide by 4 instead of adding 3/4 which is a no-op with integers. Fixes: b3b82fe8ea virgl/vtest: add vtest driver Signed-off-by: Gert Wollny Reviewed-by: Gurchetan Singh --- src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c b/src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c index 4d20a63ad64..ce565ee76cf 100644 --- a/src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c +++ b/src/gallium/winsys/virgl/vtest/virgl_vtest_socket.c @@ -295,8 +295,10 @@ int virgl_vtest_send_transfer_cmd(struct virgl_vtest_winsys *vws, vtest_hdr[VTEST_CMD_LEN] = VCMD_TRANSFER_HDR_SIZE; vtest_hdr[VTEST_CMD_ID] = vcmd; + /* The host expects the size in dwords so calculate the rounded up + * value here. */ if (vcmd == VCMD_TRANSFER_PUT) - vtest_hdr[VTEST_CMD_LEN] += data_size + 3 / 4; + vtest_hdr[VTEST_CMD_LEN] += (data_size + 3) / 4; cmd[0] = handle; cmd[1] = level; -- 2.30.2