1. 24 Mar, 2021 38 commits
  2. 18 Mar, 2021 2 commits
    • Ashutosh Dixit's avatar
      drm/i915: Disable pread/pwrite ioctl's for future platforms (v3) · f8d1ff10
      Ashutosh Dixit authored
      The rationale for this change is roughly as follows:
      
       1. The functionality can be done entirely in userspace with a
          combination of mmap + memcpy
      
       2. The only reason anyone in userspace is still using it is because
          someone implemented bo_subdata that way in libdrm ages ago and
          they're all too lazy to write the 5 lines of code to do a map.
      
       3. This falls cleanly into the category of things which will only get
          more painful with local memory support.
      
      These ioctls aren't used much anymore by "real" userspace drivers.
      Vulkan has never used them and neither has the iris GL driver.  The old
      i965 GL driver does use PWRITE for glBufferSubData but it only supports
      up through Gen11; Gen12 was never enabled in i965.  The compute driver
      has never used PREAD/PWRITE.  The only remaining user is the media
      driver which uses it exactly twice and they're easily removed [1] so
      expecting them to drop it going forward is reasonable.
      
      IGT changes which handle this kernel change have also been submitted [2].
      
      [1] https://github.com/intel/media-driver/pull/1160
      [2] https://patchwork.freedesktop.org/series/81384/
      
      v2 (Jason Ekstrand):
       - Improved commit message with the status of all usermode drivers
       - A more future-proof platform check
      
      v3 (Jason Ekstrand):
       - Drop the HAS_LMEM checks as they're already covered by the version
         checks
      Signed-off-by: default avatarAshutosh Dixit <ashutosh.dixit@intel.com>
      Signed-off-by: default avatarJason Ekstrand <jason@jlekstrand.net>
      Reviewed-by: default avatarJason Ekstrand <jason@jlekstrand.net>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210317234014.2271006-4-jason@jlekstrand.net
      f8d1ff10
    • Jason Ekstrand's avatar
      drm/i915/gem: Drop relocation support on all new hardware (v6) · 2eb8e1a6
      Jason Ekstrand authored
      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 e22fa6f0 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: default avatarJason Ekstrand <jason@jlekstrand.net>
      Reviewed-by: default avatarZbigniew Kempczyński <zbigniew.kempczynski@intel.com>
      Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210317234014.2271006-3-jason@jlekstrand.net
      2eb8e1a6