Intel разрабатывает новый драйвер для своих графических адаптеров
На проходящей в эти дни конференции разработчиков Xorg разработчик Кеннет Граунке представил новый графический драйвер Iris для одноименных графических карт Intel. Архитектура нового драйвер явно отличается от ранее использованной в драйвере i965. В презентации описаны недостатки старого драйвера и краткий план по улучшению нового драйвера Iris.
Из недостатков i965 отмечается применение классической архитектуры на основе обработки потока состояний (State Streaming), отслеживание которых требует слишком интенсивного выполнения кода драйвера. Один из подходов для оптимизации сводится к возможности сохранения состояний и их повторного использования, но данный метод проблематично реализовать в i965 из-за особенностей архитектуры драйвера. В драйвере i965 также требуется фундаментальная переработка кода для загрузки состояний и проведение модернизации средств управления памятью.
В качестве эксперимента один из разработчиков Intel попытался создать с нуля новый драйвер для современных GPU, используя предлагаемую в Mesa архитектуру Gallium3D с интерфейсами для разработки драйверов, выносящим задачи управления памятью на сторону DRI-драйвера в ядре Linux и предоставляя готовый трекер состояний с поддержкой кэша повторного использования выводимых объектов. Новый драйвер поддерживает только GPU Iris и процессоры на базе микроархитектуры Gen9+ (Skylake).
Разработка драйвера пока не завершена и он не готов для применения конечными пользователями, но уже пригоден для экспериментов (проходит 87% OpenGL тестов piglit). Из ещё не реализованных возможностей отмечаются сжатие цветов, вычислительные шейдеры, синхронизация и запрос объектов, кэширование шейдеров на диске.
В тестах производительности драйвер Iris от 3 до 15 раз обгоняет i965, в зависимости от режима тестования. В среднем Iris демонстрирует отрисовку в 5.45 раз большего числа объектов в секунду, чем драйвер i965. При выполнении реальных программ прирост не столь внушителен (в одной из демонстраций прирост около 19%, а в некоторых демонстрациях примерно равен i965). При этом драйвер обеспечивает значительное снижение нагрузки на CPU, благодаря выполнению всех основных операций на стороне GPU.
© OpenNet