gem_tiled_blits: Minor enhancements
authorChris Wilson <chris@chris-wilson.co.uk>
Sat, 5 Feb 2011 10:09:38 +0000 (10:09 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Sun, 6 Feb 2011 10:11:02 +0000 (10:11 +0000)
Include a simple series of blits that exhaust the aperture but have the
maximum grace time between reuse.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
tests/gem_tiled_blits.c

index 95764ec..84b66cb 100644 (file)
@@ -149,15 +149,41 @@ int main(int argc, char **argv)
        for (i = 0; i < count; i++) {
                bo[i] = create_bo(start);
                bo_start_val[i] = start;
+               start += 1024 * 1024 / 4;
+       }
+       printf("Verifying initialisation...\n");
+       for (i = 0; i < count; i++)
+               check_bo(bo[i], bo_start_val[i]);
+
+       printf("Cyclic blits, forward...\n");
+       for (i = 0; i < count * 4; i++) {
+               int src = i % count;
+               int dst = (i+1) % count;
+
+               if (src == dst)
+                       continue;
 
-               /*
-               printf("Creating bo %d\n", i);
+               intel_copy_bo(batch, bo[dst], bo[src], width, height);
+               bo_start_val[dst] = bo_start_val[src];
+       }
+       for (i = 0; i < count; i++)
                check_bo(bo[i], bo_start_val[i]);
-               */
 
-               start += 1024 * 1024 / 4;
+       printf("Cyclic blits, backward...\n");
+       for (i = 0; i < count * 4; i++) {
+               int src = (i+1) % count;
+               int dst = i % count;
+
+               if (src == dst)
+                       continue;
+
+               intel_copy_bo(batch, bo[dst], bo[src], width, height);
+               bo_start_val[dst] = bo_start_val[src];
        }
+       for (i = 0; i < count; i++)
+               check_bo(bo[i], bo_start_val[i]);
 
+       printf("Random blits...\n");
        for (i = 0; i < count * 4; i++) {
                int src = random() % count;
                int dst = random() % count;
@@ -167,19 +193,11 @@ int main(int argc, char **argv)
 
                intel_copy_bo(batch, bo[dst], bo[src], width, height);
                bo_start_val[dst] = bo_start_val[src];
-
-               /*
-               check_bo(bo[dst], bo_start_val[dst]);
-               printf("%d: copy bo %d to %d\n", i, src, dst);
-               */
        }
-
-       for (i = 0; i < count; i++) {
-               /*
-               printf("check %d\n", i);
-               */
+       for (i = 0; i < count; i++)
                check_bo(bo[i], bo_start_val[i]);
 
+       for (i = 0; i < count; i++) {
                drm_intel_bo_unreference(bo[i]);
                bo[i] = NULL;
        }