aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLingfeng Yang <lfy@google.com>2020-05-14 09:35:55 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-05-14 09:35:55 +0000
commitacec2ec1c4045b3b0e5fabaae3c2cd7084de1f17 (patch)
treeb309e0e593aeddc8693d4a279c845ed77bb2158b
parent3eb964044463780b6a143ff85f7647b3a2dca352 (diff)
parent52879508e74eca5bf8905f8df40a0d672fe7215f (diff)
downloaddevice_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.cpp14
-rw-r--r--system/vulkan_enc/VirtioGpuNext.h68
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)