LINUX.ORG.RU
ФорумTalks

Соврем. видеокарты


0

0

Каждый раз когда заводится спор о драйверах к совр. 3D видеокартам, меня терзает вопос:

почему собственно не сделано, так что opengl реализован в firmware видеокарты и соотв. работает на GPU, а в ядре будет малюсенький драйвер-мост между userspace и железом.

Все приложения (X) кидают в /dev/videocard высокоуровневые команды opengl, которые быстро и безпроблемно для ОС отрисовываются видеокартой.

★★★★★

Ниасилили? Веть для производителей видях вообще лафа будет по части програмного урезания младших карточек серии и дополнительная фичастость элитных =)

DNA_Seq ★★☆☆☆
()

Nothing personal, just a business производителей, я думаю. Приоритет за ПИкс 10

ViTeX ★★★★
()

А если в реализации OpenGL обнаружится ошибка? А если захотят обновить OpenGL 2.1 до OpenGL 3.0?

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

А BIOS материнской платы как обновляют?

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

>А если в реализации OpenGL обнаружится ошибка? А если захотят обновить OpenGL 2.1 до OpenGL 3.0?

смена прошивки? Но сложность такой прошивки...

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

прична больше в том что GPU имеет очень ограниченный набор инструкций. Фактически там только сложение и умножение. А придется прокачивать до полноценного CPU

DNA_Seq ★★☆☆☆
()

Дело в том, что дрова видюхи должны обновляться достаточно часто. Из-за чего? Из-за игр. Новые версии дров в основном содержат именно заточки под новые гамы =\ Достаточно поглядеть профили в том же forceware. Гам там сотни и сотни. Да и "заточка" эта делается не всегда честно, превращаять ингда просто в хаки - показательный пример - скандал с 3дмарком.

GAMer ★★★★★
()

Возможно, некоторые вещи считать на cpu будет быстрее, чем на gpu.

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

Это не аргумент.
Фирмварь (читай драйвер) можно заливать в оперативку видеокарты (не в флеш-память) по-мере загрузки системы (игры).

Для винды залить поддержку DirectX, для Линукс -- opengl

Вот то, что GPU не полноценный CPU -- это да, это аргумент.

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

> Новые версии дров в основном содержат именно заточки под новые гамы

Думаю это чушь собачья.

> Дело в том, что дрова видюхи должны обновляться достаточно часто. Из-за чего? Из-за игр.

Из-за исправления ошибок.

anonymous
()

Да-с господа... Новое - это хорошо забытое старое... Драйвер должен быть частью БИОС-а а не частью ОС. Что в общем-то логично, ведь это часть железки. В VAX-ах так и было...

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

>Драйвер должен быть частью БИОС-а а не частью ОС.

Тогда железка будет работать только на одной архитектуре и возможно только под одной ОС

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

>можно заливать в оперативку видеокарты (не в флеш-память) по-мере загрузки системы

Так и делается на вай-фай карточках и усб-адсл-мопедах

>Для винды залить поддержку DirectX, для Линукс -- opengl

проще сделать поддерку и того и этого и для того и для этого =)

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

> толсто. Биос видяхи - это часть системного биоса

и CPU теперь начал перекладывать часть функций на GPU или что ? :) как вообще CPU с видюхой связан ?

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

>Так и делается на вай-фай карточках и усб-адсл-мопедах
>проще сделать поддерку и того и этого и для того и для этого =)


Это известно, потому и возникает вопрос почему с видеокартами это не так до сих пор. Только из-за ущербности GPU (относительно CPU)?

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

1. Компиляцию шейдеров во внутреннюю ISA видеокарты осуществляет CPU, сами современные видеокарты не в состоянии это делать, тем более быстро.

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

3. Кроме DirectX и OpenGL есть всякие GPGPU приложения, которые работают непосредственно с видеокартой в обход графических API, и для этого всё равно нужна соответствующая инфраструктура.

4. Сама идея — проприетарная по сути. Какая разница, где будет работать код, если он всё равно остаётся закрытым?

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

> Это известно, потому и возникает вопрос почему с видеокартами это не так до сих пор. Только из-за ущербности GPU (относительно CPU)?

Проще говоря, дрова - транслятор вызовов по API в команды GPU, плюс - дохера работы в потрохах адаптера выполняется на автомате, ринг-буфиры там всякие и т.п., вот это и прошито в фирмваре, вместе с таймингами и прочим стаффом.

Для выполнения сабжа нужно либо переписать спеки на OpenGL, сведя их на уровень прямой и очень упрощённой работы с железом - по аналогии с сисколлами ядра, либо напаивать на видяху хотя бы отдалённо напоминающий CISC процессор и вместо драйвира использовать прослойку-транслятор - получится примерный аналог RAID-контроллера.

Ты за что борешься-то хоть?

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

> OpenGL не охватывает значительную часть функционала современных видеокарт.

Сказки, через расширения всё становится доступно на порядок быстрее, чем в "Прямом Иксе" (ТМ)

> Кроме DirectX и OpenGL есть всякие GPGPU приложения, которые работают непосредственно с видеокартой в обход графических API, и для этого всё равно нужна соответствующая инфраструктура.

Дык просто в API для ускоренных расчётов вместо полноценного рендеринга впилен обрезанный драйвир (или гейт к оному), что тупо гонит числа и хапает результаты.

> Сама идея — проприетарная по сути. Какая разница, где будет работать код, если он всё равно остаётся закрытым?

Я думаю он загорелся идеей открытого фирмваря для видях и модификации иксов на эту тему.

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

>4. Сама идея — проприетарная по сути. Какая разница, где будет работать код, если он всё равно остаётся закрытым?

Отнюдь. Это как сравнить "железные" модемы/факсы с софт-модемами.
"железные" модемы -- закрытая железка с открытым интерфейсом (АТ-команды), а вот софт-модемы тот еще сказочный подарок.

Так вот сегодняшние видеокарты -- это те самые софт модемы -- глючат и "работают" одновременно и все через жопу.

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

>Сказки, через расширения всё становится доступно на порядок быстрее, чем в "Прямом Иксе" (ТМ)

Ты видимо не в курсе, как разрабатываются современные геймерские видеокарты.

Сначала MS выпускает спецификацию DirectX I.J. И рассылает её разработчикам игр и производителям карт. Первые начинают клепать игры по новой спецификации, вторым ничего не остаётся как делать поддержку новой версии в железе. Если например фирма N забила на реализацию нового DirectX , то у компании А будет преимущество в виде наклеечки на коробку "DirectX I.J supported".

Так компания MS кнутом и сапогом подгоняет индустрию.

Ах да, есть ещё OpenGL. Там всё делается правильно, в комитет входят как производители игр, так и разработчики софта.

Сначала все с энтузиазмом предлагают новые идеи, но потом выясняется что прошло уже слишком много времени, а поддержка нового DirectX не ждёт. В итоге все на OpenGL забивают, всё равно для КАДовацев и старой версии достаточно, а игроделы уже год на новом DirectX пишут.

OpenGL умер.

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

> Тогда железка будет работать только на одной архитектуре и возможно только под одной ОС

Это с какой же стати она будет работать в одной ОС?! У тебя БИОС в одной ОС работает? А в другой чего?

А Вы таки знаете железяки, которые в разных архитектурах работают? (Ну типа, которым драйвер нужен. Про HDD не говорим - там есть раз и навсегда заданный стандартный интерфейс .)

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

>и CPU теперь начал перекладывать часть функций на GPU или что ? :) как вообще CPU с видюхой связан ?

Биос видяхи лишь инициализирует видяху так как системный биос видяху инициализировать не может из-за разнообразия видях. И адресуется этот биос CPU, GPU тут вообще не при делах. Сетевые карточки тоже имеют boot-rom ;) Короче, все что требуется запустить до загрузки ОС имеет либо биос-продолжение системного биоса либо вообще собственный процессор (как райд-контроллеры)

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

>Это известно, потому и возникает вопрос почему с видеокартами это не так до сих пор.

А теперь вспомни какая 2,74ля в не-винде с адсл-мопедами и вай-фай карточками ;)

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

>А Вы таки знаете железяки, которые в разных архитектурах работают?

Те же видеокарточки нВидии прекрасно работали на старых маках (которые на ПоверПыЦы), главное чтоб шина стандартизирована была а с процессорными инструкциями разберется драйвер

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

>"железные" модемы -- закрытая железка с открытым интерфейсом (АТ-команды), а вот софт-модемы тот еще сказочный подарок.

Основной дедостаток софт-модемов не в том что они софт а в том что сделаны через ж Ну кроме того некоторые особо продвинутые (например на чипе Connexant HSP) не имели даже собственного DSP и соответственно все цифро-аналоговые преобразования выполнялись CPU. Представь почти полностью софтварную звуковую карту, это даже не АС97

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

>У тебя БИОС в одной ОС работает? А в другой чего?

Ну на нынешних PC биос работает только при загрузке

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

> А теперь вспомни какая 2,74ля в не-винде с адсл-мопедами и вай-фай карточками ;)

Дык о том и речь веду, что писать драйвер под конкретную платформу/ОСь и тд. значительно сложнее, чем написать фирмаварь и пусть оно крутится в железяке.
С мелкими железяками еще понятно желание разработчиков перенести вычисления на CPU, чтобы удешевить продукт и поиметь быстродействие.

Но видяхи имеют большую и быструю память + мощный процессор и логично перенести вычисления в нее, сэкономив попутно IO.

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

С видеокартами ситуация иная (см. пред. пост)

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