diff options
-rw-r--r-- | src/intel/vulkan/anv_gem.c | 16 | ||||
-rw-r--r-- | src/intel/vulkan/anv_private.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/intel/vulkan/anv_gem.c b/src/intel/vulkan/anv_gem.c index 3994c6b66c2..34c09891086 100644 --- a/src/intel/vulkan/anv_gem.c +++ b/src/intel/vulkan/anv_gem.c @@ -192,6 +192,22 @@ anv_gem_execbuffer(struct anv_device *device, return anv_ioctl(device->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, execbuf); } +/** Return -1 on error. */ +int +anv_gem_get_tiling(struct anv_device *device, uint32_t gem_handle) +{ + struct drm_i915_gem_get_tiling get_tiling = { + .handle = gem_handle, + }; + + if (anv_ioctl(device->fd, DRM_IOCTL_I915_GEM_GET_TILING, &get_tiling)) { + assert(!"Failed to get BO tiling"); + return -1; + } + + return get_tiling.tiling_mode; +} + int anv_gem_set_tiling(struct anv_device *device, uint32_t gem_handle, uint32_t stride, uint32_t tiling) diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 27d2c342033..8af3f5c69e1 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -929,6 +929,7 @@ int anv_gem_destroy_context(struct anv_device *device, int context); int anv_gem_get_context_param(int fd, int context, uint32_t param, uint64_t *value); int anv_gem_get_param(int fd, uint32_t param); +int anv_gem_get_tiling(struct anv_device *device, uint32_t gem_handle); bool anv_gem_get_bit6_swizzle(int fd, uint32_t tiling); int anv_gem_get_aperture(int fd, uint64_t *size); bool anv_gem_supports_48b_addresses(int fd); |