Broadcom открыл драйвер, прошивку и полную документацию для видеоускорителя VideoCore IV

В день двухлетия проекта Raspberry Pi компания Broadcom сделала значительный подарок всему сообществу разработчиков свободного ПО, открыв полную документацию на видеоускоритель VideoCore IV и опубликовав под лицензией BSD полный код драйверов и компонентов прошивки. VideoCore IV стал первым мобильным GPU с полностью открытой документацией. Кроме Raspberry Pi видеоускоритель VideoCore IV используется во многих мультимедиа устройствах и смартфонах на базе платформы Android, в частности, в смартфонах Samsung Galaxy S II Plus, Galaxy Grand и Galaxy Mega. Инициатива Broadcom является значительным шагом вперёд на пути к развитию открытых графических драйверов для мобильных GPU, отсутствие которых мешает созданию полноценных полностью открытых прошивок для мобильных устройств. Открытый драйвер предназначен для использования с чипом BCM21553, который применяется в смартфонах, но по заявлению разработчиков, портирование для чипа BCM2835, используемого в Raspberry Pi, не составит труда. В итоге, для Raspberry Pi будет подготовлен полностью свободный драйвер, не зависящий от бинарного блоба. Для ускорения разработки такого драйвера организация Raspberry Pi Foundation учредила конкурс с призом в 10 тысяч долларов, который получит тот, кто первым продемонстрирует работу игры Quake III (с 20fps при разрешении 1920×1080) на Raspberry Pi с полностью открытым драйвером.

Графическая подсистема чипов Broadcom кардинально отличается от подсистем других производителей и представляет собой по сути самодостаточный векторный процессор (VPU), выходящий за рамки DSP, на котором работает некоторое подобие операционной системы. GPU может выполнять приложения независимо от остальной системы, самостоятельно компилировать шейдеры и обменивается сообщениями с системным процессором через совместно используемую область памяти.

Напомним, что первый вариант драйвера для VideoCore IV был открыт ещё 2012 году, но данный драйвер на деле оказался не таким открытым как хотелось бы, так как являлся лишь прослойкой для трансляции обращений к проприетарной бинарной прошивке, на стороне которой выполнялось большинство операций, специфичных для драйвера, в том числе на стороне прошивки был реализован OpenGL ES. Таким образом, драйвер был открыт лишь формально и разработчики открытых проектов не могли влиять на работу с видеоусрорителем, в том числе не могли самостоятельно исправить недоработки в реализации OpenGL ES.

Новый драйвер устраняет указанный недостаток и предоставляет в том числе и код для компонентов прошивки, выполняемой на стороне GPU. В комплекте поставляется полная документация по GPU, которая позволяет независимым разработчикам быстро разобраться с особенностями VideoCore IV и приступить к усовершенствованию открытого кода.

©  OpenNet