[LOR] Direct3D 10/11 state tracker для Gallium3d

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6001
ОС: gnu/linux

[LOR] Direct3D 10/11 state tracker для Gallium3d

Сообщение rssbot »

Сегодня в ветку mesa master Luca Barbieri добавил код (-0/+26335), реализующий начальную поддержку Direct3D 11 для Gallium3d. Поддержка Direct3D 10 и 10.1 также присутствует (сгенерирована автоматически на основе Direct3D 11). Данный код реализует лишь начальную поддержку, но тестовые приложения (tri, gears, texturing demos) уже работают. Код необходим для того, чтобы реализовать поддержку как можно большего количества API, а также чтобы запускать Windows Direct3D 10/11 приложения в Linux используя wine. dll для wine пока не добавлены, но это не должно составить затруднений. В первую очередь, поддерживаются открытые драйверы, использующие Gallium3d (intel, radeon r300g/r600g, nouveau), также возможно использование данного кода через OpenGL проприетарными драйверами nvidia и fglrx. Данная реализация содержит:
  • Заголовочные файлы для Direct3D 10, 10.1, 11 и DXGI 1.1 (частично основаны на заголовочных файлах Wine для D3D10 и DXGI 1.0)
  • Парсер для Direct3D 10/11 DXBC и TokenizedProgramFormat (TPF)
  • Транслятор шейдеров из TPF в TGSI
  • Реализацию основных интерфейсов Direct3D 11
  • Автоматически сгенерированную реализацию Direct3D 10 и 10.1
  • Реализацию DXGI, используя «родной» («native») для EGL state tracker framework
  • Демо-приложения, работающие либо на Windows, либо на данной реализации:
    • d3d11tri, клон tri
    • d3d11tex, (multi)texturing demo
    • d3d11gears, улучшенная версия glxgears
    • d3d11spikysphere, D3D11 tessellation demo (на данный момент только для Windows)
  • Загрузчик для Microsoft HLSL компилятора, необходимого для перекомпиляции шейдеров (скомпилированный шейдер-байткод также включен)
Изображение

оригинал на linux.org.ru
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5435
ОС: Gentoo

Re: [LOR] Direct3D 10/11 state tracker для Gallium3d

Сообщение /dev/random »

Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: [LOR] Direct3D 10/11 state tracker для Gallium3d

Сообщение frp »

А оно будет работать быстрее чем directX в wine?
Спасибо сказали:
Аватара пользователя
rssbot
Бот
Сообщения: 6001
ОС: gnu/linux

Re: [LOR] Direct3D 10/11 state tracker для Gallium3d

Сообщение rssbot »


В свободную библиотеку Mesa была добавлена новая реализация COM API Direct3D 10, 10.1 и 11. Несмотря на то, что это только первая версия, большинство необходимого кода уже на месте, также работают некоторые Direct3D демо программы (tri, шестерёнки и простейшее текстурирование). Главная цель данной работы - это доказать то, что Gallium является жизнеспособным методом по реализации множественных API, используя лишь только тонкую прослойку из кода, тогда как, например, для реализации OpenGL требуется огромное количество сложного кода. Вторая очень важная цель - это реализовать поддержку DirectX 10/11 игр в Linux. Wine в настоящее время поддерживает лишь очень небольшую часть вызовов Direct3D 10 и вообще не поддерживает Direct3D 10, т.о. разработчикам Wine не придётся доделывать очень сложную работу по преобразованию вызовов OpenGL в вызовы Direct3D. Стоит отметить, что Direct3D 9 и его более ранние версии - это совершенно отличный API, и для его реализации потребуется полностью отличная реализация. Третья цель - это предоставить альтернативу OpenGL для не Windows систем. Благодаря очень продуманному дизайну и реализации с нуля, интерфейсы Direct3D 10 и 11 гораздо легче в использовании и реализации, чем API OpenGL, что легко можно заметить по количеству кода, которое требуется для реализации этих двух 3D систем. Также интерфейсы Direct3D 10 и 11 работают быстрее и надёжнее, чем OpenGL, за счёт гораздо меньшего объёма API-вызовов и разделению всей нетривиальной работы по созданию объектов, которую приложение должно выполнить заблаговременно. Этот огромный патч для Mesa/Gallium включает в себя следующие вещи:
  • Независимо созданные заголовки для Direct3D 10, 10.1, 11 и DXGI 1.1, частично основанные на заголовках Wine для D3D10 и DXGI 1.0;
  • Обработчик Direct3D 10/11 DXBC и TokenizedProgramFormat (TPF);
  • Транслятор шейдеров из TokenizedProgramFormat в TGSI;
  • Реализация основных интерфейсов Direct3D 11;
  • Автоматически генерируемая реализация Direct3D 10 и 10.1;
  • Реализация DXGI, используя нативный фреймворк EGL st;
  • Несколько демо программ.



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


оригинал на opennet.ru
Спасибо сказали: