From: Chad Versace Date: Tue, 29 Aug 2017 08:34:44 +0000 (-0700) Subject: anv: Add func anv_gem_get_tiling() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b5dc551014f45daba07339f884e89f87c1be923e;p=mesa.git anv: Add func anv_gem_get_tiling() Will use in VK_ANDROID_native_buffer. Reviewed-by: Jason Ekstrand --- 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);