Collabora работает над открытым драйвером Arm Mali для графического процессора Panfrost более года. Этот проект направлен на поддержку семейств чипов Midgard и Bifrost. Но до сих пор компания сосредоточилась в основном на графических процессорах Midgard (Mali-T6xx / T7xx) с, например, экспериментальной поддержкой OpenGL ES 3.0, анонсированной в феврале прошлого года.
Инженеры Collabora, такие как Алисса Розенцвейг, уже начали работать над поддержкой Bifrost, и с тех пор был достигнут определенный прогресс – им удалось сделать Panfrost для рендеринга первой 3D-графики с базовой поддержкой текстур, используя платформу с графическим процессором Arm Mali-G31.
Алисса отмечает, что хотя Midgard и Bifrost имеют схожий поток команд, требующий нескольких изменений, набор команд Bifrost совершенно другой и требует создания нового компилятора с нуля. Это приводит к изменениям в Промежуточном представлении (IR), поддержке 16-битных данных, другом механизме выделения регистров из-за адаптации к нерегулярным векторным архитектурам, а последний также значительно усложнил упаковку (генерацию окончательного кода), чем в реализации Midgard Panfrost. Если вы хотите узнать больше о тонкостях реализации Panfrost Bifrost, прочитайте анонс.
Это существенный прогресс, но это не значит, что у нас уже есть работающий драйвер, и Collabora теперь будет работать над добавлением поддержки более сложных инструкций и планирования для поддержки более сложных шейдеров. Обратите внимание, что графические процессоры невероятно сложны, и разработка займет время. В апреле 2019 года Роберт Фосс, разработчик графики из Collabora, подсчитал, что стабильному и полностью совместимому драйверу графического процессора Panfrost может потребоваться еще два-четыре года, чтобы обеспечить стабильность и возможности Freedreno.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.