On Wed, Jan 29, 2014 at 04:17:37PM +0000, Damien Lespiau wrote: > +static void run_test(data_t *data, enum ring r1, enum ring r2, enum test test) > +{ > + struct ring_ops *r1_ops = &ops[r1]; > + struct ring_ops *r2_ops = &ops[r2]; > + drm_intel_bo *a, *b, *c; > + > + a = bo_create(data, WIDTH, HEIGHT, 0xa); > + b = bo_create(data, WIDTH, HEIGHT, 0xb); > + c = bo_create(data, WIDTH, HEIGHT, 0xc); > + > + r1_ops->busy(data); > + r2_ops->copy(data, a, b); ^^ r1 > + > + switch (test) { > + case TEST_WRITE_READ: > + r2_ops->copy(data, b, c); ^^ > + bo_check(data, c, 0xa); > + break; Turns out I was copying a to b on r2, and then b to c still on r2. So no inter-ring dependencies in that workload. Ooops. Pushed an updated patch that copy a to b on r1 and then b to c on r2 and verified that short-circuiting the semaphores breaks the test indeed. -- Damien _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx