diff options
| author | Lingfeng Yang <lfy@google.com> | 2020-05-14 09:35:55 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-05-14 09:35:55 +0000 |
| commit | acec2ec1c4045b3b0e5fabaae3c2cd7084de1f17 (patch) | |
| tree | b309e0e593aeddc8693d4a279c845ed77bb2158b | |
| parent | 3eb964044463780b6a143ff85f7647b3a2dca352 (diff) | |
| parent | 52879508e74eca5bf8905f8df40a0d672fe7215f (diff) | |
| download | device_generic_goldfish-opengl-acec2ec1c4045b3b0e5fabaae3c2cd7084de1f17.tar.gz device_generic_goldfish-opengl-acec2ec1c4045b3b0e5fabaae3c2cd7084de1f17.tar.bz2 device_generic_goldfish-opengl-acec2ec1c4045b3b0e5fabaae3c2cd7084de1f17.zip | |
Revise virtio-gpu-next path to latest am: 52879508e7
Change-Id: I3cf9be28c4cfec0c997a4b7964421af31490a618
| -rw-r--r-- | system/vulkan_enc/ResourceTracker.cpp | 14 | ||||
| -rw-r--r-- | system/vulkan_enc/VirtioGpuNext.h | 68 |
2 files changed, 38 insertions, 44 deletions
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp index 4f513e09..40f00514 100644 --- a/system/vulkan_enc/ResourceTracker.cpp +++ b/system/vulkan_enc/ResourceTracker.cpp @@ -1845,14 +1845,14 @@ public: (unsigned long long)hvaSizeId[2]); mLock.lock(); - struct drm_virtgpu_resource_create_v2 drm_rc_v2 = { 0 }; - drm_rc_v2.args = (uint64_t)&hvaSizeId[2]; - drm_rc_v2.args_size = sizeof(uint64_t); - drm_rc_v2.size = hvaSizeId[1]; - drm_rc_v2.flags = VIRTGPU_RESOURCE_TYPE_HOST; + struct drm_virtgpu_resource_create_blob drm_rc_blob = { 0 }; + drm_rc_blob.blob_mem = VIRTGPU_BLOB_MEM_HOST; + drm_rc_blob.blob_flags = VIRTGPU_BLOB_FLAG_MAPPABLE; + drm_rc_blob.blob_id = hvaSizeId[2]; + drm_rc_blob.size = hvaSizeId[1]; int res = drmIoctl( - mRendernodeFd, DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_V2, &drm_rc_v2); + mRendernodeFd, DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB, &drm_rc_blob); if (res) { ALOGE("%s: Failed to resource create v2: sterror: %s errno: %d\n", __func__, @@ -1861,7 +1861,7 @@ public: } struct drm_virtgpu_map map_info = { - .handle = drm_rc_v2.bo_handle, + .handle = drm_rc_blob.bo_handle, }; res = drmIoctl(mRendernodeFd, DRM_IOCTL_VIRTGPU_MAP, &map_info); diff --git a/system/vulkan_enc/VirtioGpuNext.h b/system/vulkan_enc/VirtioGpuNext.h index 40379738..7da7da2c 100644 --- a/system/vulkan_enc/VirtioGpuNext.h +++ b/system/vulkan_enc/VirtioGpuNext.h @@ -18,43 +18,37 @@ #include "drm.h" #endif -#define DRM_VIRTGPU_RESOURCE_CREATE_V2 0x0a - -struct drm_virtgpu_resource_create_v2 { -#define VIRTGPU_RESOURCE_TYPE_MASK 0x0000f -#define VIRTGPU_RESOURCE_TYPE_DEFAULT_V1 0x00001 -#define VIRTGPU_RESOURCE_TYPE_DEFAULT_V2 0x00002 -#define VIRTGPU_RESOURCE_TYPE_HOST 0x00003 -#define VIRTGPU_RESOURCE_TYPE_GUEST 0x00004 -/* - * Error cases: - * HOST_VISIBLE_BIT without VIRTGPU_RESOURCE_TYPE_HOST - */ -#define VIRTGPU_RESOURCE_HOST_MASK 0x000f0 -#define VIRTGPU_RESOURCE_HOST_VISIBLE_BIT 0x00010 - -#define VIRTGPU_RESOURCE_GUEST_MASK 0x00f00 -#define VIRTGPU_RESOURCE_GUEST_SHARED_BIT 0x00100 -#define VIRTGPU_RESOURCE_GUEST_EMULATED_COHERENT_BIT 0x00200 - -#define VIRTGPU_RESOURCE_CACHE_MASK 0x0f000 -#define VIRTGPU_RESOURCE_CACHE_CACHED 0x01000 -#define VIRTGPU_RESOURCE_CACHE_UNCACHED 0x02000 -#define VIRTGPU_RESOURCE_CACHE_WC 0x03000 -/* - * VIRTGPU_RESOURCE_EXPORTABLE_BIT - host resource *can* be exported as an fd. - */ -#define VIRTGPU_RESOURCE_EXPORT_MASK 0xf0000 -#define VIRTGPU_RESOURCE_EXPORTABLE_BIT 0x10000 - uint32_t flags; - uint32_t args_size; - uint64_t size; - uint32_t bo_handle; - uint32_t res_handle; - uint64_t args; +#define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a + +#define VIRTGPU_PARAM_RESOURCE_BLOB 3 /* DRM_VIRTGPU_RESOURCE_CREATE_BLOB */ +#define VIRTGPU_PARAM_HOST_VISIBLE 4 + +struct drm_virtgpu_resource_create_blob { +#define VIRTGPU_BLOB_MEM_GUEST 0x0001 +#define VIRTGPU_BLOB_MEM_HOST 0x0002 +#define VIRTGPU_BLOB_MEM_HOST_GUEST 0x0003 + +#define VIRTGPU_BLOB_FLAG_MAPPABLE 0x0001 +#define VIRTGPU_BLOB_FLAG_SHAREABLE 0x0002 +#define VIRTGPU_BLOB_FLAG_CROSS_DEVICE 0x0004 + /* zero is invalid blob_mem */ + uint32_t blob_mem; + uint32_t blob_flags; + uint32_t bo_handle; + uint32_t res_handle; + uint64_t size; + + /* + * for 3D contexts with VIRTGPU_BLOB_MEM_HOSTGUEST and + * VIRTGPU_BLOB_MEM_HOST otherwise, must be zero. + */ + uint32_t pad; + uint32_t cmd_size; + uint64_t cmd; + uint64_t blob_id; }; -#define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_V2 \ - DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_V2, \ - struct drm_virtgpu_resource_create_v2) +#define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB \ + DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, \ + struct drm_virtgpu_resource_create_blob) |
