1. 16 5月, 2017 1 次提交
  2. 10 5月, 2017 1 次提交
    • D
      drm/vblank: drop the mode argument from drm_calc_vbltimestamp_from_scanoutpos · 1bf6ad62
      Daniel Vetter 提交于
      If we restrict this helper to only kms drivers (which is the case) we
      can look up the correct mode easily ourselves. But it's a bit tricky:
      
      - All legacy drivers look at crtc->hwmode. But that is updated already
        at the beginning of the modeset helper, which means when we disable
        a pipe. Hence the final timestamps might be a bit off. But since
        this is an existing bug I'm not going to change it, but just try to
        be bug-for-bug compatible with the current code. This only applies
        to radeon&amdgpu.
      
      - i915 tries to get it perfect by updating crtc->hwmode when the pipe
        is off (i.e. vblank->enabled = false).
      
      - All other atomic drivers look at crtc->state->adjusted_mode. Those
        that look at state->requested_mode simply don't adjust their mode,
        so it's the same. That has two problems: Accessing crtc->state from
        interrupt handling code is unsafe, and it's updated before we shut
        down the pipe. For nonblocking modesets it's even worse.
      
      For atomic drivers try to implement what i915 does. To do that we add
      a new hwmode field to the vblank structure, and update it from
      drm_calc_timestamping_constants(). For atomic drivers that's called
      from the right spot by the helper library already, so all fine. But
      for safety let's enforce that.
      
      For legacy driver this function is only called at the end (oh the
      fun), which is broken, so again let's not bother and just stay
      bug-for-bug compatible.
      
      The  benefit is that we can use drm_calc_vbltimestamp_from_scanoutpos
      directly to implement ->get_vblank_timestamp in every driver, deleting
      a lot of code.
      
      v2: Completely new approach, trying to mimick the i915 solution.
      
      v3: Fixup kerneldoc.
      
      v4: Drop the WARN_ON to check that the vblank is off, atomic helpers
      currently unconditionally call this. Recomputing the same stuff should
      be harmless.
      
      v5: Fix typos and move misplaced hunks to the right patches (Neil).
      
      v6: Undo hunk movement (kbuild).
      
      Cc: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
      Cc: Eric Anholt <eric@anholt.net>
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: freedreno@lists.freedesktop.org
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: Christian König <christian.koenig@amd.com>
      Cc: Ben Skeggs <bskeggs@redhat.com>
      Reviewed-by: NNeil Armstrong <narmstrong@baylibre.com>
      Acked-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170509140329.24114-4-daniel.vetter@ffwll.ch
      1bf6ad62
  3. 08 4月, 2017 1 次提交
  4. 30 3月, 2017 8 次提交
  5. 18 3月, 2017 1 次提交
  6. 10 3月, 2017 1 次提交
  7. 28 1月, 2017 1 次提交
  8. 27 1月, 2017 1 次提交
  9. 26 1月, 2017 1 次提交
  10. 07 1月, 2017 1 次提交
  11. 08 12月, 2016 1 次提交
  12. 11 11月, 2016 1 次提交
  13. 01 11月, 2016 2 次提交
  14. 26 10月, 2016 4 次提交
  15. 04 10月, 2016 1 次提交
  16. 29 9月, 2016 1 次提交
  17. 28 9月, 2016 1 次提交
  18. 22 9月, 2016 1 次提交
  19. 20 9月, 2016 1 次提交
  20. 15 9月, 2016 2 次提交
  21. 13 9月, 2016 1 次提交
  22. 02 9月, 2016 2 次提交
  23. 01 9月, 2016 1 次提交
  24. 31 8月, 2016 1 次提交
    • M
      drm/amdgpu: throttle buffer migrations at CS using a fixed MBps limit (v2) · 95844d20
      Marek Olšák 提交于
      The old mechanism used a per-submission limit that didn't take previous
      submissions within the same time frame into account. It also filled VRAM
      slowly when VRAM usage dropped due to a big eviction or buffer deallocation.
      
      This new method establishes a configurable MBps limit that is obeyed when
      VRAM usage is very high. When VRAM usage is not very high, it gives
      the driver the freedom to fill it quickly. The result is more consistent
      performance.
      
      It can't keep the BO move rate low if lots of evictions are happening due
      to VRAM fragmentation, or if a big buffer is being migrated.
      
      The amdgpu.moverate parameter can be used to set a non-default limit.
      Measurements can be done to find out which amdgpu.moverate setting gives
      the best results.
      
      Mainly APUs and cards with small VRAM will benefit from this. For F1 2015,
      anything with 2 GB VRAM or less will benefit.
      
      Some benchmark results - F1 2015 (Tonga 2GB):
      
      Limit      MinFPS AvgFPS
      Old code:  14     32.6
      128 MB/s:  28     41
      64 MB/s:   15.5   43
      32 MB/s:   28.7   43.4
      8 MB/s:    27.8   44.4
      8 MB/s:    21.9   42.8 (different run)
      
      Random drops in Min FPS can still occur (due to fragmented VRAM?), but
      the average FPS is much better. 8 MB/s is probably a good limit for this
      game & the current VRAM management. The random FPS drops are still to be
      tackled.
      
      v2: use a spinlock
      Signed-off-by: NMarek Olšák <marek.olsak@amd.com>
      Acked-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      95844d20
  25. 25 8月, 2016 2 次提交
  26. 23 8月, 2016 1 次提交