diff options
author | Boris Brezillon <[email protected]> | 2019-09-14 09:45:37 +0200 |
---|---|---|
committer | Boris Brezillon <[email protected]> | 2019-09-18 10:28:39 +0200 |
commit | 29d0e5c1776cf430f0fd7d262df55670a5ff8d05 (patch) | |
tree | 162bd8e2b71316be68070797ae2989bcbab8fa2b /src/gallium/drivers/panfrost/pan_bo.c | |
parent | 0500c9e5145e651566b0204c3b62984919ba2450 (diff) |
panfrost: Move panfrost_bo_{reference,unreference}() to pan_bo.c
This way we have all BO related functions placed in the same source
file.
Signed-off-by: Boris Brezillon <[email protected]>
Reviewed-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/gallium/drivers/panfrost/pan_bo.c')
-rw-r--r-- | src/gallium/drivers/panfrost/pan_bo.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_bo.c b/src/gallium/drivers/panfrost/pan_bo.c index 22476f09566..9b0e8d943b4 100644 --- a/src/gallium/drivers/panfrost/pan_bo.c +++ b/src/gallium/drivers/panfrost/pan_bo.c @@ -29,6 +29,7 @@ #include <pthread.h> #include "drm-uapi/panfrost_drm.h" +#include "pan_resource.h" #include "pan_screen.h" #include "pan_util.h" #include "pandecode/decode.h" @@ -319,6 +320,25 @@ panfrost_bo_release(struct panfrost_screen *screen, struct panfrost_bo *bo, ralloc_free(bo); } +void +panfrost_bo_reference(struct panfrost_bo *bo) +{ + if (bo) + pipe_reference(NULL, &bo->reference); +} + +void +panfrost_bo_unreference(struct pipe_screen *screen, struct panfrost_bo *bo) +{ + if (!bo) + return; + + /* When the reference count goes to zero, we need to cleanup */ + + if (pipe_reference(&bo->reference, NULL)) + panfrost_bo_release(pan_screen(screen), bo, true); +} + struct panfrost_bo * panfrost_bo_import(struct panfrost_screen *screen, int fd) { |