Source

Branch

1/ @NOTimothyLottes

@SheriefFYI

2x faster today perhaps. Prior on AMD I had RGP captures of game with 3 separate DMAs. See 0.1ms of GFX idle for a semaphore signal, and 0.1 ms idle for semaphore wait (already signaled) -> 3=0.6 ms GFX idle time/frame. At 120Hz that’s >7% of the frame lost, not acceptable IMO.

2/ @NOTimothyLottes

@SheriefFYI

… That was just for the transfers, the capture had a lot of dependent async-compute too, but at 200us idle/instance, all that had to be converted to non-async. Cutting waits from 100us to 50us {per signal or wait} wouldn’t change the conclusion.

3/ @NOTimothyLottes

@SheriefFYI

If drivers had on-GPU syncs, then async would be useful for things like CS index culling into a ring-buffer feeding GFX. But you need fully pipelined syncs for that. Even if they got 50us to 1us, it’s still perf death simply due to the idle during drain and fill.