On ke, 2016-04-06 at 13:33 +0100, Chris Wilson wrote: > An oversight is that when we wrap the seqno, we need to reset the hw > semaphore counters to 0. We did this for gen6 and gen7 and forgot to do > so for the new implementation required for gen8 (legacy). > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > Cc: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_ringbuffer.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c > index 69852ac4018d..0e6490074011 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.c > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c > @@ -2566,6 +2566,14 @@ void intel_ring_init_seqno(struct intel_engine_cs *engine, u32 seqno) > if (HAS_VEBOX(dev_priv)) > I915_WRITE(RING_SYNC_2(engine->mmio_base), 0); > } > + if (dev_priv->semaphore_obj) { > + struct drm_i915_gem_object *obj = dev_priv->semaphore_obj; > + struct page *page = i915_gem_object_get_dirty_page(obj, 0); > + void *semaphores = kmap(page); > + memset(semaphores + GEN8_SEMAPHORE_OFFSET(engine->id, 0), > + 0, I915_NUM_ENGINES * gen8_semaphore_seqno_size); > + kunmap(page); > + } > memset(engine->semaphore.sync_seqno, 0, > sizeof(engine->semaphore.sync_seqno)); > -- Joonas Lahtinen Open Source Technology Center Intel Corporation _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx