Skip to content
  1. Sep 17, 2013
  2. Sep 13, 2013
  3. Sep 11, 2013
  4. Sep 10, 2013
    • Ville Syrjälä's avatar
      drm/i915: Fix HSW sync flags to use pipe config adjusted_mode · a666283e
      Ville Syrjälä authored
      
      
      intel_ddi_enable_transcoder_func() picked the sync flags from crtc->mode
      instead of the pipe config adjusted_mode. Fix the problem and hopefully
      rid my HSW machine of the remaining pipe config warnings.
      
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      a666283e
    • Chris Wilson's avatar
      drm/i915: Remove the double-list iteration from bound_any() · 5a1d5eb0
      Chris Wilson authored
      
      
      The purpose of the function is to find out whether the object is still
      bound in any address space. This can be easily checked by looking at the
      vma currently associated with the object, rather than asking if any of
      the global address spaces have an active vma on the object.
      
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      5a1d5eb0
    • Chris Wilson's avatar
      drm/i915: Write RING_TAIL once per-request · 09246732
      Chris Wilson authored
      
      
      Ignoring the legacy DRI1 code, and a couple of special cases (to be
      discussed later), all access to the ring is mediated through requests.
      The first write to a ring will grab a seqno and mark the ring as having
      an outstanding_lazy_request. Either through explicitly adding a request
      after an execbuffer or through an implicit wait (either by the CPU or by
      a semaphore), that sequence of writes will be terminated with a request.
      So we can ellide all the intervening writes to the tail register and
      send the entire command stream to the GPU at once. This will reduce the
      number of *serialising* writes to the tail register by a factor or 3-5
      times (depending upon architecture and number of workarounds, context
      switches, etc involved). This becomes even more noticeable when the
      register write is overloaded with a number of debugging tools. The
      astute reader will wonder if it is then possible to overflow the ring
      with a single command. It is not. When we start a command sequence to
      the ring, we check for available space and issue a wait in case we have
      not. The ring wait will in this case be forced to flush the outstanding
      register write and then poll the ACTHD for sufficient space to continue.
      
      The exception to the rule where everything is inside a request are a few
      initialisation cases where we may want to write GPU commands via the CS
      before userspace wakes up and page flips.
      
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      09246732