diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ioctl_wrappers.c | 25 | ||||
-rw-r--r-- | lib/ioctl_wrappers.h | 1 |
2 files changed, 26 insertions, 0 deletions
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c index af63be34..67351afd 100644 --- a/lib/ioctl_wrappers.c +++ b/lib/ioctl_wrappers.c @@ -108,6 +108,31 @@ gem_handle_to_libdrm_bo(drm_intel_bufmgr *bufmgr, int fd, const char *name, uint return bo; } +/** + * gem_get_tiling: + * @fd: open i915 drm file descriptor + * @handle: gem buffer object handle + * @tiling: (out) tiling mode of the gem buffer + * @swizzle: (out) bit 6 swizzle mode + * + * This wraps the GET_TILING ioctl. + */ +void +gem_get_tiling(int fd, uint32_t handle, uint32_t *tiling, uint32_t *swizzle) +{ + struct drm_i915_gem_get_tiling get_tiling; + int ret; + + memset(&get_tiling, 0, sizeof(get_tiling)); + get_tiling.handle = handle; + + ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_GET_TILING, &get_tiling); + igt_assert(ret == 0); + + *tiling = get_tiling.tiling_mode; + *swizzle = get_tiling.swizzle_mode; +} + int __gem_set_tiling(int fd, uint32_t handle, uint32_t tiling, uint32_t stride) { struct drm_i915_gem_set_tiling st; diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h index 8ca21814..310d82ea 100644 --- a/lib/ioctl_wrappers.h +++ b/lib/ioctl_wrappers.h @@ -42,6 +42,7 @@ drm_intel_bo * gem_handle_to_libdrm_bo(drm_intel_bufmgr *bufmgr, int fd, /* ioctl_wrappers.c: * * ioctl wrappers and similar stuff for bare metal testing */ +void gem_get_tiling(int fd, uint32_t handle, uint32_t *tiling, uint32_t *swizzle); void gem_set_tiling(int fd, uint32_t handle, uint32_t tiling, uint32_t stride); int __gem_set_tiling(int fd, uint32_t handle, uint32_t tiling, uint32_t stride); |