From a7fdf8110370908b31ce02bc5f91a17fc2c59c3d Mon Sep 17 00:00:00 2001 From: Gurchetan Singh Date: Fri, 21 Jun 2024 11:20:07 -0700 Subject: [PATCH] gfxstream: guest: support blobCmd + blobCmdSize This is useful for trying to hook into gfxstream's ColorBuffer handlers, without creating shadow guest memory associated with RESOURCE_CREATE_3D. Reviewed-by: Aaron Ruby Acked-by: Yonggang Luo Acked-by: Adam Jackson Part-of: --- src/gfxstream/guest/platform/include/VirtGpu.h | 3 +++ src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/gfxstream/guest/platform/include/VirtGpu.h b/src/gfxstream/guest/platform/include/VirtGpu.h index aeacfff7a6c..c0bfa3b22e4 100644 --- a/src/gfxstream/guest/platform/include/VirtGpu.h +++ b/src/gfxstream/guest/platform/include/VirtGpu.h @@ -117,6 +117,9 @@ struct VirtGpuCreateBlob { enum VirtGpuResourceFlags flags; enum VirtGpuResourceMem blobMem; uint64_t blobId; + + uint8_t* blobCmd; + uint32_t blobCmdSize; }; struct VirtGpuCaps { diff --git a/src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp b/src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp index fc03ade428e..5078a11fd7d 100644 --- a/src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp +++ b/src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp @@ -184,6 +184,8 @@ VirtGpuResourcePtr LinuxVirtGpuDevice::createBlob(const struct VirtGpuCreateBlob create.blob_mem = blobCreate.blobMem; create.blob_flags = blobCreate.flags; create.blob_id = blobCreate.blobId; + create.cmd = (uint64_t)(uintptr_t)blobCreate.blobCmd; + create.cmd_size = blobCreate.blobCmdSize; ret = drmIoctl(mDeviceHandle, DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB, &create); if (ret < 0) {