On Wed, Feb 08, 2017 at 01:10:56PM +0000, Tvrtko Ursulin wrote:
> @@ -2288,32 +2264,33 @@ int intel_ring_begin(struct drm_i915_gem_request 
> *req, int num_dwords)
>               ring->space -= remain_actual;
>       }
>  
> +     out = (u32 *)(ring->vaddr + ring->tail);

Checkpatch will complain about unaligned brackets, but I'll whine that
this cast is unnecessary.

> -static inline void intel_ring_advance(struct intel_ring *ring)
> +static inline void
> +intel_ring_advance(struct drm_i915_gem_request *req, u32 *out)
>  {
> +     struct intel_ring *ring = req->ring;
>       /* Dummy function.
>        *
>        * This serves as a placeholder in the code so that the reader
> @@ -519,7 +510,7 @@ static inline void intel_ring_advance(struct intel_ring 
> *ring)
>        * reserved for the command packet (i.e. the value passed to
>        * intel_ring_begin()).
>        */
> -     GEM_BUG_ONLY_ON(ring->tail != ring->advance);
> +     GEM_BUG_ON((ring->vaddr + ring->tail) != out);

This will generate a warning for an unused var if !GEM_DEBUG, just use
        GEM_BUG_ON(req->ring->vaddr + req->ring->tail != out);
it'll fit, the compiler will do CSE and it's only for debug...

The transformation looked good. I'd suggest we do a trybot with
i915.mmio_flip=0 to force the MI_DISPLAY_FLIP paths to be exercised and
aside from gen2/3 that should be all intel_ring_begin() covered.

In anticipation of those extra checks performed,
Reviewed-by: Chris Wilson <ch...@chris-wilson.co.uk>

A couple of future steps, we can eliminate some dwords by inserting the
MI_NOOP to align the tail in add_request. I
s/intel_ring_begin/i915_gem_request_emit/ for the thin veneer of oop.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to