Новости про DirectX и 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.

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

ATI Stream SDK 2.01 с улучшенной поддержкой OpenCL

AMD дорабатывает средства GPGPU для разработчиков приложений.

Новая версия 2.01 пакета Stream для неграфического использования GPU AMD содержит изменения «средней тяжести»:

  • ATI Stream Profiler теперь полностью интегрируется в среду Microsoft Visual Studio 2008;
  • поддержка Red Hat® Enterprise Linux версии 5.3;
  • поддержка отладки ядра приложений OpenCL с помощью отладчика GNU в среде Linux;
  • предварительная реализация взаимодействия OpenCL и Direct3D 9/10;
  • четыре новых примера;
  • поддержка отдельно загружаемого средства анализа производительности Stream KernelAnalyzer;
  • исправление множества проблем с компиляцией и исполнением OpenCL;
  • поддержка разработки на Radeon HD 5670 и 5570.

Загрузить пакет ATI Stream можно с сайта AMD для 32- и 64-разрядных версий OpenSUSE, RHEL, Ubuntu, Windows XP, Vista и 7.

Наиболее интересным представляется запрятанная в нёдрах Release Notes улучшенная поддержка ATI CAL, низкоуровневого API для AMD GPU, являющегося эквивалентом CUDA driver-level API у NVIDIA. Теперь можно использовать CAL и OpenCL в одном приложении, и даже запускать OpenCL-программы при неустановленном драйвере Catalyst, что будет востребованным в серверной среде. ATI CAL также позволяет достичь большей производительности с графическими процессорами AMD предыдущих поколений, чья совместимость с OpenCL ограничена.

А вот что не исчезло, так это проблемы с работой OpenCL в системах с установленными реализациями как от AMD, так и от NVIDIA. Разработчикам по-прежнему, как в цирке, приходится перебрасывать из руки в руку библиотеки OpenCL.dll от конкурентов для отладки универсального приложения.

Поддержка Direct3D в Linux будет выпущена с закрытым исходным кодом

Zack Rusin был вынужден огорошить ожидающих слишком многого от VmWare.

Новость о планах Thungsten Graphics по созданию аппаратного ускорения Direct3D в архитектуре открытых графических драйверов Gallium3D в Linux создала много шума, и её источник решил остудить пыл как «пингвинопоклонников», так и «пингвинопротивников». В новом сообщении в своём блоге Zack Rusin разъяснил позицию своей компании. Реализация аппаратного ускорения Direct3D 9 уже некоторое время имеется в коммерческих продуктах виртуализации от VmVare, и разработка интерфейсов ускорения Direct3D 10 планируется лишь как её развитие. Исходный код данных наработок VmWare открывать не планирует.

Zack Rusin справедливо отметил, что одного ускорения функций Direct3D мало для полноценного портирования Windows-игр в Linux — есть еще уйма отличий между платформами. Выигрыш получат прежде всего виртуальные машины, возможно проект WINE, но последнему пока неплохо удаётся реализация конверсии вызовов Direct3D в OpenGL, и вполне возможно, что этого пути им и стоит придерживаться.

Аппаратное ускорение Direct3D в Linux

Ведутся работы по добавлению интерфейсов аппаратного ускорения функций Direct3D в архитектуру открытых графических драйверов Gallium3D.

Сотрудник Tungsten Graphics (в настоящее время подразделение VmWare) Zack Rusin в своем блоге рассказал о планах по реализации функций API Direct3D версий 10 и 11 в Gallium3D. Zack Rusin верит, что подобная работа поможет разработке открытой графической архитектуры в целом. Особый интерес вызывает реализация ускорения геометрических шейдеров и функции «dual-source blending», позволяющей значительно ускорить качественный рендеринг текста. Также будут продолжены работы по реализации OpenCL через Gallium3D.

Впрочем, это будет далеко не первой попыткой реализации Direct3D в Linux. Проект поддержки Windows-приложений в Linux WINE на протяжении нескольких последних релизов улучшал компонент Direct3DOpenGL враппера и даже послужил основой для неофициальных релизов Direct3D 10 для Windows XP. Но реализация ускорения Direct3D на уровне Gallium3D, хотя и не является напрямую средством запуска 3D Windows-программ в Linux/Unix, позволит значительно повысить быстродействие для графики виртуальных машин c Windows и того же WINE. Также, несколько ранее и независимо от объявления Zack Rusin, появился концепт Direct3D 9-ускорения для Gallium3D.

Первый бенчмарк с использованием 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, в частности, теселляцию.

Unigine "Heaven" DX11 benchmark (2009)

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