LINUX.ORG.RU

Valve опубликовала исходные коды транслятора из Direct3D в OpenGL

 , ,


1

3

Сегодня Valve Software опубликовала на github исходные коды компонента собственной разработки ToGL.

ToGL используется для трансляции из Direct3D и OpenGL. Поддерживается ограниченное подмножество Direct3D 9.0c, есть транслятор байткода HLSL в GLSL, а также базовая поддержка SM3.

Исходники напрямую скопированы из основного дерева Dota 2 и представляют актуальную версию, которая используется движком игры. Код опубликован на условиях, по сути, если не по тексту, соответствующих 2-clause BSD. Компания Valve предлагает всем заинтересованным использовать компонент в своих проектах и отправлять наработки в апстрим.

Предполагаю, что этот же компонент трансляции используется и в прочих играх Valve, построенных на базе Source Engine. Код сейчас никак не поддерживается и реализует только то, что было необходимо для работы Source.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

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

лениваю жирная задница

Дерзость твоя зашкаливает, как и ЧСВ
HL3 будет тогда, когда надо
Вот халфу вторую все ждали - и таки выпустили, ну и чего паришься? Сейчас с Linux-ом наиграется и давай пилить халфу по полной программе

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

теперь понятно почему Dota 2 тормозит!

ась? на моем мобильном i7 не тормозит с выключенными тенями и сглаживанием. у тебя на чем тормозит, на чайнике?

валв кстати бенчмаркали, opengl на линуксе через транслятор выдает в среднем на 20% больше фпс чем нативный directx на винде на том же железе.

val-amart ★★★★★
() автор топика
Ответ на: комментарий от actionless

разве в GPL-е можно изпользовать не-GPL код?

ребята, вы можете уже наконец-то прочитать хоть что-нибуть про лицензии, лучше всего гребанные две страницы собственно ее текста, и перестать задавать такие невероятные вопросы?

val-amart ★★★★★
() автор топика

не очень нужно. для винтажных игор важнее общая стабильность и безбажность, чего одной серебряной пулей не добиться. хотя, нативный преобразователь тоже неплохо, но к wine это вряд ли прикрутят.

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

Давай тогда сразу под линукс образца 2000 года все писать.

ты не поверишь.

впрочем, давайте попробуем.

расскажи-ка нам, что для тебя как разработчика под линукс, поменялось с линукса образца 2000-го года? в юзерспейсе?

все, что я могу вспомнить относится к звуковой подсистеме, которую в линуксе регулярно меняют, впрочем, всегда остается слой совместимости.

val-amart ★★★★★
() автор топика
Ответ на: комментарий от val-amart

что для тебя как разработчика под линукс, поменялось с линукса образца 2000-го года? в юзерспейсе?

Я еще не писака, но думаю все зависит от того, что писать.

roman77 ★★★★★
()
Ответ на: комментарий от val-amart

расскажи-ка нам, что для тебя как разработчика под линукс, поменялось с линукса образца 2000-го года? в юзерспейсе?

OpenGL 3.x

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

Работает быстрее потому что порт плохой

Гениально, можешь не продолжать.

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

Работает быстрее потому что порт плохой.

Ну-ну.

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

какое отношение это имеет к линуксу? и в частности к спору о портабельности по оси старвый-новый линукс vs. старый-новый виндоус? с таким же успехом можно говорить о любой новой технологии, появившейся относительно недавно.

кстати, а вы знаете чем вообще второй отличается от третьего?

val-amart ★★★★★
() автор топика
Ответ на: комментарий от roman77

ваше мнение будет что-либо значить когда вы хотя бы приблизительно будете знать о чем идет речь. а то на лоре какая-то невероятная масса любителей последних версий и новых велосипедов, по поводу и без повода. факт в том, что для абсолютного большинства софта посикса достаточно и разницы между современным линуксом и линуксом из 2000-ых для него просто нет. потвердить это легко — я регулярно пользуюсь софтом из девяностых на своем 3.13.5

val-amart ★★★★★
() автор топика
Ответ на: комментарий от val-amart

Но щвободкофоннаты страдают более. От отсутствия вменяемых драйверов для биткоинодробилок от AMD.

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

