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.brezil...@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzw...@collabora.com> --- Changes in v3: * Collect R-b --- src/gallium/drivers/panfrost/pan_bo.c | 4 ++-- src/gallium/drivers/panfrost/pan_bo.h | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_bo.c b/src/gallium/drivers/panfrost/pan_bo.c index 209d1e0d71e5..9daddf9d0cc2 100644 --- a/src/gallium/drivers/panfrost/pan_bo.c +++ b/src/gallium/drivers/panfrost/pan_bo.c @@ -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; } diff --git a/src/gallium/drivers/panfrost/pan_bo.h b/src/gallium/drivers/panfrost/pan_bo.h index 73cc74a260d4..e4743f820aeb 100644 --- a/src/gallium/drivers/panfrost/pan_bo.h +++ b/src/gallium/drivers/panfrost/pan_bo.h @@ -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 -- 2.21.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev