Quoting Tvrtko Ursulin (2017-12-20 09:45:41) > > On 19/12/2017 21:45, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2017-12-19 15:45:42) > >> From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > >> > >> Rather than calibrate and emit nop batches, use a manually signalled chain > >> of spinners to generate the desired interrupts. > >> > >> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> > >> --- > >> - /* Unplug the calibrated queue and wait for all the fences */ > >> - igt_spin_batch_free(gem_fd, spin); > >> - igt_assert_eq(poll(&pfd, 1, 2 * test_duration_ms), 1); > >> - close(pfd.fd); > >> + pfd.fd = spin[i]->out_fence; > >> + igt_spin_batch_set_timeout(spin[i], timeout_ms * 1e6); > >> + igt_assert_eq(poll(&pfd, 1, 2 * timeout_ms), 1); > > > > Oh, still with the synchronous behaviour, bleurgh. > > I was attracted by the simplicity of this approach, but I can change to > set incremental timeouts and keep the merged fence if you think that's > better? It was mostly surprise as I just have a preference for setting up everything and then letting it go; fire-and-forget style. So that was what I was expecting to see. It should basically be the difference of adding a single function to merge the fences (albeit you have to write that function). Shall we say both patterns have merit / analogues to the real world? -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx