drm/i915: Updating comments.
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 30 Jun 2014 16:51:11 +0000 (09:51 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 7 Jul 2014 20:02:49 +0000 (22:02 +0200)
ring index calculation table was out of date after other rings were added,
although the formula is flexible and scale when adding new rings.

So this patch just update the comments and add a brief explanation
why to use sync_seqno[ring index].

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/intel_ringbuffer.h

index f6d123828926f6966487389322863f35a1b7dda5..e85c85c0333e387c0f3dc9b13a0056b598421625 100644 (file)
@@ -2842,6 +2842,8 @@ i915_gem_object_sync(struct drm_i915_gem_object *obj,
        idx = intel_ring_sync_index(from, to);
 
        seqno = obj->last_read_seqno;
+       /* Optimization: Avoid semaphore sync when we are sure we already
+        * waited for an object with higher seqno */
        if (seqno <= from->semaphore.sync_seqno[idx])
                return 0;
 
index e72017bdcd7f8e7df95a1ab75853d8351b8bbb9d..2e8b51645bcbeb84b7f3f39515f753d5b6ef972b 100644 (file)
@@ -238,9 +238,11 @@ intel_ring_sync_index(struct intel_engine_cs *ring,
        int idx;
 
        /*
-        * cs -> 0 = vcs, 1 = bcs
-        * vcs -> 0 = bcs, 1 = cs,
-        * bcs -> 0 = cs, 1 = vcs.
+        * rcs -> 0 = vcs, 1 = bcs, 2 = vecs, 3 = vcs2;
+        * vcs -> 0 = bcs, 1 = vecs, 2 = vcs2, 3 = rcs;
+        * bcs -> 0 = vecs, 1 = vcs2. 2 = rcs, 3 = vcs;
+        * vecs -> 0 = vcs2, 1 = rcs, 2 = vcs, 3 = bcs;
+        * vcs2 -> 0 = rcs, 1 = vcs, 2 = bcs, 3 = vecs;
         */
 
        idx = (other - ring) - 1;