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 <chris@xxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx