LINUX.ORG.RU

Direct3D 10/11 state tracker для Gallium3d

 , , , , ,


0

1

Сегодня в ветку 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 компилятора, необходимого для перекомпиляции шейдеров (скомпилированный шейдер-байткод также включен)

>>> Commit

★★★★★

Проверено: JB ()
Последнее исправление: madgnu (всего исправлений: 6)

Ответ на: комментарий от Reset

То что дешевле - факт неоспоримый. Хотя я лично играю мало и четыре-пять игрушек в год для PS3 могу себе позволить не напрягаясь.

Про графику вопрос спорный и находится скорее в области личных предпочтений. Но, в любом случае, играем то ведь не в графику ;)

A-234 ★★★★★
()
Ответ на: комментарий от ipeacocks

особых багов не заметил. местами на уровне, местами в разы быстрее.

madgnu ★★★★★
() автор топика

Меня вот этот момент больше всего удивил:

Thanks to a very clean and well-though design done from scratch,
the Direct3D 10/11 APIs are vastly better than OpenGL and can be
supported with orders of magnitude less code and development time,
as you can see by comparing the lines of code of this commit and
those in the existing Mesa OpenGL implementation.

eugene2k
()
Ответ на: комментарий от eugene2k

В принципе, OpenGL за убожество тоько ленивый не пнул (хотя вряд ли кто-то мог предположить, что д3д в линуксе будет проще).

Захотелось странного - посмотреть на линукс, в котором графический интерфейс отрисовывался бы на d3d. Думаю, при помощи исправленного Qt такое можно организовать.

prischeyadro ★★★☆☆
()
Ответ на: комментарий от prischeyadro

>OpenGL за убожество тоько ленивый не пнул

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

devl547 ★★★★★
()
Ответ на: комментарий от anonymous

И в ненормальных банках тоже.

Банк москвы, это смердящее рукожопие. Банк-клиент работает под линукс.

http://www.mbank.ru

AVL2 ★★★★★
()
Ответ на: комментарий от guitarist

Мне r520( X1800XT) в линуксе я бы сказал , что много .. Зачем под линуксом r700 ? Если только встроенный в мамке . Хотя согласен , что в ногу со временем дрова идти должны

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

> Зачем под линуксом r700 ?

Амнезия недавно вышла.

в wine играть.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.