From d6b4f746b001b1fe7b27bee997f345a5edab1608 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Sat, 9 Apr 2022 00:21:53 +0000 Subject: [PATCH] venus: cache front_rendering_usage bit at gralloc init Signed-off-by: Yiwei Zhang Part-of: --- src/virtio/vulkan/vn_android.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/virtio/vulkan/vn_android.c b/src/virtio/vulkan/vn_android.c index 32c465cab18..6e83670fb1a 100644 --- a/src/virtio/vulkan/vn_android.c +++ b/src/virtio/vulkan/vn_android.c @@ -30,9 +30,12 @@ /* perform options supported by CrOS Gralloc */ #define CROS_GRALLOC_DRM_GET_BUFFER_INFO 4 +#define CROS_GRALLOC_DRM_GET_USAGE 5 +#define CROS_GRALLOC_DRM_GET_USAGE_FRONT_RENDERING_BIT 0x1 struct vn_android_gralloc { const gralloc_module_t *module; + uint32_t front_rendering_usage; }; static struct vn_android_gralloc _vn_android_gralloc; @@ -42,6 +45,7 @@ vn_android_gralloc_init() { static const char CROS_GRALLOC_MODULE_NAME[] = "CrOS Gralloc"; const gralloc_module_t *gralloc = NULL; + uint32_t front_rendering_usage = 0; int ret; /* get gralloc module for gralloc buffer info query */ @@ -64,6 +68,13 @@ vn_android_gralloc_init() return -1; } + if (gralloc->perform(gralloc, CROS_GRALLOC_DRM_GET_USAGE, + CROS_GRALLOC_DRM_GET_USAGE_FRONT_RENDERING_BIT, + &front_rendering_usage) == 0) { + assert(front_rendering_usage); + _vn_android_gralloc.front_rendering_usage = front_rendering_usage; + } + _vn_android_gralloc.module = gralloc; return 0;