Родная функция графической карты - PullRequest
4 голосов
/ 02 декабря 2011

Если я правильно понимаю, видеокарта запрограммирована на отображение 2D и 3D графики, и эти карты имеют встроенные функции, но поскольку эти функции устарели и их трудно использовать, мы не используем драйверы, которые облегчают жизнь программистам.

Теперь мой вопрос заключается в том, что, если есть какие-то собственные учебные пособия по функциям графической карты, и если они универсальны, это работает на каждой видеокарте или отличается от одного к другому, как язык ASM.И если существуют учебные пособия, могу ли я использовать язык C или C ++ или мне нужно иметь знания asm?

Ответы [ 3 ]

6 голосов
/ 02 декабря 2011

Способ программирования графических процессоров (по крайней мере, расширенных функций) обычно осуществляется через MMIO (например, адрес в виртуальной памяти соответствует регистру в графическом процессоре вместо фактического DRAM) или, чаще, через буферы команд (например, часть памяти используется для хранения команд для графического процессора, которые GPU считывает последовательно.

Теперь эти команды и регистры сильно зависят от оборудования (даже в пределах одного поставщика оборудования): см., например, ATI R600 регистры. Они не являются "универсальными" вообще .

Эти типы интерфейсов используются разработчиками драйверов для реализации API-интерфейсов DirectX и OpenGL, типичных для программ.use.

Вероятно, лучшим источником "учебника" для этого уровня программирования являются драйверы с открытым исходным кодом в linux.

3 голосов
/ 02 декабря 2011

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

1 голос
/ 02 декабря 2011

Если я правильно понял, видеокарта запрограммирована на отображение 2D и 3D графика и эти карты имеют встроенные функции, но потому что эти функции устарели и сложны в использовании, мы не используем драйверы, которые облегчает жизнь программистам.

в некотором смысле да, хотя и не устаревший, все дело в абстракции.

в Интернете есть несколько учебных пособий, например, для OpenGL nehe.gamedev.net DirectX также имеет несколько учебных пособий, просто используйте вашу любимую поисковую систему, хотя OpenGL имеет большое преимущество быть портативным.

Обычно вы можете использовать C или C ++, и вам не нужно знать ASM, если вы не имеют каких-то крайних требований.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...