LINUX.ORG.RU

Вот меня всегда интересовало, что такое "аппаратная поддержка DirectX"? :) Всю жизнь считал, что точить надо софт под железки, так как это проще, а никак не наоборот. Для этого была придумана такая штука как драйверы.

А то, что ты спрашиваешь, так это совсем не "поддержка DirectX", а драйверы видеокарт. nVidia вот делает нативные драйверы, правда, с кучей прочего барахла, но к DirectX ни они, ни карточка не имеют абсолютно никакого отношения. К сожалению, свободные разработчики лишены возможности делать нормальные драйверы для большинства популярных видеокарт, т.к. компании-производители не открывают спецификации, а многие из них считают, что писать драйверы для Linux - излишне. Как говорится, "сам не ам и другим не дам".

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

> Вот меня всегда интересовало, что такое "аппаратная поддержка DirectX"? :)
Ну например Радеон 9600 поддерживает DX9 а радеон 9200 поддерживает только DX8.1, перекладывая обработку DX9 на плечи процессора.
Вот что-то вроде этого и есть "аппаратная поддержка DirectX" со стороны видеокарты.

>Всю жизнь считал, что точить надо софт под железки, так как это проще, а никак не наоборот.
А вот ДиректХ как наооборот делается ---> железки под софт.

>А то, что ты спрашиваешь, так это совсем не "поддержка DirectX", а драйверы видеокарт.
Наверно это поддержка DirectX со стороны драйверов видеокарты. В общем напишут-ли когда-нибудь под линукс драйвера и прочие куски кода которые задействуют простаивающие блоки DirectX в видеокартах?

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

> Радеон 9600 поддерживает DX9 а радеон 9200 поддерживает только DX8.1

Херня это всё. А мат. сопроцессор - это что? Аппаратная поддержка эмуляции вычислений с плавающей точкой? Было ведь время, когда у PC не было мат. сопроцессора.

Драйвер занимается реализацией некоторого программного интерфейса средствами имеющейся аппаратуры. В виндах программный интерфейс - DirectX, в Linux - OpenGL.

Чем мощнее аппаратура, тем больше работы можно на неё переложить с ЦП. Но проблема, как я уже говорил, в том, что производители сами драйверов не пишут и спецификаций не дают, так что, сторонние разработчики тоже не могут задействовать все возможности аппаратуры. Это правде не ко всем в полном объёме относится.

> А вот ДиректХ как наооборот делается ---> железки под софт.

В общем, это называется "через жопу".

> Наверно это поддержка DirectX со стороны драйверов видеокарты.

В Linux нет DirectX и в обозримом будущем не предвидится.

> простаивающие блоки DirectX в видеокартах?

DirectX - это чисто софтверная приблуда. В видеокартах _нет_ блоков DirectX.

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

Получается, что MS заявляет новые "фичи" в следующей версии DX, а производители аппаратуры реализуют свои новые видеокарты так, чтобы под них можно было написать драйвер реализующий интерфейс новой версии DX c соотв. "фичами". Я правильно понял?

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

>Херня это всё.

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

кстати поддержки некоторых современных аппаратных возможностей карточек нету в стандарте OGL 1.x (2.x пока фактически не существует), а реализуется только фирменными расширениями дров, что вынуждает произодителей игр пишуших на OGL делать отдельную заточку под каждую карточку. это естественно не удобно и никому нафиг не надо.

кстати DX это не только графика, но и звук (в том числе поддержка таких аппартаных возможностей карточк как A3D, EAX и тд, аналог - openal как я понял всего лишь софтовая эмуляция), поддержка устройств ввода вывода и тд

вообщем чтоб Linux'у стать полноценной игровой платформой надо ещё лет 50 говном плыть, а сейчас про игры можете забыть.

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

ИМХО, ты всё напутал. Direct3D - это лишь API, _метод_ доступа к ресурсам оборудования. Причём отстойный, из-за чего многие производители софта клали на него с пробором и юзают OpenGL или Glide. Если же некоторая карточка обладает какой-то фичей, к этой фиче нужно получать доступ исходя из архитектуры системы, модели драйверов итд. Так что D3D на линуксе нах не уссался.

>> Ну например Радеон 9600 поддерживает DX9 а радеон 9200 поддерживает только DX8.1

Это означает лишь, что в dx8.1 нету адекватного способа активировать некоторые фичи радеоноа 9600, которые в 9200м просто отсутствуют, т.е. наоборот, это dx9 поддерживает радеон 9600

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

Glide умер со смертью 3dfx, это был API одной фирмы.

сейчас он живёт только в виде врапперов glide->d3d, glide->opengl для запуска древних игр

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

у D3D IMHO один недостаток - он работает только на одной платформе

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

> вообщем чтоб Linux'у стать полноценной игровой платформой надо ещё лет 50 говном плыть, а сейчас про игры можете забыть.

