LINUX.ORG.RU
ФорумTalks

directx

 , ,


0

2

Есть несколько вопросов:
1. Использует ли directx особые регистры видеокарты или те же самые, что и OpenGL.
2. Если (1==true), используются ли эти регистры в linux например когда в wine запущено приложение, которое использует dx?
3. Если (2==false), возможно ли сделать так чтоб эти регистры использовались? Повысит ли это быстродействие графики?

★★★★

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

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

А как правильно будет?
Открываем любую видеокарту ( http://www.nvidia.ru/object/product_geforce_gt_330m_ru.html ).

Поддерживаемые функции:
Microsoft DirectX Compute, 10.1
OpenGL

Насколько я понял, если функция не поддерживается, то ОС будет эмулировать ее. (Например DX11)

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

если функция не поддерживается, то ОС будет эмулировать ее

по-моему нет

А как правильно будет?

правильно будет просто DirectX

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

если функция не поддерживается, то ОС будет эмулировать ее.

бывает, но редкость, какие-то базовые функции. обычно просто вылетит с ошибкой.

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

Как пример, если запустить игру в офтопике (которая требует dx10) на видеокарте, которая поддерживает dx10 и которая поддерживает, то на поддерживаемой графика обрабатывается быстрее, хотя вторая топовая, а другая простенькая.

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

Directx это библиотека.

Даже целый набор почти не связанных библиотек.

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

обычно, когда говорят о поддержке дх более 8, это поддержка «шейдеров». Более высокие цифры дх — это поддержка в этих самых шейдерах доп функций, доступной памяти для самой программы и данных, предоставление специальных каких-то дополнительных переменных...
Если запустить игруху, которая требует дх10 на карте, которая дх 10 не поддерживает, то скорее всего игруха вылетит с ошибкой или сразу же предупредит тебя, что работать не будет и не запустится.

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

Просто устройство не получится создать, эмулироваться ничего не будет, если специально об этом не попросить.

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

эмулироваться ничего не будет, если специально об этом не попросить.

т.е. ты хочешь сказать, что если попросить, то оно всё заэмулирует?

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

запустить игру в офтопике (которая требует dx10) на видеокарте, которая поддерживает dx10

... в принципе нельзя. В dx9 были capabilites, начиная с dx10 их нет, все поддерживают всё. Если карта не поддерживает что-нибудь, значит на ней не будет работать dx10.

i-rinat ★★★★★
()
Ответ на: комментарий от note173

Да

тогда странно, что никто ещё не написал пускалку/патчер крузиса, чтоб он в эмулорованном режиме запускался под GeForce 2MX )))

Bad_ptr ★★★★★
()
Ответ на: комментарий от i-rinat

промахнулся с цитатой, речь шла про ту, которая _не_ поддерживает dx10. Хотя это вообще-то дико, когда железо поддерживает программную прослойку, а не наоборот.

i-rinat ★★★★★
()
Ответ на: комментарий от fragment

толку, если даже запустится?

just for fun, же. А также для бенчмарка процессора и для прокачки скиллов и ЧСВ... ))

Bad_ptr ★★★★★
()

«а скажите, Виндос и Линукс используют одни и те-же регистры процессора, или Виндовс поддерживает какие-то особые регистры и инструкции процессора?»

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

«а скажите, Виндос и Линукс используют одни и те-же регистры процессора, или Виндовс поддерживает какие-то особые регистры и инструкции процессора?»

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

ymuv ★★★★
() автор топика
Ответ на: комментарий от i-rinat

Хотя это вообще-то дико, когда железо поддерживает программную прослойку, а не наоборот.

Тут скорее правильно будет что «Железо поддерживает стандарт DX(xx)» И соответственно совместимо, а если несовместимо, то не поддерживает. И это правильно, а то развели помню лет 8 назад кучу capabilites и проверяй их сам и обрабатывай сам. Нах-нах такое.

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

аналогия неадекватная

тем более, что да, иногда венда или Линукс не поддерживают те или иные регистры проца, например, венда до недавнего времени не поддерживала AVX

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

Во времена d3d9 программная реализация конвейера давала на простых сценах около 5 фпс, при использованиее пиксельных шейдеров — меньше 1.

Видеокарта тут вообще не учавствует, все целиком на процессоре.

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

венда до недавнего времени не поддерживала AVX

