FreeSource : Comment2848

This is a comment on Nick Gavrikov, posted by Nick Gavrikov at 2006-12-18 13:19:59
> Ламер!
> Там все просто. У видео есть несколько уровней.


Да, я ламер. Я не знаю как именно работают с графическим ускорителем иксы. Но зато я знаю как работает Direct X. Подозреваю, что Open GL и прочие Open... работают аналогично.

Так вот, в связке userspace (1 ->) kernel (2 ->) kernel (3 ->) железо данные на этапе (1) передаются ОЧЕНЬ мало по сравнению с остальными этапами. Там просто формируются поверхности, объекты, текстуры и передаются всякие матрицы трансформации и т.п. Все.

Что касается (2) и (3) – там все гораздо более сложно. Обрати внимание, всякие хитрые штуки типа шейдеров и т.д. работают при существенной поддержке CPU. Да, конечно, железо карты призвано снять часть нагрузки с проца, но лишь СНЯТЬ ЧАСТЬ НАГРУЗКИ и не более того. Степень «помощи» прямо пропорционально стоимости видеокарты. В частности, Direct X будет одинаково хорошо работать как с кастратами типа MX-440, так и с полными видеокартами, которые сами по себе требуют блок питания по 450 ватт.

Описать адреса портов I / O, работу с памятью и т.д. (если там все сделано не через жопу) можно, никакого секрета в этом нет имхо. Но это никому не поможет. А опубликовывать как раз алгоритмы, частично реализованные в CPU, частично в железе никто не будет. А если они будут выполняться в userspace будет полный абзац.