Ну это слишком пессиместично, думаю лет 5 надо (10 максимум, в крайнем случае) :)

> ИМХО, ты всё напутал. Direct3D - это лишь API, _метод_ доступа к ресурсам оборудования.

Так вот в этом и вопрос: эти ресурсы будут вечно в Лине простаивать, или до них когда-нибудь доберутся?

> Это означает лишь, что в dx8.1 нету адекватного способа активировать некоторые фичи радеоноа 9600, которые в 9200м просто отсутствуют, т.е. наоборот, это dx9 поддерживает радеон 9600

Вот тут как раз всё наоборот: это 9200 не может реализовать возможности DX9. Вы в курсе что GF2 поддерживает пиксельные шейдеры? Но вот их поддержку туда добавили до утверждения официальной спецификации DX. А эту спецификацию MS взяла и изменила, так-что вторые GF'ы оказались в пролёте, и собственно никто и не соизволил искать адекватный доступ к ним. Так что это железо железо поддерживает DX а не наоборот.

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

>> Ну это слишком пессиместично, думаю лет 5 надо (10 максимум, в крайнем случае) :)

Ну, если японцы возьмутся в игровые приставки Linux ставить, как собирались, намного раньше получится. принципиальных сложностей нету.

>> будут вечно в Лине простаивать

Почему решил, что простаивают? ИМХО warcraft3 с ключём -opengl работает нисколько не медленнее и выглядит не хуже чем c d3d. Сам на линуксе запускал.

>> Вот тут как раз всё наоборот: это 9200 не может реализовать возможности DX9

Это философский вопрос. Коровы не летают потому что у них крыльев нету, или у коров нету крыльев потому что они к полётам не расположены? У моей видяхи нету поддержки 3д ускорения _вообще_, но под Linux 3д приложеия работают, хоть и меееееееедленно, а под виндовсей не работают вообще, "unsupported hardware" так сказать. Нормальный API не может диктовать, какими свойствами обладает нижележащий уровень.

>> никто и не соизволил искать адекватный доступ к ним

Кто же мешает ими пользоваться? При правильном положении вещей, правила доступа к конкретному оборудованию должны задаваться драйверами и не должны зависеть от более высокоуровневого API. Затея с dx это просто попытка навязать аппаратуре некоторые свойства, т.к. каскадная модель драйверов виндовся не в состоянии удовлетворять требования игрописателей по быстродействию. Случай с GF2 просто показывает недостатки принципа d3d.

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

>Ну, если японцы возьмутся в игровые приставки Linux ставить, как собирались, намного раньше получится. принципиальных сложностей нету.

а нахер? тут вообще история другая, на приставке железо фиксировано и игра затачивается конкретно под него, работающий процесс один - сама игра, то есть максимум что нужно это только лоадер, загружающий игры, а ОСь нахер

>Почему решил, что простаивают?

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

>Кто же мешает ими пользоваться?

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

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

>> на приставке железо фиксировано и игра затачивается конкретно под него,

Попросту невыгодно создавать шибко специальное железо. Попросту, возьмут писюковую плату, впаяют туда намертво видяху, проц и тд. Так что от писюков отличия минимальные, и наработки можно будет использовать на писюках. И, скорее всего, отлаживать их тоже будут на писюках, чтобы народу тестеров поболее собрать и подешевле. Вот, даже на мсофтном хбохе Линукс завёлся без особых заточек.

>> если у тебя вдруг работает какая-то отдельно взятая игра

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

>> никто не хочет делать отдельные заточки под каждую железяку, есть API и все пишут под него

В том-то и дело, что заточки под железяку требуются только для d3d и виндовся, в нормальной архитектуре _любая_железяка_ с _любым_софтом_ должна полностью согласобываться драйверами и низкоуровневыми либами. Я уже приводил пример, на Линуксе у меня работает OpenGL приложение без аппаратной поддержки 3д, хоть и очень медленно, а в виндовсе - нет, вообще никак.

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

> Попросту невыгодно создавать шибко специальное железо. Попросту, возьмут писюковую плату, впаяют туда намертво видяху, проц и тд. Так что от писюков отличия минимальные, и наработки можно будет использовать на писюках. И, скорее всего, отлаживать их тоже будут на писюках, чтобы народу тестеров поболее собрать и подешевле. Вот, даже на мсофтном хбохе Линукс завёлся без особых заточек.

Сега была за малым не XT-ишкой.
Полностью копировать писюк японцам гордость не позволит и квалификация.
Чего стоит одна только структура x86 (это же бардак сплошной).
Линукс в приставке вполне реален, поскольку оси в приставках используются
давным давно.
Но японская гордость может всё поломать.
Директ икс полное гомно. Видел старую ассемблерную графику на простых
картах - всё шевелилось намного живее чем на ускорителях.
Вобщем, старые выверенные движки всегда лучше новых. :)

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