Почти без потерь. 1:1. Вальв заявляли еще на стадии портирования Source. Правда если глянуть сорцы, там на множестве вызвов тупо заглушки стоят))

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

А на критические уязвимости внимания не обращать, господин ретроград? Тот же вопрос к ZenitharChampion.

а голову включить, товарищь модник?

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

// я все никак не привыкну к тому что на лоре теперь большинство — «опытные пользователи».

val-amart ★★★★★
() автор топика
Ответ на: комментарий от val-amart

Так вон рядом господин предлагает писать под старые версии libc, у которых ABI отличается от новых, как я понял.

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

Но мы-то знаем как работают программисты.

Сразу писать на gl проще, чем пользоваться этим транслятором.

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

Да и транслятор врядли сильно поможет при портировании игр. Пилился он исключительно под Source Engine. Потому и открыли его, ибо коммерческой ценности он не представляет. Очередной огрызок от компании в толпу линуксоидов брошен.

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

настройки идентичны

А __GL_THREADED_OPTIMIZATIONS=1 пробовал? На винде оно вполне может автоматически включатся для всякой доты.

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

Вот бы в Wine апстримнули и я бы Гейбу задонатил

Кто ж мешает $username апстримнуть самому? Опенсорс таки.

Bagrov ★★★★★
()
Ответ на: комментарий от val-amart

невидиепроблемы

4.2

проприетарщики должны страдать

4.2, 4.3

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

Я не предлагал статичную линковку. Я предлагал старый GLIBC. Разные вещи.

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

>> расскажи-ка нам, что для тебя как разработчика под линукс, поменялось с линукса образца 2000-го года? в юзерспейсе?

> OpenGL 3.x

Винду с линуксом перепутал. Считаешь что чтобы использовать последний OpenGL нужен современный линукс. А это не так: линукс - открытое ПО, а не проприетарное, где нельзя запускать новый DirectX, чтобы все пошли покупать новую ОС.

ftp://download.nvidia.com/XFree86/Linux-x86_64/304.119/README/minimumrequirem...

Software Element 	Supported versions
Linux kernel 	        2.4.22 and newer
XFree86* 	        4.0.1 and newer
X.Org* 	                1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15
Kernel modutils 	2.1.121
glibc 	                2.0
ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 3)
Ответ на: комментарий от Deleted

> писать под старые версии libc

Писать я предлагаю нормально. Компилировать предлагаю с новыми библиотеками: либо RHEL 5, у которого много-много лет будут багфиксы и с которым бинарно совместимы все десктопные линуксы, либо с самыми новыми библиотеками. С новыми компиляторами: GCC 4.7 и 4.8. Но - со старым GLIBC. Я сам это недавно освоил, в CentOS 5 с glibc 2.4 прекрасно устанавливается GCC 4.7 из репозитория Devtoolkit. Таким образом я получаю бинарники, которые работают в вообще любом линуксе, и при этом не пишу на старом языке.

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от reprimand

> winxp 64bit: 55 fps
> linux mint 14: 35 fps
> настройки идентичны

Вот поэтому я играю в игры на движке Source под Wine. Проприетарный драйвер NVIDIA, ключ реестра UseGLSL = disabled, и всё шикарно. Нативную недоделку удалил.

ZenitharChampion ★★★★★
()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от anonymous

А __GL_THREADED_OPTIMIZATIONS=1 пробовал? На винде оно вполне может автоматически включатся для всякой доты.

Вот только народ на винде принудительно эту приблуду отключает, а то FPS сажает.

