Mesa (main): venus: cache front_rendering_usage bit at gralloc init

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Apr 30 04:30:52 UTC 2022


Module: Mesa
Branch: main
Commit: d6b4f746b001b1fe7b27bee997f345a5edab1608
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d6b4f746b001b1fe7b27bee997f345a5edab1608

Author: Yiwei Zhang <zzyiwei at chromium.org>
Date:   Sat Apr  9 00:21:53 2022 +0000

venus: cache front_rendering_usage bit at gralloc init

Signed-off-by: Yiwei Zhang <zzyiwei at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15868>

---

 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;



More information about the mesa-commit mailing list