Инициатива по реализации в MESA выноса тяжелых операций в отдельные нити

Независимый разработчик Marek Olšák продолжил оптимизировать узкие места в открытом графическом стеке. На этот раз он решил вынести ряд тяжелых операций в нити (thread offloading). В частности, ведется работа над реализацией асинхронных SwapBuffer-ов, работа с которыми ведется в отдельной нити.

Подобная инициатива позволит заметно увеличить скорость работы программ, которые ограничены производительностью CPU, например таких как игра OpenArena. Общая идея состоит в том чтобы с буферами работала отдельная нить драйвера, а библиотека libGL только инициировала эту операцию и получала уведомление о ее завершении через callback-функцию. К этому моменту можно обработать часть нового кадра не дожидаясь завершения (потенциально длительной) операции с буфером.

©  OpenNet