devl547 ★★★★★
()
Последнее исправление: devl547 (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion

странно, но в других играх на source (кроме tf2) разница в fps не такая значительная.
Заметил, что GPU Utilization не стремится к 100%, но загрузка ЦП почти всегда 99%. Не знаю с чем это связано.

Буду читать техдоки о GLSL и «А __GL_THREADED_OPTIMIZATIONS», вдруг найду причину происходящему.

Но что-то я подозреваю, что люди, ответственные за портирование, не подошли к делу достаточно серьезно. В первую очередь, я бы выпилил SDL и забыл о нем как о страшном сне. Ну а там уже половина issues-ов решились бы самостоятельно.

reprimand ★★★★★
()

Эталонный ...сами знаете что...

Массовое переименование d3d_xxx в аналоги опенгл,как великий индус завещал в условиях...о ужас О УЖАС

парсинг псевдокода на лету с такимже разбором условиями...

Теперь то можно не спрашивать-почему у вальва все такое кривое г* Так потому что они не умеют в программирование(что конкретно-(ЕСЛИ ДЕВЕЛОПЕРЫ ВАЛЬВА НЕ ЗНАЛИ) все те условия ЕСЛИ D3D_AAA ТО OGL_AAA делаются не условиям,а дискретной математикой на основе разбора групп и быстрого определения текущего члена группы БЕЗ УСЛОВИЯ СТРАВНЕНИЯ...также как весь их сетевой протокол(для игр) полнейший ужас и кошмар-там нет и намека на оптимизацию,они просто в открытую шлют XML под сертефикатом,из за чего трафик настолько раздувается...)

Вот он весь игродел сегодня-инвалиды индусские незнающие ничего пишут этот треш...

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

opengl на линуксе через транслятор выдает в среднем на 20% больше фпс чем нативный directx на винде на том же железе.

То с dx9. Если прогнать бенч unigine, то результаты будут не в пользу OpenGL.

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

Добавлю «почему некоторые игры работают хуже»,точнее что работает хуже-загрузка моделей,работа шейдеров.

Поэтому игры (типа дота2,или портал2(не везде,только во время эффектов,там в 90% зон статика)) сильно проседают,так как шейдеры обрабатываются на лету и транслируются в GL,это помимо двойного расхода памяти(а где хранить ресурсы и файлы которые транслировать-в оперативке)(+память на кривой транслированный код)...это все и так понимают

Теперь,учитывая то что все игры сегодня делаются так: Для ящика->кривой порт на ПС3/4->кривой порт на винду->кривой порт на линукс мда...(и то что за системными требованиями для ПК уже не гонятся,и оптимизируют только для ящика(так как он самый слабый),а для ПК-ну подумаешь вместо 512видеокарты(хотя для 99% сегодняшних игр,которые вышли на Ящике-хватилоб и 128мб видеокарты,и 1гб оперативки) надо 1024мб в минимальных требованиях,четырехядерник...

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

Они не берут русских(точнее не берут никого у кого нет гражданства США,в США одна национальность-американец)

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

при чем тут unigine? мы говорили про игры на движке сорс. одна и та же игра на линуксе с опенгл да через транслятор выдавала больше фпс.

val-amart ★★★★★
() автор топика
Ответ на: комментарий от val-amart

Я в целом о уровне «оптимизаций» апи в дровах. На данный момент dx вылизан куда лучше, чем opengl.

А то что в сорс играх opengl крутился быстрее древнего dx9... 2014 год на дворе.

roman77 ★★★★★
()
Ответ на: комментарий от val-amart

Если не знаешь как работает вайн...

В вайне спец костыли на много кривокода с винды и игр/программ.

Если посмотришь исходники вайна-там множество ЕСЛИ d3d_draw И (какойто параметр)=... ТО ...спецкод... ИНАЧЕ обычный (вместо d3d стоят и винапи вызовы,и перехваты даже QT... функций)

Тоесть вайн банально подогнали под «сценарий» определенного бинарника(и,иногда,при обновлении этого бинарника вайн не работает и нужны магические патчи(которые правят магию вайна под новые изменения бинарника))

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

То что DX9 на НОВЫХ ВИНДАХ и НОВЫХ ДРОВАХ работает МЕДЛЕННЕЕ чем на старом оборудовании-возьмите любой хлам 2002-3 годов(топовый на то время) установите винду(ДО СП3(или СП3 до 2008 года скачанный)) вместе с дравами старыми с диска,и ВНЕЗАПНО все DX9 будет летать быстрее чем на сегодняшних топовых компах. (конечно не все,и не все сегодняшние монстры вообще будут работать,но старые игры скомпиленные студией 2005-2003,будут работать лучше чем на современном железе)

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

я сравнил то, что было 10 лет назад и что щас

x4DA ★★★★★
()
Ответ на: комментарий от val-amart

кстати, а вы знаете чем вообще второй отличается от третьего?

да, знаю, а вы?

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