Есть ли API более низкого уровня, кроме DirectX / OpenGL? - PullRequest
13 голосов
/ 14 июня 2011

Я слышал, что вызовы OpenGL и DirectX фактически преобразуются видеодрайвером в вызовы, специфичные для карты.Я также знаю, что иногда новый видеодрайвер может повысить производительность видеоигры на 50%, при этом разработчик ничего не делает.Если мне нужен точный контроль зернистости видеокарты, возможно ли это на уровне ниже DX / OpenGL?Выпускает ли Nvidia / AMD специфичные для поставщика API-интерфейсы?

Ответы [ 4 ]

17 голосов
/ 14 июня 2011

NVidia держит модель программирования своих графических процессоров в секрете.Нет шансов стать ниже, чем DirectX, OpenGL, CUDA или OpenCL.

AMD / ATI открыли свою документацию, но это, вероятно, слишком низкий уровень для программиста повседневной работы: http://developer.amd.com/documentation/guides/pages/default.aspx#open_gpu

Intel openисточники их драйверов Linux и есть какая-то документация.

Драйверы Linux с открытым исходным кодом для AMD и Intel используют низкоуровневый API, называемый DRI2 / DRM;в сочетании с KMS также называется Галлий.MesaGL находится на вершине DRI, поэтому в Linux на самом деле API-интерфейс уровня OpenGL ниже графического адаптера.MesaGL - это так называемый трекер состояния DRI, и, насколько я слышал, разработчики WINE почти полностью закончили трекер состояния Direct3D-10 (и 11?), Поэтому в обозримом будущем WINE будет поддерживать собственный Direct3D.Разумеется, будет работать только с DRI, поэтому поддержка графических процессоров NVidia отсутствует.

4 голосов
/ 14 июня 2011

Забудьте об этом, вы потратите НАМНОГО больше времени на чтение некоторых SDK и поддержку всех возможных видеокарт. Позвольте дать вам совет: просто прочитайте статьи, в которых объясняется, как сделать приложения D3D или OpenGL эффективными (кеширование, переключение контекста и т. Д.).

1 голос
/ 14 июня 2011

В AMD / ATI:

OpenCL - компилировать в-> IL - компилировать в-> ISA - ссылки на-> исполняемый файл ELF

В NVIDIA:

OpenCL - компилирует в-> PTX - компилирует в-> ISA - ссылается на-> исполняемый формат некоторого вида

Для AMD раньше использовалась CAL, которая предоставляет доступ более низкого уровня, чем OpenGL /OpenCL, но он устарел.Есть некоторые подсказки, что доступ к IL и ISA будет доступен через OpenCL.Смотрите эту ветку форума: http://forums.amd.com/forum/messageview.cfm?catid=390&threadid=150149&forumid=9

0 голосов
/ 14 июня 2011

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

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