anv: Wrapper around I915_GEM_CREATE_EXT_MEMORY_REGIONS

v2 (Jordan Justin):
 - add anv_gem_stubs.c impl

v3 (Jason Ekstrand):
 - Use the upstream uAPI
 - Rework the interface a bit

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5599>
This commit is contained in:
Sagar Ghuge
2020-03-31 18:26:20 -07:00
committed by Marge Bot
parent 65e8d72bc1
commit 3f8eca7f82
3 changed files with 36 additions and 0 deletions

View File

@@ -65,6 +65,31 @@ anv_gem_close(struct anv_device *device, uint32_t gem_handle)
intel_ioctl(device->fd, DRM_IOCTL_GEM_CLOSE, &close);
}
uint32_t
anv_gem_create_regions(struct anv_device *device, uint64_t anv_bo_size,
uint32_t num_regions,
struct drm_i915_gem_memory_class_instance *regions)
{
struct drm_i915_gem_create_ext_memory_regions ext_regions = {
.base = { .name = I915_GEM_CREATE_EXT_MEMORY_REGIONS },
.num_regions = num_regions,
.regions = (uintptr_t)regions,
};
struct drm_i915_gem_create_ext gem_create = {
.size = anv_bo_size,
.extensions = (uintptr_t) &ext_regions,
};
int ret = intel_ioctl(device->fd, DRM_IOCTL_I915_GEM_CREATE_EXT,
&gem_create);
if (ret != 0) {
return 0;
}
return gem_create.handle;
}
/**
* Wrapper around DRM_IOCTL_I915_GEM_MMAP. Returns MAP_FAILED on error.
*/