Files
filament/libs/utils/src
Mathias Agopian be4f287b07 More improvements to the JobSystem (#7988)
* improve parallel_for a bit

We get about 40% performance increase. The gain comes from not having
to copy the JobData structure each time we create a job, by using a
new emplaceJob() method, we can create the structure directly into
its destination.

* avoid calling wakeAll() when possible

wakeAll() is very expensive and not always needed when a job finishes
because there may not be anyone waiting on that job.

We now maintain a waiter count per job, and use that to determine if
we need to notify or not.

And now that the JobSystem overhead is lower, we can decrease the size
of the jobs, which improves the load balancing.

* mActiveJobs fixes

some comments claimed mActiveJobs needed to be modified before or after
accessing the WorkQueue; this couldn't be correct because there were no
guaranteed global ordering with the workQueue.
2024-07-24 15:34:36 -07:00
..
2024-01-17 11:04:42 -08:00
2022-08-02 09:51:13 -07:00
2023-12-18 16:28:31 -08:00
2023-12-18 16:28:31 -08:00
2023-01-26 16:07:58 -08:00
2024-05-22 12:31:18 -07:00
2022-03-01 10:03:31 -08:00