1. 15 10月, 2021 1 次提交
  2. 05 10月, 2021 2 次提交
  3. 05 8月, 2021 1 次提交
  4. 28 7月, 2021 1 次提交
  5. 23 7月, 2021 1 次提交
  6. 21 7月, 2021 1 次提交
  7. 20 7月, 2021 2 次提交
  8. 14 7月, 2021 2 次提交
  9. 09 7月, 2021 3 次提交
  10. 21 6月, 2021 1 次提交
  11. 14 6月, 2021 1 次提交
  12. 04 5月, 2021 3 次提交
    • M
      drm/i915/uapi: implement object placement extension · 2459e56f
      Matthew Auld 提交于
      Add new extension to support setting an immutable-priority-list of
      potential placements, at creation time.
      
      If we use the normal gem_create or gem_create_ext without the
      extensions/placements then we still get the old behaviour with only
      placing the object in system memory.
      
      v2(Daniel & Jason):
          - Add a bunch of kernel-doc
          - Simplify design for placements extension
      
      Testcase: igt/gem_create/create-ext-placement-sanity-check
      Testcase: igt/gem_create/create-ext-placement-each
      Testcase: igt/gem_create/create-ext-placement-all
      Signed-off-by: NMatthew Auld <matthew.auld@intel.com>
      Signed-off-by: NCQ Tang <cq.tang@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com>
      Cc: Jordan Justen <jordan.l.justen@intel.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Kenneth Graunke <kenneth@whitecape.org>
      Cc: Jason Ekstrand <jason@jlekstrand.net>
      Cc: Dave Airlie <airlied@gmail.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: mesa-dev@lists.freedesktop.org
      Reviewed-by: NKenneth Graunke <kenneth@whitecape.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210429103056.407067-6-matthew.auld@intel.com
      2459e56f
    • M
      drm/i915/uapi: introduce drm_i915_gem_create_ext · ebcb4029
      Matthew Auld 提交于
      Same old gem_create but with now with extensions support. This is needed
      to support various upcoming usecases.
      
      v2:(Chris)
          - Use separate ioctl number for gem_create_ext, instead of hijacking
            the existing gem_create ioctl, otherwise we run into the issue
            with being unable to detect if the kernel supports the new extension
            behaviour.
          - We now have gem_create_ext.flags, which should be zeroed.
          - I915_GEM_CREATE_EXT_SETPARAM value is now zero, since this is the
            index into our array of extensions.
          - Setup a "vanilla" object which we can directly apply our extensions
            to.
      v3:(Daniel & Jason)
          - drop I915_GEM_CREATE_EXT_SETPARAM. Instead just have each extension
            do one thing only, instead of generic setparam which can cover
            various use cases.
          - add some kernel-doc.
      Signed-off-by: NMatthew Auld <matthew.auld@intel.com>
      Signed-off-by: NCQ Tang <cq.tang@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com>
      Cc: Jordan Justen <jordan.l.justen@intel.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Kenneth Graunke <kenneth@whitecape.org>
      Cc: Jason Ekstrand <jason@jlekstrand.net>
      Cc: Dave Airlie <airlied@gmail.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: mesa-dev@lists.freedesktop.org
      Reviewed-by: NKenneth Graunke <kenneth@whitecape.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210429103056.407067-5-matthew.auld@intel.com
      ebcb4029
    • A
      drm/i915/query: Expose memory regions through the query uAPI · 71021729
      Abdiel Janulgue 提交于
      Returns the available memory region areas supported by the HW.
      
      v2(Daniel & Jason):
          - Add some kernel-doc, including example usage.
          - Drop all the extra rsvd
      v3(Jason & Tvrtko)
          - add back rsvd
      Signed-off-by: NAbdiel Janulgue <abdiel.janulgue@linux.intel.com>
      Signed-off-by: NMatthew Auld <matthew.auld@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com>
      Cc: Jon Bloomfield <jon.bloomfield@intel.com>
      Cc: Jordan Justen <jordan.l.justen@intel.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Kenneth Graunke <kenneth@whitecape.org>
      Cc: Jason Ekstrand <jason@jlekstrand.net>
      Cc: Dave Airlie <airlied@gmail.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: mesa-dev@lists.freedesktop.org
      Reviewed-by: NKenneth Graunke <kenneth@whitecape.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210429103056.407067-3-matthew.auld@intel.com
      71021729
  13. 20 4月, 2021 3 次提交
  14. 18 3月, 2021 1 次提交
  15. 18 12月, 2020 1 次提交
  16. 02 12月, 2020 1 次提交
    • T
      drm/i915/pmu: Deprecate I915_PMU_LAST and optimize state tracking · 348fb0cb
      Tvrtko Ursulin 提交于
      Adding any kinds of "last" abi markers is usually a mistake which I
      repeated when implementing the PMU because it felt convenient at the time.
      
      This patch marks I915_PMU_LAST as deprecated and stops the internal
      implementation using it for sizing the event status bitmask and array.
      
      New way of sizing the fields is a bit less elegant, but it omits reserving
      slots for tracking events we are not interested in, and as such saves some
      runtime space. Adding sampling events is likely to be a special event and
      the new plumbing needed will be easily detected in testing. Existing
      asserts against the bitfield and array sizes are keeping the code safe.
      
      First event which gets the new treatment in this new scheme are the
      interrupts - which neither needs any tracking in i915 pmu nor needs
      waking up the GPU to read it.
      
      v2:
       * Streamline helper names. (Chris)
      
      v3:
       * Comment which events need tracking. (Chris)
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201201131757.206367-1-tvrtko.ursulin@linux.intel.com
      348fb0cb
  17. 18 8月, 2020 2 次提交
  18. 15 7月, 2020 1 次提交
  19. 27 3月, 2020 1 次提交
  20. 17 3月, 2020 1 次提交
    • L
      drm/i915/perf: introduce global sseu pinning · 11ecbddd
      Lionel Landwerlin 提交于
      On Gen11 powergating half the execution units is a functional
      requirement when using the VME samplers. Not fullfilling this
      requirement can lead to hangs.
      
      This unfortunately plays fairly poorly with the NOA requirements. NOA
      requires a stable power configuration to maintain its configuration.
      
      As a result using OA (and NOA feeding into it) so far has required us
      to use a power configuration that can work for all contexts. The only
      power configuration fullfilling this is powergating half the execution
      units.
      
      This makes performance analysis for 3D workloads somewhat pointless.
      
      Failing to find a solution that would work for everybody, this change
      introduces a new i915-perf stream open parameter that punts the
      decision off to userspace. If this parameter is omitted, the existing
      Gen11 behavior remains (half EU array powergating).
      
      This change takes the initiative to move all perf related sseu
      configuration into i915_perf.c
      
      v2: Make parameter priviliged if different from default
      
      v3: Fix context modifying its sseu config while i915-perf is enabled
      
      v4: Always consider global sseu a privileged operation (Tvrtko)
          Override req_sseu point in intel_sseu_make_rpcs() (Tvrtko)
          Remove unrelated changes (Tvrtko)
      
      v5: Some typos (Tvrtko)
          Process sseu param in read_properties_unlocked() (Tvrtko)
      
      v6: Actually commit the bits from v5...
          Fixup some checkpath warnings
      
      v7: Only compare engine uabi field (Chris)
      Signed-off-by: NLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200317132222.2638719-3-lionel.g.landwerlin@intel.com
      11ecbddd
  21. 26 2月, 2020 1 次提交
  22. 04 12月, 2019 1 次提交
  23. 30 10月, 2019 1 次提交
    • C
      drm/i915/gem: Make context persistence optional · a0e04715
      Chris Wilson 提交于
      Our existing behaviour is to allow contexts and their GPU requests to
      persist past the point of closure until the requests are complete. This
      allows clients to operate in a 'fire-and-forget' manner where they can
      setup a rendering pipeline and hand it over to the display server and
      immediately exit. As the rendering pipeline is kept alive until
      completion, the display server (or other consumer) can use the results
      in the future and present them to the user.
      
      The compute model is a little different. They have little to no buffer
      sharing between processes as their kernels tend to operate on a
      continuous stream, feeding the results back to the client application.
      These kernels operate for an indeterminate length of time, with many
      clients wishing that the kernel was always running for as long as they
      keep feeding in the data, i.e. acting like a DSP.
      
      Not all clients want this persistent "desktop" behaviour and would prefer
      that the contexts are cleaned up immediately upon closure. This ensures
      that when clients are run without hangchecking (e.g. for compute kernels
      of indeterminate runtime), any GPU hang or other unexpected workloads
      are terminated with the process and does not continue to hog resources.
      
      The default behaviour for new contexts is the legacy persistence mode,
      as some desktop applications are dependent upon the existing behaviour.
      New clients will have to opt in to immediate cleanup on context
      closure. If the hangchecking modparam is disabled, so is persistent
      context support -- all contexts will be terminated on closure.
      
      We expect this behaviour change to be welcomed by compute users, who
      have often been caught between a rock and a hard place. They disable
      hangchecking to avoid their kernels being "unfairly" declared hung, but
      have also experienced true hangs that the system was then unable to
      clean up. Naturally, this leads to bug reports.
      
      Testcase: igt/gem_ctx_persistence
      Link: https://github.com/intel/compute-runtime/pull/228Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>
      Cc: Jon Bloomfield <jon.bloomfield@intel.com>
      Reviewed-by: NJon Bloomfield <jon.bloomfield@intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Acked-by: NJason Ekstrand <jason@jlekstrand.net>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191029202338.8841-1-chris@chris-wilson.co.uk
      a0e04715
  24. 15 10月, 2019 4 次提交
  25. 21 9月, 2019 1 次提交
  26. 04 7月, 2019 1 次提交
  27. 22 5月, 2019 1 次提交
    • T
      drm/i915: Engine discovery query · c5d3e39c
      Tvrtko Ursulin 提交于
      Engine discovery query allows userspace to enumerate engines, probe their
      configuration features, all without needing to maintain the internal PCI
      ID based database.
      
      A new query for the generic i915 query ioctl is added named
      DRM_I915_QUERY_ENGINE_INFO, together with accompanying structure
      drm_i915_query_engine_info. The address of latter should be passed to the
      kernel in the query.data_ptr field, and should be large enough for the
      kernel to fill out all known engines as struct drm_i915_engine_info
      elements trailing the query.
      
      As with other queries, setting the item query length to zero allows
      userspace to query minimum required buffer size.
      
      Enumerated engines have common type mask which can be used to query all
      hardware engines, versus engines userspace can submit to using the execbuf
      uAPI.
      
      Engines also have capabilities which are per engine class namespace of
      bits describing features not present on all engine instances.
      
      v2:
       * Fixed HEVC assignment.
       * Reorder some fields, rename type to flags, increase width. (Lionel)
       * No need to allocate temporary storage if we do it engine by engine.
         (Lionel)
      
      v3:
       * Describe engine flags and mark mbz fields. (Lionel)
       * HEVC only applies to VCS.
      
      v4:
       * Squash SFC flag into main patch.
       * Tidy some comments.
      
      v5:
       * Add uabi_ prefix to engine capabilities. (Chris Wilson)
       * Report exact size of engine info array. (Chris Wilson)
       * Drop the engine flags. (Joonas Lahtinen)
       * Added some more reserved fields.
       * Move flags after class/instance.
      
      v6:
       * Do not check engine info array was zeroed by userspace but zero the
         unused fields for them instead.
      
      v7:
       * Simplify length calculation loop. (Lionel Landwerlin)
      
      v8:
       * Remove MBZ comments where not applicable.
       * Rename ABI flags to match engine class define naming.
       * Rename SFC ABI flag to reflect it applies to VCS and VECS.
       * SFC is wired to even _logical_ engine instances.
       * SFC applies to VCS and VECS.
       * HEVC is present on all instances on Gen11. (Tony)
       * Simplify length calculation even more. (Chris Wilson)
       * Move info_ptr assigment closer to loop for clarity. (Chris Wilson)
       * Use vdbox_sfc_access from runtime info.
       * Rebase for RUNTIME_INFO.
       * Refactor for lower indentation.
       * Rename uAPI class/instance to engine_class/instance to avoid C++
         keyword.
      
      v9:
       * Rebase for s/num_rings/num_engines/ in RUNTIME_INFO.
      
      v10:
       * Use new copy_query_item.
      
      v11:
       * Consolidate with struct i915_engine_class_instnace.
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Jon Bloomfield <jon.bloomfield@intel.com>
      Cc: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Tony Ye <tony.ye@intel.com>
      Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> # v7
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190522090054.6007-1-tvrtko.ursulin@linux.intel.com
      c5d3e39c