Quoting Chris Wilson (2019-01-25 02:30:01) > We have a number of tasks that we like to run when idle and parking the > GPU into a powersaving mode. A few of those tasks are using the global > idle point as a convenient moment when all previous execution has been > required (and so we know that the GPU is not still touching random > user memory). However, on a busy system we are unlikely to see global > idle points, and would prefer a much more incremental system of being > able to retire after all current execution has completed. > > Enter the idle barrier and idle tasks. > > To determine a point in the future when all current tasks are complete, > we schedule a new low priority request that will be executed after all > current work is complete, and by imposing a barrier before all future > work. We therefore know we retire that barrier, the GPU is no longer > touching any memory released before the barrier was submitting allowing > us to run a set of idle tasks clear of any dangling GPU references. The biggest downside is that this does impose a global barrier onto the system, a point which PI cannot pass. After sleeping on it, I think I prefer not to take this approach, as interesting as it is, just yet (for HW semaphores, we can just keep track of the read references). -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx