1. 22 11月, 2016 1 次提交
    • R
      drm/i915: Add i915 perf infrastructure · eec688e1
      Robert Bragg 提交于
      Adds base i915 perf infrastructure for Gen performance metrics.
      
      This adds a DRM_IOCTL_I915_PERF_OPEN ioctl that takes an array of uint64
      properties to configure a stream of metrics and returns a new fd usable
      with standard VFS system calls including read() to read typed and sized
      records; ioctl() to enable or disable capture and poll() to wait for
      data.
      
      A stream is opened something like:
      
        uint64_t properties[] = {
            /* Single context sampling */
            DRM_I915_PERF_PROP_CTX_HANDLE,        ctx_handle,
      
            /* Include OA reports in samples */
            DRM_I915_PERF_PROP_SAMPLE_OA,         true,
      
            /* OA unit configuration */
            DRM_I915_PERF_PROP_OA_METRICS_SET,    metrics_set_id,
            DRM_I915_PERF_PROP_OA_FORMAT,         report_format,
            DRM_I915_PERF_PROP_OA_EXPONENT,       period_exponent,
         };
         struct drm_i915_perf_open_param parm = {
            .flags = I915_PERF_FLAG_FD_CLOEXEC |
                     I915_PERF_FLAG_FD_NONBLOCK |
                     I915_PERF_FLAG_DISABLED,
            .properties_ptr = (uint64_t)properties,
            .num_properties = sizeof(properties) / 16,
         };
         int fd = drmIoctl(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param);
      
      Records read all start with a common { type, size } header with
      DRM_I915_PERF_RECORD_SAMPLE being of most interest. Sample records
      contain an extensible number of fields and it's the
      DRM_I915_PERF_PROP_SAMPLE_xyz properties given when opening that
      determine what's included in every sample.
      
      No specific streams are supported yet so any attempt to open a stream
      will return an error.
      
      v2:
          use i915_gem_context_get() - Chris Wilson
      v3:
          update read() interface to avoid passing state struct - Chris Wilson
          fix some rebase fallout, with i915-perf init/deinit
      v4:
          s/DRM_IORW/DRM_IOW/ - Emil Velikov
      Signed-off-by: NRobert Bragg <robert@sixbynine.org>
      Reviewed-by: NMatthew Auld <matthew.auld@intel.com>
      Reviewed-by: NSourab Gupta <sourab.gupta@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/20161107194957.3385-2-robert@sixbynine.org
      eec688e1
  2. 21 11月, 2016 1 次提交
  3. 17 11月, 2016 1 次提交
    • J
      drm/vc4: Add fragment shader threading support · c778cc5d
      Jonas Pfeil 提交于
      FS threading brings performance improvements of 0-20% in glmark2.
      
      The validation code checks for thread switch signals and ensures that
      the registers of the other thread are not touched, and that our clamps
      are not live across thread switches.  It also checks that the
      threading and branching instructions do not interfere.
      
      (Original patch by Jonas, changes by anholt for style cleanup,
      removing validation the kernel doesn't need to do, and adding the flag
      for userspace).
      
      v2: Minor style fixes from checkpatch.
      Signed-off-by: NJonas Pfeil <pfeiljonas@gmx.de>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      c778cc5d
  4. 15 11月, 2016 2 次提交
  5. 09 11月, 2016 1 次提交
  6. 08 11月, 2016 1 次提交
  7. 04 11月, 2016 1 次提交
    • E
      drm/vc4: Add support for rendering with ETC1 textures. · 7154d76f
      Eric Anholt 提交于
      The validation for it ends up being quite simple, but I hadn't got
      around to it before merging the driver.  For backwards compatibility,
      we also need to add a flag so that the userspace GL driver can easily
      tell if the kernel will allow ETC1 textures (on an old kernel, it will
      continue to convert to RGBA8)
      Signed-off-by: NEric Anholt <eric@anholt.net>
      7154d76f
  8. 26 10月, 2016 6 次提交
  9. 17 10月, 2016 2 次提交
  10. 16 9月, 2016 3 次提交
  11. 01 9月, 2016 1 次提交
  12. 26 8月, 2016 1 次提交
  13. 23 8月, 2016 1 次提交
  14. 16 8月, 2016 2 次提交
  15. 11 8月, 2016 1 次提交
  16. 08 8月, 2016 1 次提交
  17. 05 8月, 2016 2 次提交
  18. 20 7月, 2016 1 次提交
  19. 19 7月, 2016 1 次提交
  20. 18 7月, 2016 1 次提交
    • C
      drm/vgem: Attach sw fences to exported vGEM dma-buf (ioctl) · 40777984
      Chris Wilson 提交于
      vGEM buffers are useful for passing data between software clients and
      hardware renders. By allowing the user to create and attach fences to
      the exported vGEM buffers (on the dma-buf), the user can implement a
      deferred renderer and queue hardware operations like flipping and then
      signal the buffer readiness (i.e. this allows the user to schedule
      operations out-of-order, but have them complete in-order).
      
      This also makes it much easier to write tightly controlled testcases for
      dma-buf fencing and signaling between hardware drivers.
      
      v2: Don't pretend the fences exist in an ordered timeline, but allocate
      a separate fence-context for each fence so that the fences are
      unordered.
      v3: Make the debug output more interesting, and show the signaled status.
      v4: Automatically signal the fence to prevent userspace from
      indefinitely hanging drivers.
      
      Testcase: igt/vgem_basic/dmabuf-fence
      Testcase: igt/vgem_slow/nohang
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: Zach Reizner <zachr@google.com>
      Cc: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Acked-by: NZach Reizner <zachr@google.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1468571471-12610-1-git-send-email-chris@chris-wilson.co.uk
      40777984
  21. 16 7月, 2016 2 次提交
  22. 14 7月, 2016 1 次提交
    • E
      drm/vc4: Add a getparam ioctl for getting the V3D identity regs. · af713795
      Eric Anholt 提交于
      As I extend the driver to support different V3D revisions, userspace
      needs to know what version it's targeting.  This is most easily
      detected using the V3D identity registers.
      
      v2: Make sure V3D is runtime PM on when reading the registers.
      v3: Switch to a 64-bit param value (suggested by Rob Clark in review)
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> (v2)
      Reviewed-by: Rob Clark <robdclark@gmail.com> (v3, over irc)
      af713795
  23. 08 7月, 2016 1 次提交
  24. 04 7月, 2016 1 次提交
  25. 01 7月, 2016 1 次提交
  26. 13 5月, 2016 3 次提交