Mesa (main): etnaviv: always try to create KMS side handles for imported resources

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Aug 9 22:18:30 UTC 2021


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

Author: Lucas Stach <l.stach at pengutronix.de>
Date:   Wed Jan 15 12:07:44 2020 +0100

etnaviv: always try to create KMS side handles for imported resources

By creating the KMS side handles we allow GBM to return the proper KMS
side GEM handles for imported buffers. Always creating the KMS side
handles adds a bit of overhead, as we don't need them on all imported
resources, but seems like the most robust solution for now.

Cc: mesa-stable
Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
Reviewed-by: Simon Ser <contact at emersion.fr>
Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12018>

---

 src/gallium/drivers/etnaviv/etnaviv_resource.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c b/src/gallium/drivers/etnaviv/etnaviv_resource.c
index 3d1552e4c23..aa47be8ed07 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_resource.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c
@@ -566,6 +566,16 @@ etna_resource_from_handle(struct pipe_screen *pscreen,
    if (!rsc->pending_ctx)
       goto fail;
 
+   if (screen->ro) {
+      struct pipe_resource *imp_prsc = prsc;
+      do {
+         etna_resource(imp_prsc)->scanout =
+               renderonly_create_gpu_import_for_resource(imp_prsc, screen->ro,
+                                                         NULL);
+         /* failure is expected for scanout incompatible buffers */
+      } while ((imp_prsc = imp_prsc->next));
+   }
+
    return prsc;
 
 fail:



More information about the mesa-commit mailing list