А сейчас поддерживает? Но как, ведь не будут же венду/библиотеку компилить под каждый проц и складировать библиотеки: some_corei7.dll; some_core2.dll, some_p4.dll; ...
Или имеется ввиду что софт не поддерживал те регистры?

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

А сейчас поддерживает?

да, SP1 добавил поддержку AVX

Но как, ведь не будут же венду/библиотеку компилить под каждый проц и складировать библиотеки: some_corei7.dll; some_core2.dll, some_p4.dll

таких библиотек нужно всего две - для Интел и АМД

Или имеется ввиду что софт не поддерживал те регистры?

AVX требует поддержки на уровне ОС

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

Но ведь видеокарта тоже его должна как-то поддерживать.

Гы, почитай про то, как появились высокоуровневые интерфейсы вроде D3D (не путать с DirectX который является НЕ ТОЛЬКО графикой) и OpenGL.

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

Но как, ведь не будут же венду/библиотеку компилить под каждый проц и складировать библиотеки

Не надо ничего два раза конпелять.
Просто включается оба варианта кода, с оптимизацией и без.
Если процессор не поддерживает ту или иную оптимизацию, то он использует «общий» код.

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

Железо поддерживает стандарт DX(xx)

Ну, меня напрягает источник стандарта. Не сам по себе, а то, что источников — один.

И это правильно

не спорю с этим, это правильно.

i-rinat ★★★★★
()

1) В принципе да. По возможностям они не одинаковы (не бейте сильно если ошибаюсь).
2) Нет.

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

Получается если драйвер поддерживает эти регистры, можно написать расширение(патч?) для wine чтоб они были задействованы? По идее, увеличится скорость, ведь не придется эмулировать эти фу-ции через OpenGL.

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

или Виндовс поддерживает какие-то особые регистры

http://bellard.org/jslinux/tech.html

No segment limit and right checks when accessing memory (Linux does not rely on them for memory protection, so it is not an issue.

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

Ну, меня напрягает источник стандарта.

Кто первый встал - того и тапки.(Это я про долгую историю просирания всех полимеров opengl'ем)

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

Я про название топика, посмотри историю редактирования.

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

Интересно, есть ли на ЛОРе разработчики открытых драйверов? Или закрытых.

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

можно написать расширение(патч?) для wine чтоб они были задействованы?

Нет. Эти функции нужно как-то вызвать, а как ты предлагаешь это сделать?

ведь не придется эмулировать эти фу-ции через OpenGL

Это в любом случае придется делать. Хотя нет, в Gallium'е что-то делают по поводу Direct3D.

h31 ★★★★
()

2. Если (1==true), используются ли эти регистры в linux например когда в wine запущено приложение, которое использует dx?

В любом случае нет, так как WINE рендерит Direct 3D через OpenGL.

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

Bad_ptr> тогда странно, что никто ещё не написал пускалку/патчер крузиса, чтоб он в эмулорованном режиме запускался под GeForce 2MX )))

Ничего странного. Крюзис просто нафиг никому не нужен. А вот для Doom 3 писали.

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

OpenGL остался позади потому, что мелкософт намеренно тормозил его развитие, будучи в группе стандартизаторов. Но OpenGL не на последнем месте благодаря Кармаку.

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

Я бы сказал, он бы испустил дух если бы не Кармак и прочие организации которым он выгоден.

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

Хотя нет, в Gallium'е что-то делают по поводу Direct3D.

Ну я создавал подобный тред, по сути пилят:
http://cgit.freedesktop.org/mesa/mesa/log/?qt=grep&q=d3d1

Но пилят не очень активно и по большей части проблема в лицензионной чистоте кода поддержки d3d.

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

Но ведь видеокарта тоже его должна как-то поддерживать.

Она поддерживает исключительно шейдеры отдельно взятой версии, остальные тонкости, которых, как правило, мало, реализуются через драйвера.

Klogg
()

DirectX напрямую с видеокартой не работает.

Black_Shadow ★★★★★
()

Использует ли Direct3D особые регистры видеокарты или те же самые, что и OpenGL.
Пофиксил. Те же самые.
> используются ли эти регистры в linux например когда в wine запущено приложение, которое использует dx?
Если нет, то это недоработка либо WINE (неполная поддержка Direct3D нужной версии) либо драйвера (неполная поддержка OpenGL нужной версии).

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

wine часто не эмулирует функцию, а просто ставит заглушку, которая ничего не делает, в результате скорость выше, а картинка хуже

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