panfrost: Add flags to reflect the BO imported/exported state
authorBoris Brezillon <boris.brezillon@collabora.com>
Sat, 14 Sep 2019 15:11:03 +0000 (17:11 +0200)
committerBoris Brezillon <boris.brezillon@collabora.com>
Thu, 3 Oct 2019 20:55:38 +0000 (16:55 -0400)
Will be useful to make the ioctl(WAIT_BO) call conditional on BOs that
are not exported/imported (meaning that all GPU accesses are known
by the context).

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/gallium/drivers/panfrost/pan_bo.c
src/gallium/drivers/panfrost/pan_bo.h

index 209d1e0d71e53a6a2d98ea15c2d3a4ffa46d4e58..9daddf9d0cc27c62e2dd28fd2027a0a49cdd816f 100644 (file)
@@ -355,7 +355,7 @@ panfrost_bo_import(struct panfrost_screen *screen, int fd)
         bo->gem_handle = gem_handle;
         bo->gpu = (mali_ptr) get_bo_offset.offset;
         bo->size = lseek(fd, 0, SEEK_END);
-        bo->flags |= PAN_BO_DONT_REUSE;
+        bo->flags |= PAN_BO_DONT_REUSE | PAN_BO_IMPORTED;
         assert(bo->size > 0);
         pipe_reference_init(&bo->reference, 1);
 
@@ -376,7 +376,7 @@ panfrost_bo_export(struct panfrost_bo *bo)
         if (ret == -1)
                 return -1;
 
-        bo->flags |= PAN_BO_DONT_REUSE;
+        bo->flags |= PAN_BO_DONT_REUSE | PAN_BO_EXPORTED;
         return args.fd;
 }
 
index 73cc74a260d46a9dfe52482b8db889737ac00796..e4743f820aeb080394cd816d3c74061849ec4abc 100644 (file)
@@ -56,6 +56,12 @@ struct panfrost_screen;
  * let the BO logic know about this contraint. */
 #define PAN_BO_DONT_REUSE         (1 << 5)
 
+/* BO has been imported */
+#define PAN_BO_IMPORTED           (1 << 6)
+
+/* BO has been exported */
+#define PAN_BO_EXPORTED           (1 << 7)
+
 /* GPU access flags */
 
 /* BO is either shared (can be accessed by more than one GPU batch) or private