>Попросту, возьмут писюковую плату, впаяют туда намертво видяху, проц и тд.

ну вот видишь, железо фиксировано, под него не нужна полноценная ОС, а нуже только лоадер, а если этот лоадер будут делать на базе Linux'а, то это никак не продвинет PC с Linux как игровую платформу.

>В том-то и дело, что заточки под железяку требуются только для d3d и виндовся,

ты принципиально не прав, заточки требует как раз OpenGL и я уже говорил почему, в D3D никакой заточки не надо, а надо просто писать под API

>Я уже приводил пример, на Линуксе у меня работает OpenGL приложение без аппаратной поддержки 3д, хоть и очень медленно, а в виндовсе - нет, вообще никак.

это объясняется только твоими кривыми руками, SW OpenGL и под виндами есть

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

приставка_на_некой_архитектуре_с_лоадером_на_базе_Linux связана с проблемой PC_на_котором_установлена_ОС_Linux как игровой платформы примерно так же, как унитаз где сливом воды управляет Linux c проблемой лечения запора

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

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

>> под него не нужна полноценная ОС, а нуже только лоадер

ну ладно, directx не нужен, апи не нужен, а нужно каждую железку затачивать под каждую игрушку, каковую игрушку загружать при помощи lilo или grub, и пускай сама трахается с оборудованием, тредами, файлами и прочим барахлом...

>> в D3D никакой заточки не надо, а надо просто писать под API

Вот только для d3d требуется заточка железки под апи, как оказалось. В чём тогда смысл апи? Зачем глупые пишут дрова под каждую железку? Действительно, лучше подгонять железку под старые испытанные хорошо работающие дрова...

>> это объясняется только твоими кривыми руками

Чё-то как дело к виндовсу, так у меня руки кривеют. Не напоминает ли тебе виндовс кривое зеркало?

>> SW OpenGL и под виндами есть

Есь. А SW D3D есь? Где?

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

>> это я к тому, что нефиг во все дыры сувать то, что для этого не предназначено

так и я к тому же. В идеале. Реальный мир таков, что например виндовсь установлен на многих десктопах, хотя как десктопная ось оный намного хужее любой другой, если не считать набора софта под него. И, с другой стороны, вся его, виндовся, отстойность не повлияла на количество софта, под него сделаного. Жись полна парадоксов.

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

> Чё-то как дело к виндовсу, так у меня руки кривеют. Не напоминает ли тебе виндовс кривое зеркало?

LOL :)))))))

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

>ну ладно, directx не нужен, апи не нужен, а нужно каждую железку затачивать под каждую игрушку, каковую игрушку загружать при помощи lilo или grub, и пускай сама трахается с оборудованием, тредами, файлами и прочим барахлом...

на приставках это почти так, а файлов тредов и прочего барахла там просто нет

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

>Реальный мир таков, что например виндовсь установлен на многих десктопах, хотя как десктопная ось оный намного хужее любой другой, если не считать набора софта под него.

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

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

>Вот только для d3d требуется заточка железки под апи, как оказалось. В чём тогда смысл апи? Зачем глупые пишут дрова под каждую железку? Действительно, лучше подгонять железку под старые испытанные хорошо работающие дрова...

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

кстати у некоторых производителей есть карточки заточенные под OpenGL, а не D3D, например у ATI серия FireGL

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

>> ну ладно, directx не нужен, апи не нужен, а нужно каждую железку затачивать под каждую игрушку, каковую игрушку загружать при помощи lilo или grub, и пускай сама трахается с оборудованием, тредами, файлами и прочим барахлом...

> на приставках это почти так, а файлов тредов и прочего барахла там просто нет

а вот и не угадал... Туды теперь даже ORB сувают

http://www2.shu.ac.uk/schools/cms/courses/pg/modulehome.cfm?Unit_ID=12-7-935-1

distributed computing

http://www.psreporter.com/playstation_3_news.html

и прочее барахло

http://csserver.evansville.edu/~brownie/reports/psps2.htm

короче, глюковиндовс со своим прямымХ отдыхает по полной

http://news.com.com/2100-1040_3-223612.html

bugmaker ★★★★☆
()

> Аппаратной поддержки DX нет ни в одной карте. Если она есть - то попробуйте запустить игру без драйверов видеокарты. Или тогда почему при обновлении драйверов повышается производительность? Direct3D работает с драйверами, а не с картой.

Что за пример с Radeon?

Например на процессоре Pentium программы будут использовать FPU, а на 386 без мат. сопроцессора нет - это что заточка процессора под программы? Просто разработчики видеокарт и производители софта договариваютс о стандартах, а то представьте - nVidia поддерживает одно,ATI - другое, а DirectX - ни то, ни то - это хаос. (Кстати так и есть ряд возможностей, например TruForm до сих пор во многих играх в пол силы работают).

