diff options
author | Boris Brezillon <boris.brezillon@free-electrons.com> | 2018-02-07 10:09:08 +0100 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2018-02-22 15:35:39 -0800 |
commit | 6830a0512f31bab4f951b8618b6ea3cba9300c93 (patch) | |
tree | ac70fc7f530af6a10cf54b15a2fa9381e1d9939d /lib | |
parent | fe4cdd9e734d348be2d518fd0e663bddb886b7f0 (diff) |
igt/vc4: Add a helper function to mark BOs purgeable
v2: Rebase on get/set_tiling helpers (by anholt).
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/igt_vc4.c | 12 | ||||
-rw-r--r-- | lib/igt_vc4.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/igt_vc4.c b/lib/igt_vc4.c index 5347af8d..238bf26b 100644 --- a/lib/igt_vc4.c +++ b/lib/igt_vc4.c @@ -149,3 +149,15 @@ uint64_t igt_vc4_get_tiling(int fd, uint32_t handle) return get.modifier; } + +bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable) +{ + struct drm_vc4_gem_madvise arg = { + .handle = handle, + .madv = purgeable ? VC4_MADV_DONTNEED : VC4_MADV_WILLNEED, + }; + + do_ioctl(fd, DRM_IOCTL_VC4_GEM_MADVISE, &arg); + + return arg.retained; +} diff --git a/lib/igt_vc4.h b/lib/igt_vc4.h index d1740b93..2c016b16 100644 --- a/lib/igt_vc4.h +++ b/lib/igt_vc4.h @@ -27,6 +27,7 @@ uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval); int igt_vc4_create_bo(int fd, size_t size); void *igt_vc4_mmap_bo(int fd, uint32_t handle, uint32_t size, unsigned prot); +bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable); void igt_vc4_set_tiling(int fd, uint32_t handle, uint64_t modifier); uint64_t igt_vc4_get_tiling(int fd, uint32_t handle); |