Новости про Linux и OpenGL

Mesa 3D версий 7.10 и 7.9.1 с поддержкой Sandy Bridge

Обновление открытых графических библиотек поддержки OpenGL.

Новая версия 7.10 реализации OpenGL Mesa3D, основной графической библиотеки для драйверов видеокарт с открытым исходным кодом в Linux и FreeBSD, содержит ряд нововведений и исправлений:

  • поддержка расширений: GL_ARB_explicit_attrib_location, GL_ARB_texture_rg, GL_EXT_separate_shader_objects, GL_NV_primitive_restart (доступность расширений зависит от драйвера и оборудования);
  • поддержка встроенной графики процессоров Intel Sandy Bridge в драйвере i965 DRI;
  • переработанный механизм исполнения пиксельных шейдеров для драйвера i965;
  • множество исправлений и улучшений в подсистемах Gallium и GLSL, драйверах R600c/g, i915, i965, NV50/nouveau;

Релиз 7.10 пока считается «сырым» и предназначен для разработчиков, для конечных пользователей выпущен 7.9.1, содержащий только исправления, без новой функциональности. Загрузить исходный код библиотек для самостоятельной сборки можно с FTP-сервера Freedesktop.org:

Mesa3D 7.9

Обновление графической библиотеки с открытым исходным кодом.

OpenGl-совместимая библиотека Mesa3D лежит в основе графической подсистемы операционных систем с открытым исходным кодом, таких как Linux, так что её обновление имеет большое значение для всех пользователей, не имеющих возможности или не желающих использовать закрытые драйверы и библиотеки OpenGL от производителей оборудования. Версия 7.9 Mesa3D ориентирована на разработчиков и вносит следующие изменения:

  • новый компилятор шейдеров GLSL от Intel;
  • экспериментальный драйвер Gallium для AMD R600/700;
  • поддержка видеокарт AMD Radeon HD 5000 (с архитектурой Evergreen);
  • добавлены расширения OpenGL GL_EXT_timer_query extension, GL_EXT_framebuffer_multisample, GL_ARB_texture_swizzle extension, GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_program_shadow, GL_ARB_window_pos, GL_EXT_gpu_program_parameters,     GL_ATI_texture_env_combine3, GL_MESA_pack_invert, GL_OES_EGL_image, GL_APPLE_object_purgeable, GL_ARB_depth_clamp, GL_NV_depth_clamp, GL_ARB_half_float_vertex, GL_EXT_draw_buffers2, GL_EXT_texture_swizzle, GL_ATI_texture_mirror_once, GL_NV_conditional_render (доступность расширений зависит от оборудования и драйвера);
  • подготовка к поддержке архитектуры CPU-GPU Intel Sandy Bridge в драйвере i965;
  • множество исправлений в функциях GLSL;
  • исправления в драйверах i965 и r300g;

К сожалению, максимальная поддерживаемая версия OpenGL по-прежнему ограничена OpenGL 2.1.

Загрузить исходный код библиотек можно с официального FTP, готовые сборки будут доступны в репозиториях дистрибутивов.

Бета-драйверы NVIDIA 260.19.04 для Linux

Первый взгляд на следующий «шаг» в разработке драйвера для Linux.

Новая бета-версия драйверов 260.19.04 содержит ряд важных нововведений, позволяющих взглянуть на будущий вид бинарного драйвера NVIDIA для Linux:

  • файлы заголовков для OpenGL, VDPAU, CUDA и OpenCL больше не будут включаться в пакет драйвера;
  • добавлена поддержка API nvcuvid, предназначенного для ускорения операций над видеоконтентом с помощью CUDA. nvcuvid представляет собой альтернативу VDPAU, ориентированную на приложения редактирования видео и видеокодеки;
  • добавлена поддержка OpenGL 4.1 для видеокарт на базе GPU архитектуры Fermi;
  • VDPAU теперь совместим с расширением Xinerama, а также в режиме наложения с конфигурациями SLI и расширением Composite;
  • исправлен ряд серьёзных ошибок в поддержке Xinerama драйвером, включая неработоспособность в системах с несколькими графическими процессорами разных поколений и отключение рендеринга OpenGL на части экранов;
  • переработана закладка для управления технологией энергосбережения PowerMizer в утилите nvidia-settings. Теперь закладка показывает действующее значение частоты GPU;
  • добавлена поддержка режима SLI Mosaic для Quadro FX 5800 и Quadro на базе архитектуры Fermi;
  • добавлена настройка режима сглаживания изображения для цифровых выходов видеокарт GeForce 8X00 и более новых, и эквивалентных карт Quadro.
  • добавлена поддержка следующих расширений OpenGL для протокола GLX: GL_EXT_texture_integer, GL_ARB_stencil_two_side, GL_EXT_transform_feedback2, GL_NV_transform_feedback2, GL_NV_conditional_render, GL_NV_point_sprite, GL_EXT_stencil_two_side, GL_EXT_point_parameters, GL_ARB_transpose_matrix, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample;
  • добавлена настройка цветового пространства выходного видеосигнала для HDMI;
  • для пассивного стерео теперь можно назначить индивидуальный дисплей для каждого глаза в режимах TwinView и SLI Mosaic.

