I should probably have said that the reviews are on v5 and it's very different in v6 so they should probably be considered dropped until re-confirmed. On Wed, Mar 17, 2021 at 9:39 AM Jason Ekstrand <jason@xxxxxxxxxxxxxx> wrote: > > The Vulkan driver in Mesa for Intel hardware never uses relocations if > it's running on a version of i915 that supports at least softpin which > all versions of i915 supporting Gen12 do. On the OpenGL side, Gen12+ is > only supported by iris which never uses relocations. The older i965 > driver in Mesa does use relocations but it only supports Intel hardware > through Gen11 and has been deprecated for all hardware Gen9+. The > compute driver also never uses relocations. This only leaves the media > driver which is supposed to be switching to softpin going forward. > Making softpin a requirement for all future hardware seems reasonable. > > There is one piece of hardware enabled by default in i915: RKL which was > enabled by e22fa6f0a976 which has not yet landed in drm-next so this > almost but not really a userspace API change for RKL. If it becomes a > problem, we can always add !IS_ROCKETLAKE(eb->i915) to the condition. > > Rejecting relocations starting with newer Gen12 platforms has the > benefit that we don't have to bother supporting it on platforms with > local memory. Given how much CPU touching of memory is required for > relocations, not having to do so on platforms where not all memory is > directly CPU-accessible carries significant advantages. > > v2 (Jason Ekstrand): > - Allow TGL-LP platforms as they've already shipped > > v3 (Jason Ekstrand): > - WARN_ON platforms with LMEM support in case the check is wrong > > v4 (Jason Ekstrand): > - Call out Rocket Lake in the commit message > > v5 (Jason Ekstrand): > - Drop the HAS_LMEM check as it's already covered by the version check > > v6 (Jason Ekstrand): > - Move the check to eb_validate_vma() with all the other exec_object > validation checks. > > Signed-off-by: Jason Ekstrand <jason@xxxxxxxxxxxxxx> > Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@xxxxxxxxx> > Reviewed-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > index 99772f37bff60..c082fb0bef330 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > @@ -483,6 +483,13 @@ eb_validate_vma(struct i915_execbuffer *eb, > struct drm_i915_gem_exec_object2 *entry, > struct i915_vma *vma) > { > + /* Relocations are disallowed for all platforms after TGL-LP. This > + * also covers all platforms with local memory. > + */ > + if (entry->relocation_count && > + INTEL_GEN(eb->i915) >= 12 && !IS_TIGERLAKE(eb->i915)) > + return -EINVAL; > + > if (unlikely(entry->flags & eb->invalid_flags)) > return -EINVAL; > > -- > 2.29.2 > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel