Разработчики проекта Raspberry Pi объявили о публикации компанией Broadcom исходных текстов драйвера для графической подсистемы VideoCore, используемой в одночиповых системах, производимых компанией Broadcom, и, в частности, в SoC BCM2835, на базе которого основаны платы Raspberry Pi. Отмечается, что компания Broadcom стала первым производителем, опубликовавшим полные исходные тексты драйвера для своих мультимедийных SoC, а плата Raspberry Pi стала первым продуктом для которого доступен полнофункциональный открытый графический стек, созданный не на основе обратного инжиниринга.

Код драйвера размещён в общедоступном репозитории и включает в себя как компоненты, работающие на уровне ядра Linux (модуль vcihq для передачи сообщений к VideoCore), так и набор библиотек для организация взаимодействия с GPU из пользовательских приложений и задействования всех поддерживаемых чипом средств аппаратной акселерации. В частности, в поставку входят библиотеки с реализацией интерфейсов к EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC и OpenVG. Код библиотек открыт под лицензией BSD, а часть, работающая на уровне ядра Linux распространяется под двойной лицензией GPL/BSD. Открыты только компоненты, работающие на CPU ARM, код загружаемой в GPU прошивки остаётся закрытым и требует заливки бинарного блоба в процессе загрузки системы.

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

Отмечается, что открытие кода драйвера позволит заинтересованным энтузиастам обеспечить поддержку Broadcom VideoCore в изначально не поддерживаемых операционных системах, таких как FreeBSD, NetBSD, Plan9, RISC OS и Haiku, создать прослойку для работы Wayland поверх EGL, улучшить интеграцию GLES/VG с X.Org, разработать драйверы для Mesa, подготовить выполняемые на уровне ядра части драйвера к включению в состав основного ядра Linux. Лицензия BSD выбрана для упрощения интеграции кода с компонентами графического стека Linux, большинство составных частей которого поставляется под лицензией MIT (например, X.Org, Wayland и Mesa).

Дополнение: Некоторые известные разработчики открытых видеодрайверов выступили с критикой степени открытости драйвера для видеоускорителя Broadcom VideoCore. Возможности по внесению улучшений и исправлений в логику работы оказались сильно ограничены из-за того, что основные функции выполняются на стороне проприетарной прошивки, а в доступном драйвере имеется лишь прослойка для вызова функций прошивки. В том числе внутри прошивки реализована поддержка OpenGL ES и независимые разработчики не могут никак повлиять на её работу.

Источник: http://www.opennet.ru/opennews/art.shtml?num=35161