minigbm: virtgpu/cross_domain: update protocol
- Update to match latest CONTEXT_INIT proposal
- Update cross domain protocol to match crosvm
(crrev.com/c/3055850) & Sommelier (crrev.com/c/3054321)
BUG=b:173630595
TEST=local testing with cross domain backend
Change-Id: I7420b03988bc8aed5b2bc53a0c54498a9ee47f86
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3119670
Reviewed-by: Jason Macnak <natsu@google.com>
Reviewed-by: Nicholas Verne <nverne@chromium.org>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
diff --git a/virtgpu_cross_domain.c b/virtgpu_cross_domain.c
index b02a949..965b6e7 100644
--- a/virtgpu_cross_domain.c
+++ b/virtgpu_cross_domain.c
@@ -107,7 +107,7 @@
exec.command = (uint64_t)&cmd[0];
exec.size = cmd_size;
if (wait) {
- exec.flags = VIRTGPU_EXECBUF_FENCE_CONTEXT;
+ exec.flags = VIRTGPU_EXECBUF_RING_IDX;
exec.bo_handles = (uint64_t)&priv->ring_handle;
exec.num_bo_handles = 1;
}
@@ -185,11 +185,11 @@
memcpy(&metadata->offsets, &addr[4], 4 * sizeof(uint32_t));
memcpy(&metadata->format_modifier, &addr[8], sizeof(uint64_t));
memcpy(&metadata->total_size, &addr[10], sizeof(uint64_t));
- memcpy(&metadata->blob_id, &addr[12], sizeof(uint64_t));
+ memcpy(&metadata->blob_id, &addr[12], sizeof(uint32_t));
- metadata->map_info = addr[14];
- metadata->memory_idx = addr[16];
- metadata->physical_device_idx = addr[17];
+ metadata->map_info = addr[13];
+ metadata->memory_idx = addr[14];
+ metadata->physical_device_idx = addr[15];
remaining_size = metadata->total_size;
for (plane = 0; plane < metadata->num_planes; plane++) {
@@ -269,7 +269,7 @@
// queries.
ctx_set_params[0].param = VIRTGPU_CONTEXT_PARAM_CAPSET_ID;
ctx_set_params[0].value = CAPSET_CROSS_DOMAIN;
- ctx_set_params[1].param = VIRTGPU_CONTEXT_PARAM_NUM_FENCE_CONTEXTS;
+ ctx_set_params[1].param = VIRTGPU_CONTEXT_PARAM_NUM_RINGS;
ctx_set_params[1].value = 1;
init.ctx_set_params = (unsigned long long)&ctx_set_params[0];
@@ -363,7 +363,7 @@
drm_rc_blob.size = bo->meta.total_size;
drm_rc_blob.blob_flags = blob_flags;
- drm_rc_blob.blob_id = bo->meta.blob_id;
+ drm_rc_blob.blob_id = (uint64_t)bo->meta.blob_id;
ret = drmIoctl(bo->drv->fd, DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB, &drm_rc_blob);
if (ret < 0) {