Thanks for your reply!
For real-time audio, latency from user input to audio changes is quite important, and when running as an AU plugin inside GarageBand for example, processing is done in ~3ms chunks to minimize this latency. So I can't trigger useful work more than that far in advance.
It's an interesting and useful question though; there may be ways to restructure the work so that I queue 30ms of kernels, but at 3ms out the kernel is just busy-waiting on a spinlock until work arrives. This would have the advantage that it would alleviate the latency overhead of scheduling a kernel for each 3ms chunk of work.
Do you know something specific about this 30ms number? Is Apple looking at something like the GPU's load average for power throttling?
Topic:
Graphics & Games
SubTopic:
Metal
Tags: