On Thu, Jan 21, 2010 at 4:56 PM, Luca Barbieri <[email protected]> wrote: >> Doing it without software methods means you need to have a semaphore >> that "exists" in the cpu domain and therefore cannot be used again >> until the cpu is sure it's done. So that will probably require a >> rotating queue of several semaphores and a fallback to cpu waiting. > > Why would it need a semaphore in CPU domain? > Couldn't it work this way: > 1. Allocate a BO in the kernel
Who will set the initial "not-done" value? > 2. Emit on one channel a "notify" request on that BO > 3. Emit on the other channel a "wait" request on that BO > 4. Emit a fence on the wait channel > 5. Use the existing delayed-destroy mechanism to get rid of the BO > once the wait channel fence expires > > Then the GPU would presumably switch away from the "waiting" context > and not reexecute it until the notify happens, or something similar. > > The problem is, of course, whether the GPU supports the "wait" request. > _______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