Загрузить новый драйвер можно с FTP сайта NVIDIA по ссылкам ниже:

Mesa3D 7.8 и 7.7.1

Обновление графической библиотеки с открытым исходным кодом.

OpenGl-совместимая библиотека Mesa3D лежит в основе графической подсистемы операционных систем с открытым исходным кодом, так что её обновление имеет большое значение для всех пользователей, не имеющих или не желающих использовать закрытые драйверы и библиотеки OpenGL от производителей оборудования. Версия 7.8 Mesa3D предназначена для разработчиков и содержит следующие изменения

  • добавлены расширения OpenGL GL_NV_conditional_render, GL_EXT_draw_buffers2, GL_ARB_fragment_coord_conventions, GL_EXT_texture_array, GL_APPLE_object_purgeable (доступность расширений зависит от оборудования и драйвера);
  • обновлён интерфейс EGL для мобильных/веб-приложений;
  • в архитектуру Gallium3D включена поддержка для OpenGL ES версий 1.1 и 2.0;
  • отдельная документация Gallium3D;
  • многочисленные исправления в драйвере для AMD R300-500 с архитектурой Gallium3D;
  • удалена поддержка рендеринга с индексированной цветовой палитрой;
  • удалена поддержка GCC 3.3.0 и ранее для сборки библиотек;

Загрузить исходный код библиотек и примеров использования можно с официального FTP.

Linux logo

Одновременно вышла и версия 7.7.1, исправляющая ошибки, обнаруженные со времени прошлого релиза. Исходный код также доступен на официальном FTP, а вскоре будет включён в основные репозитории Linux.

Unigine Heaven 2.0

Обновлённый DirectX 11-бенчмарк, теперь с поддержкой Linux.

Бенчмарк Unigine Heaven служит демонстрацией возможностей движка Unigine и в прошлом году стал одним из первых приложений, поддержавших DirectX 11. В новой версии 2.0 были сделаны следующие изменения:

  • еще большее использование теселляции, новые режимы «moderate» и «extreme»;
  • ряд оптимизаций движка;
  • больше динамического освещения;
  • добавлены новые объекты и физические эффекты.

Unigine Heaven

Но главным новшеством второй версии стала поддержка Linux. Помимо Direct3D, движок Unigine может использовать и OpenGL, но из-за проблем с качеством драйверов ATI Catalyst для Linux соответствующая версия бенчмарка для данной ОС вышла только сейчас. К сожалению, сторонников открытого кода это не сильно обрадует. Для того, чтобы насладиться красотами, понадобится закрытый бинарный драйвер от AMD или NVIDIA, поскольку реализация OpenGL 3.x в библиотеке Mesa3D на данный момент отсутствует — следствие наличия в спецификации OpenGL третьего поколения защищённых патентами технологий. К этим технологиям члены ARB/Khronos получают доступ по кросс-патентным соглашениям, но независимым разработчикам Mesa надо либо получать отдельные лицензии, либо выносить работу с данными функциями во внешние модули, что уже сделано для форматов текстур, но представляется малореальным для некоторых обязательных методов рендеринга (render targets).

Вследствие изменений движка, сравнивать результаты предыдущих версий с результатами нынешней некорректно. Загрузить последнюю версию бенчмарка можно по ссылкам ниже:

Напомним, что движок Unigine ляжет в основу игры Primal Carnage, Linux-версия которой также ожидается.

Разрабатывается эффективный программный рендер для Linux

Программный рендеринг тоже бывает востребован.

В рамках проекта llvmpipe в составе графической архитектуры Gallium 3D разрабатывается программный растризатор с использованием многопоточности. Программный растризатор OpenGL всегда существовал в составе библиотеки Mesa3D, но его эффективность оставляла желать много лучшего, в то время как коммерческие решения вроде SwiftShader уже достаточно давно обеспечивали достаточно высокую эффективность эмуляции Direct3D, и даже Microsoft начала проект полноценного «запасного» программного рендеринга в архитектуре DirectX под названием WARP.

«Эмулятор» в составе llvmpipe уже в значительной части завершён для пиксельных шейдеров и начаты работы над реализацией вершинной части. По сообщениям разработчика, игра на основе движка Quake 3 OpenArena в системе с процессором Intel Xeon E5405 (четыре ядра, 2 ГГц) с программным рендерингом работает со скоростью 25 FPS, против 3,5 FPS с эмуляцией Mesa3D.

Программный рендеринг полезен в системах, где нет аппаратного ускорителя или доступ к нему сильно затруднён, а необходимо отображать не слишком сложную трёхмерную графику, например в виртуальных машинах и в серверах.

Анонсирован бенчмарк Unigine Heaven 2.0

Разработчик движка Unigine планирует следующую версию своего бенчмарка. 

Компания Unigine сообщила, что на грядущей выставке графических и игровых технологий Game Developers Conference 2010, которая пройдёт с 9 по 13 марта в Сан-Франциско, США, на своём стенде покажет последнее поколение движка Unigine и вторую версию бенчмарка Unigine Heaven.

Unigine Heaven

Движок Unigine стал одним из первых движков, поддерживающих DirectX 11. Осенью прошлого года к выходу Windows 7 и DirectX 11 решений от AMD Unigine выпустила бенчмарк Heaven, продемонстрировавший возможности новой версии API, включая теселляцию, и самого движка Unigine. Планировалась к выходу и Linux-версия бенчмарка, которая должна была продемонстрировать достижимость сравнимого качества графики с помощью OpenGL 3.2, но из-за «сырой» поддержки OpenGL 3.x в драйверах ATI Catalyst она была отменена. Возможно теперь, после недавнего радикального обновления драйверов Catalyst, вторая версия бенчмарка Unigine Heaven будет выпущена на всех платформах.

Бесплатный 3D движок Cafu Engine

Еще один бесплатный 3D движок для игр под GPL.

Cafu Engine logo

Ранее известный как Ca3DE, движок Cafu Engine переведён в разряд FreeWare и открыт исходный код. Cafu Engine, как и недавно также ставший бесплатным 3Impact, ориентирован на «хардкорных» C++ разработчиков, но содержит большое количество готовых инструментов. Графическая часть поддерживает работу с материалами, попиксельным освещением и шейдерными эффектами, для рендеринга используется OpenGL 2.0 с поддержкой фирменного языка шейдеров NVIDIA Cg. Движок предлагает встроенные функции создания многопользовательского режима (клиент-серверной архитектуры), импорт моделей из популярных форматов, создание растительности, кривые поверхности Безье, эффекты на системе частиц. Для игровой физики используется Bullet Physics.

Cafu Engine demo

Cafu Engine demo

Движок доступен для платформ Windows (~80 Мб) и Linux (~70 Мб) под лицензией GPLv3. Поддерживаются как 32-, так и 64-разрядные версии, версия для MacOS планируется в будущем. Средний рейтинг движка на сайте DevMaster.net составляет 4 балла — как у популярного OGRE.

Возможно, кто-то найдёт в нём то, чего не нашел в Unreal Engine 3.

Adobe испытывает затруднения с аппаратным ускорением Flash в Linux

Сотрудник компании в своем блоге поделился проблемами реализации аппаратного ускорения видеодекодирования Flash-плагина в Linux. 

Mike Melanson, ведущий инженер Adobe по поддержке технологии Flash в операционных системах Unix/Linux, опубликовал в своем блоге серию сообщений о проблемах, с которыми компания столкнулась при реализации аппаратного ускорения декодирования и воспроизведения видео в Linux.

Adobe logo

Первой проблемой является разнообразие и различный уровень реализации API работы с аппаратными ускорителями видеодекодирования в Linux, представленное на специальной иллюстрации:

Декодирование видео в Linux

Разработчикам приходится иметь дело по меньшей мере с тремя проприетарными API, каждый из которых поддерживает лишь оборудование одного вендора (AMD для XvBA, NVIDIA для VDPAU и Broadcom для CrystalHD), причем, например, для XvBA спецификации в открытом доступе отсутствуют. Заявленные же как «универсальные» API вроде VA на самом деле являются лишь программными прослойками ко всё тем же VDPAU и XvBA. Мало того, определенное распространение получило использование оборудования напрямую из программ или через API универсальных вычислений, такие как CUDA и OpenCL.

Второй проблемой является отсутствие у имеющихся API ускорения декодирования и соответствующих драйверов оборудования функций по возврату полностью декодированных кадров приложению. В реализациях NVIDIA и AMD декодированный поток сразу уходит в устройство отображения, что может быть приемлемо для «чистых» проигрывателей мультимедиа, но неприемлемо для Flash, которому нужно объединять видео и прочие элементы веб-страницы в единое изображение. Проблема наглядно показана на иллюстрациях:

Воспроизведение видео проигрывателем

Воспроизведение видео в случае Flash

При этом в среде Windows возможность возврата декодированного видеопотока приложению реализована.

На иллюстрациях видна и третья проблема ускорения видео Flash в Linux — необходимость конверсии цветового пространства YUV в RGB. В частности, именно поэтому невозможно использовать расширение Х-интерфейса Xv для вывода и масштабирования видео. Два года назад Adobe предпринимала попытку задействовать OpenGL для данных операций, но столкнулась с низким качеством реализации OpenGL во многих открытых драйверах видеокарт и невозможностью одновременного использования OpenGL для видео и набиравших популярность эффектов Compiz.

В результате, если на платформе Windows бета-версия Adobe Flash 10.1 с поддержкой аппаратного ускорения декодирования и воспроизведения видео в формате H.264 доступна уже несколько месяцев, Linux версия Flash-плагина по-прежнему использует лишь программное воспроизведение. Но Mike Melanson сообщает, что так или иначе работа над реализацией аппаратного ускорения Flash в Linux продолжается, и что Adobe рассчитывает на встречные движения разработчиков драйверов по реализации необходимых функций.

Mesa3D версий 7.7 и 7.6.1

Досрочный релиз новых версий библиотек реализации OpenGL с открытым исходным кодом.

Ранее было объявлено о выходе новых версий самой популярной реализации OpenGL для Unix-систем к католическому рождеству (25 декабря), но релиз состоялся уже сегодня. Mesa3D версии 7.7 предназначена для разработчиков и содержит ряд новшеств:

  • драйвер Gallium3D для эмулируемой видеокарты виртуальных машин VmWare;
  • поддержка OpenGL расширений GL_ARB_draw_elements_base_vertex, GL_ARB_depth_clamp, GL_NV_depth_clamp, and GL_ARB_provoking_vertex;
  • новая инфраструктура для работы с форматами буфера и текстур;
  • множественные исправления в драйвере i965;
  • улучшенный драйвер ATI R300g для Gallium3D.

Версия 7.6.1 содержит лишь исправления ошибок, обнаруженных в версии 7.6, и является рекомендованным стабильным релизом. Загрузить исходный код библиотек можно с официального FTP сервера.

Предварительная версия Mesa3D 7.7

Следующая версия самой популярной реализации OpenGL для Unix-систем должна выйти к католическому рождеству, но уже сейчас появился первый предварительный выпуск библиотек.

В Mesa3D версии 7.7 ожидается улучшение поддержки графических процессоров AMD Radeon семейств 600/700, переработанный драйвер ATI R300, основанный на Gallium3D и поддержка ряда новых расширений OpenGL для интегрированной графики Intel. Проверить часть новых возможностей можно уже сейчас, загрузив исходный код предварительного выпуска библиотек с сайта проекта. Финальная версия Mesa3D запланирована к выходу на 25 декабря этого года.

Первый бенчмарк с использованием DirectX 11

Разработчики создаваемого в России трёхмерного движка Unigine выпустили демонстрацию-бенчмарк «Heaven», использующую DirectX 11.

Демонстрация «Heaven» создана с помощью последней версии фирменного движка Unigine и поддерживает некоторые «фишки» нового API трёхмерной графики Microsoft Direct3D 11, в частности шейдеры 5.0, теселляцию и алгоритм физики с использованием DirectCompute.

Демонстрация также показывает использование Ambient Occlusion, «объемные» облака, поддерживает технологию многомониторности ATI Eyefinity, представленную в видеокартах AMD Radeon семейства 5000. Впрочем, наличие DX11-оборудования для просмотра демонстрации необязательно — движок Unigine способен показать неплохую картинку и средствами Direct3D 9 и OpenGL.

По сообщению сайта Phoronix.com, разработчики через месяц или два также собираются выпустить версию бенчмарка для операционной системы Linux, в которой планируют показать большинство функций DirectX 11, реализуемых с помощью последних версий OpenGL, в частности, теселляцию.

Загрузить бенчмарк можно с официального сайта (~128 Мб), поддерживаются Windows XP, Vista и 7, требуется .NET Framework 2.0 и видеокарта не ниже NVIDIA GeForce 7x00 или AMD Radeon HD 2x00.

Mesa3D версий 7.5.2 и 7.6

Вышли сразу две новых версии OpenGL-совместимых графических библиотек с открытым исходным кодом Mesa3D.

Версия 7.5.2 является bug-fix релизом и рекомендована большинству пользователей. В ней сделаны следующие изменения:

  • драйверы интегрированной графики Intel определяют чипсет B43;
  • исправлен ряд ошибок в драйверах i965/i945;
  • исправлена ошибка в парсере шейдеров GLSL, приводившая к проблемам в Wine;
  • исправлен ряд ошибок в реализации Gallium3D.
Версия 7.6 является экспериментальной и предназначена для разработчиков и энтузиастов. В ней сделаны следующие изменения:

  • реализована поддержка OpenVG (стандарта ускорения векторной графики, используется для сглаживания шрифтов и Adobe Flash);
  • добавлена поддержка некоторых расширений OpenGL 3.0 (поддерживаются не всеми драйверами): GL_ARB_vertex_array_object,  GL_APPLE_vertex_array_object extensions, GL_ARB_copy_buffer extension, GL_ARB_map_buffer_range, GL_ARB_seamless_cube_map extension, GL_ARB_vertex_array_bgra, GL_ARB_sync, GL_EXT_provoking_vertex extension;
  • драйвер radeon/r200/r300 переписан с использованием диспетчера буферов, добавлена поддержка OpenCL 1.5, расширений GL_EXT_framebuffer_object support, GL_ARB_occlusion_query,  GL_EXT_vertex_array_bgra, GL_EXT_texture_sRGB;
  • драйвер i915/945 теперь поддерживает расширения GL_ARB_point_sprite, GL_EXT_stencil_two_side и GL_ATI_separate_stencil extensions;
  • исправлен ряд ошибок в драйвере i965 DRI;
  • добавлена альфа-версия основанного на LLVM драйвера для Gallium3D.

Пользователи операционных систем Linux могут обновиться из репозиториев, пользователям остальных платформ следует собрать библиотеки самостоятельно из исходного кода или ждать готовых сборок от сообщества.

Mesa3D версии 7.5.1

Очередное обновление библиотек OpenGL-совместимого API Mesa3D с открытым исходным кодом. 

Новая версия 7.5.1 является bug-fix релизом и содержит следующие изменения:

  • Исправлена низкая производительность игр на движке Doom3 с драйверами Intel
  • Устранены ошибки рендеринга с драйверами Intel
  • Исправлена утечка памяти в GLX
  • Исправлен ряд ошибок с Gallium
  • Исправлена функция glXCreateGLXPixmap()
  • Устранены проблемы компиляции gen_matypes.c
  • Добавлены опции конфигурации --with-max-width=W, --with-max-height=H для задания максимального размера буфера кадров и области изображения

Пользователи операционных систем семейства Linux могут обновиться из репозиториев, пользователям прочих систем следует собрать библиотеки самостоятельно из исходного кода.