[Intel-gfx] [PATCH 1/2] drm/i915: Replaced Blitter ring based flips with MMIO flips
Chris Wilson
chris at chris-wilson.co.uk
Wed May 28 09:30:14 CEST 2014
On Wed, May 28, 2014 at 12:42:01PM +0530, sourab.gupta at intel.com wrote:
> +static int intel_postpone_flip(struct drm_i915_gem_object *obj)
> +{
> + int ret;
> +
> + if (!obj->ring)
> + return 0;
> +
> + if (i915_seqno_passed(obj->ring->get_seqno(obj->ring, true),
> + obj->last_write_seqno))
> + return 0;
obj->last_write_seqno could be 0 here. To be correct, test against
obj->last_write_seqno == 0 instead of obj->ring == NULL first.
> + ret = i915_gem_check_olr(obj->ring, obj->last_write_seqno);
> + if (ret)
> + return ret;
> +
> + if (WARN_ON(!obj->ring->irq_get(obj->ring)))
> + return 0;
> +
> + return 1;
> +}
> +
> static int intel_default_queue_flip(struct drm_device *dev,
> struct drm_crtc *crtc,
> struct drm_framebuffer *fb,
> @@ -11515,6 +11652,9 @@ static void intel_init_display(struct drm_device *dev)
> break;
> }
>
> + if (intel_use_mmio_flip(dev))
> + dev_priv->display.queue_flip = intel_queue_mmio_flip;
I'd still like to see this as a tristate, i.e. use_mmio_flip(dev) > 1
here. E.g. we will want to use mmio flips for !BCS, but GPU flips when
BCS is active.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list