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 ()

Вендекапец все ближе! Ура товарищи!

vurdalak ★★★★★ ()

Внезапно... Вроде же говорили, что d3d будет проприетарным.

Gorthauer ★★★★★ ()

а какие игры щас на dx11 ?

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

вендекапец?

Не молотите ерунду. Это поддержка Винды в явном виде. Если случится виндекапец, wine и его костыли не понадобятся.

Vudod ★★★★★ ()

Очередные костыли для ущербного? Не пора ли в таком случае взять и помереть?

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

> Не молотите ерунду. Это поддержка Винды в явном виде. Если случится виндекапец, wine и его костыли не понадобятся.

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

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

>виндекапец, wine и его костыли не понадобятся.

нужный софт и игры сам будешь переписывать?

devl547 ★★★★★ ()

Новость интересная. Однако удивляет факт того, что никто еще не догадался просто создать API-надстройку над OpenGL, которая бы предоставляла похожее на direct3d API. Не для запуска бинарей, а для многократного упрощения портирования существующих игр... Ведь это проще чем добиваться 100%-й совместимости год за годом...

I-Love-Microsoft ★★★★★ ()

вендекапец на моём лоре! =) ура!!!!111одинодин.

BattleCoder ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

дык попробуйте создать свой проект - авось кто идею и подхватит и поможет.

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

Вроде не будет Direct3d 9, но будет Direct 3D 11 Feature Level 9 (который для тех несуществующих разработчиков игр, которые поддерживают такие старые видеокарты, но не поддерживают XP).

anonymfus ★★★★ ()

Наверняка жуткое нарушение копирастических прав MSFT

One ★★★ ()

Это хорошо. Наличие API Direct3D должно упростить портирование игр и может разработчики активней начнут выпускать их под обе оси сразу.

Genuine ★★★ ()
Ответ на: комментарий от I-Love-Microsoft

> Не для запуска бинарей, а для многократного упрощения портирования существующих игр...

кто будет их портировать?

anonymous ()

DX — это не только D3D, это еще и звук, и джойстики. И если звук можно заменить на альсу, то с джойстиками проблему никто даже не начал решать.

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

виндекапец, wine и его костыли не понадобятся.

нужный софт и игры сам будешь переписывать?

[сарказм] Нет, тебя найму. [/сарказм]

Vudod ★★★★★ ()

Не очень понял, зачем поддержку d3d реализовывать в Gallium, если wine реализует ее через свои библиотеки.

Alsvartr ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Уже сделали. WineLib называется.

anonymous ()

Интересный поворот событий.

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

Для окончательной победы линукс

осталось только сменить ядро на minwin и одним махом будут решены проблемы и с нужным софтом и с играми.

И да, это многократно упростит портирование, ввиду отсутствия в нём необходимости.

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

>Вендекапец все ближе! Ура товарищи!

может быть onenGL капец?

Lennier ★★★★ ()

Стоило ли так заморачиваться, когда можно просто поставить винду?

frost_ii ★★★★★ ()
Ответ на: Для окончательной победы линукс от Geed

> И да, это многократно упростит портирование, ввиду отсутствия в нём необходимости.

А такой необходимости по ходу и сча нет. Вместо портирования делаются костыли под вайн.

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

За тем что трансляция вызовов в OpenGL работает не быстро

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

То есть wine сможет просто напрямую дергать вызовы d3d из Галлиума?
А в случае закрытых дров?

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

А вайн - чем не надстройка?

Уж больно толстоватая слабопортабельная надстройка, равно как и winelib. А простая либа в стиле dx была бы разумнее чем вечно гнаться за паровозом и повторять в мелочах...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от Joe_Bishop

Ну да, ну да

А Visual Studio 2010 удобнее Eclipse. Ктож спорит?

Geed ()

То есть wine сможет просто напрямую дергать вызовы d3d из Галлиума?

А в случае закрытых дров?

Дык и читаем внимательно. Именно это и будет делать вайн, а для закрытых дров будет в opengl вызовы транслироваться

Gorthauer ★★★★★ ()
Ответ на: Ну да, ну да от Geed

Re: Ну да, ну да

>А Visual Studio 2010 удобнее Eclipse. Ктож спорит?

Короче, Винда удобнее Линупса, это все уже поняли

anonymous ()

а как там вообще галлиум драйвера например для ати r300? насколько они плохи/хороши и чем? кто-то юзает соответсвенный ппа?

ipeacocks ★★★★★ ()

Ждём новостей о том, как MS патентует DirectX

Aceler ★★★★★ ()

Трекер без драйвера пустышка. Полноценный драйвер неуступающий по производительности виндовому есть только у Nvidia. Галлиум им до лампочки, и так всё в шоколаде. Остальные дрова ещё пилить не один год. Так что Крузис на Убунте временно отменяется.

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

для r300 хорош, фичаст и уже быстрее r300c. емнип, в ppa:xorg-edgers уже с --enable-gallium собирают.

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

>Нужный софт это сталкер?

Как минимум банк-клиенты и другой специализированный софт.

devl547 ★★★★★ ()

Пишу на первой странице.

Я НИКОГДА не поверю, что этот API будут использовать разработчики нативных приложений для линукса. Слишком костыльно, чужеродно и проприетарно. Я НИКОГДА не поверю, что разработчики под винду будут портировать свой софт под линус в расчёте на линуксовый Direct3D и что это привлечёт мультиплатформенные приложения - все, кто хотел писать мультиплатформенный софт, имели возможность сделать это и до появления сабжа, и гораздо менее костыльными способами.

Но я буду очень рад, если появится возможность вызывать d3d-ные функции через Wine напрямую из драйвера, без преобразования их в ogl. Вот только разработчики драйверов пока ещё не могут даже ogl толком осилить, а написать драйвер для d3d ничуть не проще, чем для ogl, и гораздо менее нужно для линукса в целом.

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

>Как минимум банк-клиенты и другой специализированный софт.

Банк-клиенты уже на DX11 пишут?

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