Skip to content

Commit

Permalink
drm/i915: Only apply the mb() when flushing the GTT domain during a f…
Browse files Browse the repository at this point in the history
…inish

Now that we seem to have brought order to the GTT barriers, the last one
to review is the terminal barrier before we unbind the buffer from the
GTT. This needs to only be performed if the buffer still resides in the
GTT domain, and so we can skip some needless barriers otherwise.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Chris Wilson authored and Daniel Vetter committed Jan 20, 2013
1 parent d0a5778 commit 97c809f
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/gpu/drm/i915/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -2407,15 +2407,15 @@ static void i915_gem_object_finish_gtt(struct drm_i915_gem_object *obj)
{
u32 old_write_domain, old_read_domains;

/* Act a barrier for all accesses through the GTT */
mb();

/* Force a pagefault for domain tracking on next user access */
i915_gem_release_mmap(obj);

if ((obj->base.read_domains & I915_GEM_DOMAIN_GTT) == 0)
return;

/* Wait for any direct GTT access to complete */
mb();

old_read_domains = obj->base.read_domains;
old_write_domain = obj->base.write_domain;

Expand Down

0 comments on commit 97c809f

Please sign in to comment.