Представлен открытый драйвер для графической подсистемы чипов Qualcomm

15 апреля 2012 года

Роб Кларк (Rob Clark), разработчик из компании Texas Instruments, развивающий открытый набор драйверов для чипов OMAP и вовлечённый в разработку проекта Linaro, представил новый открытый графический драйвер для выпускаемых конкурирующей компанией Qualcomm чипов Snapdragon, поставляемых с интегрированными графическими процессорами Adreno. При разработке использована эталонная платформа DragonBoard на базе Snapdragon S3 APQ8060 и обратный инжиниринг бинарных драйверов Qualcomm.

Новый открытый драйвер получил название Freedreno и доступен для свободной загрузки под лицензией MIT. В настоящее время драйвер поддерживает 2D-акселерацию (реализована архитектура EXA), базовые композитные операции и может использоваться совместно с X-сервером (подготовлен DDX-драйвер xf86-video-freedreno). В будущем планируется обеспечить поддержку 3D-акселерации и DRI2. Таким образом, ситуация с открытыми драйверами для мобильных ARM-платформ начинает меняться к лучшему: кроме Freedreno в настоящее время развивается проект Lima, созданный для разработки полноценных открытых драйверов для графического сопроцессора Mali (Mali-200 и Mali-400), также компаниями Texas Instruments и Samsung ведётся разработка базовых открытых графических драйверов для чипов OMAP и Exynos, в которых, к сожалению, пока не планируется поддержка 3D.

По словам Роба Кларка, работа выполнена в свободное от работы время и позиционируется как персональный проект, никак не связанный с компанией Texas Instruments и проектом Linaro. Роб рад был бы принять участие в развитии открытых драйверов для GPU Mali или IMGtech PowerVR, но пока не может этого сделать в силу своих обязательств перед Linaro и TI, так как такой шаг может рассматриваться как нарушение соглашения о неразглашении. С оборудованием Qualcomm Роб на своей прямой работе не сталкивается, поэтому можно не опасаться возможного конфликта интересов.

Для определения логики работы с чипами Qualcomm была создана небольшая библиотека libwrap, загружающаяся через LD_PRELOAD и позволяющая перехватывать все вызовы между модулем ядра и проприетарным драйвером, выполняемым на уровне пользователя, что позволило определить поток команд к GPU, информацию по адресам, координатам и т.п. Для разбора связанной с GPU активности и выявления типовых повторяющихся действий была написана утилита redump, при помощи которой на основе лога генерировался наглядный сводный отчёт, упрощающий анализ логики работы с GPU.

Так как часть оригинального драйвера Qualcomm, работающего на уровне ядра Linux, доступна в исходных текстах, нетрудно было выявить API для взаимодействия с закрытым бинарным компонентом. Работающий на уровне ядра драйвер Qualcomm распространяется под лицензией GPL и использует для управления памятью GPU технологию GEM (Graphics Execution Manager), но не предоставляет функций переключения видеорежимов, что позволяет лишь частично использовать его при дальнейшей реализации поддержки DRI2 и 3D.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Представлен открытый драйвер для графической подсистемы чипов Qualcomm», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.