[Intel-gfx] [PATCH 1/4] drm/i915: Clearing buffer objects via CPU/GTT

Chris Wilson chris at chris-wilson.co.uk
Wed Jul 22 08:23:48 PDT 2015


On Wed, Jul 22, 2015 at 04:16:20PM +0100, Tvrtko Ursulin wrote:
> 
> On 07/22/2015 04:06 PM, Chris Wilson wrote:
> >On Wed, Jul 22, 2015 at 04:01:33PM +0100, Tvrtko Ursulin wrote:
> >>This I don't understand. Why it is OK to release a fence and never
> >>re-establish it? Could that surprise some callers?
> >
> >We always call get_fence() before we need it (and pin it as required),
> >because it can be revoked at anytime as they are a scarce resource.
> 
> Oookay, and why it is important to release it here? Does it warrant
> a comment or everyone knows this?

There is fun to be had as the destination address is detiled by the
hardware meaning that it is possible for the writes into the last tile
row to be after the GTT address of the object. We should have allocated
sufficient space in the GTT to cover all fenced writes, but that is
actually only true on gen2/3.

There is also the fun that avoiding the fence (besides being a resource
that we may have to wait for and cause pagefaults elsewhere) is a bit
faster than writing through one.

So not using a fence is faster and less error prone.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list