wieker ★★
()

Имхо, в линуксе, "поддержки DirectX" не будет никогда, т.к. линукс без diractX как как рыба без зонтика.

Афаик, сабж является костылём для винды, то есть более непосредственным, прямым способом предоставления доступа пользовательским приложениям к ресурсам железа, а не через жопу, то есть HAL (hardware abstraction layer - по-нашему "кал"), как обычно принято в виндах.

В линуксе, как справедливо было замечено, доступ аппликух к ресурсам железа производится посредством драйверов, без всякого кала. А раз нет кала, то и туалетная бумага не нужна :)

Проблема только в недоступности спеков к железкам. А если есть спецификация - похер под какой "кал" заточена железка - драйвер выжмет из неё все возможности.

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

> то есть HAL (hardware abstraction layer - по-нашему "кал"), как обычно принято в виндах.

И тем не менее Unreal через этот кал работает быстрее и красивее (с полными тенями), чем через OpenGL. В рез чего под Линухом шпилить в него невозможно (ну напряжно, если быть точнее). Да и под виндой Unreal в OpenGL быстрее чем под Линуксом. Вот Serious Sam, например работает примерно с одинаковой скоростью (+-5%).

P.S. Но у Линукса есть приемущество перед ХР: более плавный ход игры при свопе, т.е. свопит, числ фпс падает, но играть можно, а в винде когда свопит, так экран целую секунду не обновляется, а потом думай: куда-же тебя за эту секунду занесло :))

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

> И тем не менее Unreal через этот кал работает быстрее и красивее (с полными тенями), чем через OpenGL.

Это потому, что криворукие программёры сначала заточили под DX, потом всё что было реализовали через вызовы OpenGL. А OpenGL в виндах реализована опять через DX. Я удивляюсь, как оно вообще работает.

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

>И тем не менее Unreal через этот кал работает быстрее и красивее

Так речь же не шла про конкретную игру, а про "поддержку в линуксе directX".

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

WinAPI = API = wine DirectX = API = winex

Неужели не понятно ? ЛЮБОЕ API можно реализовать, написав

конвертор в другое API.

К примеру MFC, VCL работают поверх WinAPI

так же и DirectX работает поверх Driver API

DirectX это попытка Micro$oft ликвидировать "Low Level Driver API HELL"

P.S.: Было бы толковое описание DX API, но главное, название сделать

другое ... а то постигнет участь Lindows :(

IMHO Для задач моделирования 3D OpenGL самое ТО ! а DX = .....

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

>Это потому, что криворукие программёры сначала заточили под DX, потом всё что было реализовали через вызовы OpenGL. А OpenGL в виндах реализована опять через DX. Я удивляюсь, как оно вообще работает.

начнём с того, что Unreal 1 затачивался под Glide, это и показывали тесты того времени. далее где ты откопал такую чушь, что OpenGL в виндах работает через D3D?

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

> Unreal 1 затачивался под Glide

Да пох... Glide is dead, соответственно, следующий затачивался под то, что живО - DX.

> далее где ты откопал такую чушь, что OpenGL в виндах работает через D3D?

не D3D, а DX. Не весь, конечно, но и не только D3D.

А что, ты видел OpenGL драйверы под винды? Я - нет. Да и, насколько мне известно, там фиксированная (не зависящая от карточки или чего-либо ещё) библиотечка OpenGL'я. Элементарная логика подсказывает, что API OpenGL специально не поддерживается, т.е. работает через то, что есть, а кроме DX ничего нет.

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

opengl32.dll всего лишь обёртка, по сути она ничего не делает. настоящий OpenGL драйвер находится в дровах от производителя карточки, у Nvidia например это nvoglnt.dll

поэтому это ты бред какой-то спизднул

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

> поэтому это ты бред какой-то спизднул

Может быть :)

> настоящий OpenGL драйвер находится в дровах от производителя карточки

Вот ведь, умеют же, когда захотят. Так ведь не хотят...

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

Лихо почикали :|

Ну ладно, повторюсь. Следующие сведения из http://whatis.ru

<ЦЫТАТА>

Драйвер (Driver) - программа, обеспечивающая взаимодействие операционной системы с физическим устройством (например, драйвер лазерного принтера, сканера, "мыши" и т.д.). Драйвер, не входящий в состав программ операционной системы - загружаемый (нерезидентный драйвер) (loadable driver), загружается специальной командой перед началом работы программы, работающей с устройством.

API - Applications Programmer's Interface (API) - интерфейс прикладного программирования - спецификация набора функций, которую должны выдержать разработчики программного обеспечения для совместимости своих программ с соответствующими операционными системами.

DirectX - набор драйверов, образующий интерфейс между программами в среде Windows и аппаратными средствами.

</ЦЫТАТА>

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

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