[Intel-gfx] [RFC PATCH 092/162] drm/i915/uapi: introduce drm_i915_gem_create_ext
Matthew Auld
matthew.auld at intel.com
Tue Dec 1 13:43:28 UTC 2020
On 01/12/2020 12:55, Chris Wilson wrote:
> Quoting Matthew Auld (2020-11-27 12:06:08)
>> Same old gem_create but with now with extensions support. This is needed
>> to support various upcoming usecases. For now we use the extensions
>> mechanism to support setting an immutable-priority-list of potential
>> placements, at creation time.
>>
>> If we wish to set the placements/regions we can simply do:
>>
>> struct drm_i915_gem_object_param region_param = { … }; /* Unchanged */
>> struct drm_i915_gem_create_ext_setparam setparam_region = {
>> .base = { .name = I915_GEM_CREATE_EXT_SETPARAM },
>> .param = region_param,
>> }
>>
>> struct drm_i915_gem_create_ext create_ext = {
>> .size = 16 * PAGE_SIZE,
>> .extensions = (uintptr_t)&setparam_region,
>> };
>> int err = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE_EXT, &create_ext);
>> if (err) ...
>
> Looking at the existing gem_create, there is no detection of an
> unsupported extension. That is there is no rejection of new userspace
> asking for placement on an old kernel. (As erroneous as that would be
> for many other reasons.)
>
> Unless I've missed something, we need a new ioctl number for CREATEv2.
+Joonas
Right, and I guess it's not a good idea for userspace to implement
something like has_gem_create_ext()?
> -Chris
>
More information about the Intel-gfx
mailing list