1. 10 8月, 2012 1 次提交
  2. 09 8月, 2012 1 次提交
  3. 08 8月, 2012 2 次提交
    • C
      drm/i915: Add I915_GEM_PARAM_HAS_SEMAPHORES · 2fedbff9
      Chris Wilson 提交于
      Userspace tries to estimate the cost of ring switching based on whether
      the GPU and GEM supports semaphores. (If we have multiple rings and no
      semaphores, userspace assumes that the cost of switching rings between
      batches is exorbitant and will endeavour to keep the next batch on the
      active ring - as a coarse approximation to tracking both destination and
      source surfaces.) Currently userspace has to guess whether semaphores
      exist based on the chipset generation and the module parameter,
      i915.semaphores. This is a crude and inaccurate guess as the defaults
      internally depend upon other chipset features being enabled or disabled,
      nor does it extend well into the future. By exporting a HAS_SEMAPHORES
      parameter, we can easily query the driver and obtain an accurate answer.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      2fedbff9
    • C
      drm/i915: Only apply the SNB pipe control w/a to gen6 · 6c6cf5aa
      Chris Wilson 提交于
      The requirements for the sync flush to be emitted prior to the render
      cache flush is only true for SandyBridge. On IvyBridge and friends we
      can just emit the flushes with an inline CS stall.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6c6cf5aa
  4. 27 7月, 2012 1 次提交
  5. 26 7月, 2012 31 次提交
  6. 25 7月, 2012 4 次提交
    • D
      drm/i915: unbreak lastclose for failed driver init · e8aeaee7
      Daniel Vetter 提交于
      We now refuse to load on gen6+ if kms is not enabled:
      
      commit 26394d92
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Mon Mar 26 21:33:18 2012 +0200
      
          drm/i915: refuse to load on gen6+ without kms
      
      Which results in the drm core calling our lastclose function to clean
      up the mess, but that one is neatly broken for such failure cases
      since kms has been introduced in
      
      commit 79e53945
      Author: Jesse Barnes <jbarnes@virtuousgeek.org>
      Date:   Fri Nov 7 14:24:08 2008 -0800
      
          DRM: i915: add mode setting support
      Reported-and-tested-by: NPaulo Zanoni <przanoni@gmail.com>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e8aeaee7
    • E
      drm/i915: Set the context before setting up regs for the context. · 0da5cec1
      Eric Anholt 提交于
      Fixes failures in transform feedback on gen7 because our SOL_RESET
      flag was setting the transform feedback offsets in the old context
      (occasionally happened to be ours) instead of the new context.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      0da5cec1
    • D
      drm/i915: constify mode in crtc_mode_fixup · 35313cde
      Daniel Vetter 提交于
      Laurent Pinchart missed this when sending in is giant constify patch:
      
      commit e811f5ae
      Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Date:   Tue Jul 17 17:56:50 2012 +0200
      
          drm: Make the .mode_fixup() operations mode argument a const pointer
      
      Acked-by; Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      35313cde
    • D
      drm/i915/lvds: ditch ->prepare special case · 520c41cf
      Daniel Vetter 提交于
      LVDS is the first output where dpms on/off and prepare/commit don't
      perfectly match. Now the idea behind this special case seems to be
      that for simple resolution changes on the LVDS we don't need to stop
      the pipe, because (at least on newer chips) we can adjust the panel
      fitter on the fly.
      
      There are a few problems with the current code though:
      - We still stop and restart the pipe unconditionally, because the crtc
        helper code isn't flexible enough.
      - We show some ugly flickering, especially when changing crtcs (this
        the crtc helper would actually take into account, but we don't
        implement the encoder->get_crtc callback required to make this work
        properly).
      
      So it doesn't even work as advertised. I agree that it would be nice
      to do resolution changes on LVDS (and also eDP) whithout blacking the
      screen where the panel fitter allows to do that. But imo we should
      implement this as a special case a few layers up in the mode set code,
      akin to how we already detect simple framebuffer changes (and only
      update the required registers with ->mode_set_base).
      
      Until this is all in place, make our lives easier and just rip it out.
      
      Also note that this seems to fix actual bugs with enabling the lvds
      output, see:
      
      http://lists.freedesktop.org/archives/intel-gfx/2012-July/018614.html
      
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Giacomo Comes <comes@naic.edu>
      Acked-by: NChris Wilson <chris@chris-wilson.co.uk>
      Tested-by: NTakashi Iwai <tiwai@suse.de>
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      520c41cf