Какие части графических конвейеров выполняются с использованием CPU и GPU? - PullRequest
4 голосов
/ 04 июня 2010

Какие части конвейеров выполняются с использованием процессора, а какие с использованием графического процессора?

Чтение Википедия по графическому конвейеру , возможно, мой вопрос не совсем соответствует тому, что я спрашиваю.

Ссылаясь на этот вопрос , какие "шаги" выполняются в ЦП, а какие в ГП?

Edit:
Мой вопрос заключается в том, какие части логических шагов высокого уровня, необходимые для отображения ландшафта + 3D-модели [из файлов], используют CPU / GPU вместо каких функций.

Ответы [ 3 ]

3 голосов
/ 04 июня 2010

Какие части конвейеров выполняются с использованием процессора, а какие - с использованием графического процессора?

Насколько я знаю ...
Это зависит полностью на оборудовании, драйвере и реализации opengl.Все, что вы можете делать в OpenGL, работает, но вы не можете быть на 100% уверены, где происходит обработка - это удобно скрыто от вас (на самом деле это одно из преимуществ OpenGL).
Существуют полнофункциональные эмуляторы OpenGL дляпример - mesa3d (несертифицированный).Поместите такой opengl32.dll (если у вас Windows) в папку с вашей программой, и все будет работать на CPU.

Как правило, растеризация (последний этап конвейера - альфа-смешение, вставка пикселя, ztest)сделано в оборудовании.Получить старую видеокарту, и вполне возможно, что остальные функции будут работать на процессоре.Преобразования вершин, манипуляции с вершинами и даже стандартное освещение могут выполняться на процессоре (и они выполнялись на процессоре в течение длительного времени) - в зависимости от видеокарты.Однако, я должен признать, что видеокарты без аппаратной поддержки TL (преобразования и освещения) довольно старые.AFAIK, преобразование и освещение всегда выполняются на процессоре, если карта поддерживает только полное аппаратное ускорение DirectX 7 (в зависимости от платформы Windows).

Может существовать зависящий от платформы способ получения возможностей видеокарты в openGL, однако ..

Примечание: DirectX дает вам больше информации о возможностях карты и способах управления тем, что и где происходит (т.е.Вы можете выбрать программное обеспечение T & L, даже если видеокарта поддерживает аппаратное ускорение - в некоторых случаях это может потребоваться).Это идет со штрафом - DirectX менее гибок, чем OpenGL, сложнее в использовании, сложнее экспериментировать, он доступен на меньшем количестве платформ, чем OpenGL, и беспокоится о том, какая функция поддерживается, а какая не требует времени разработки.

1 голос
/ 04 июня 2010

Ответ зависит от того, какой GPU (поскольку они отличаются по возможностям HW, особенно от встроенных), но на современных неинтегрированных GPU весь конвейер реализован в HW. Это включает в себя выбраковку, z-сортировку и окклюзию.

Интегрированные чипсеты, такие как Intel, имеют меньше аппаратных функций, например, они обычно преобразуют и освещают с помощью программного обеспечения.

0 голосов
/ 04 июня 2010

Это во многом зависит от конфигурации системы, по крайней мере, ЦПУ должен выдавать команды для GPU (отправлять списки вершин, загружать текстуры и т. Д.), А GPU обычно выполняет все геометрические преобразования, отображения текстур, освещение и т. д.

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

Если вы используете 3D-движок, он может также выполнить предварительную оптимизацию ЦП, чтобы уменьшить количество треугольников, которые должен обрабатывать GPU, например, отбрасывать заранее известные части геометрии, которые, как известно, скрыты ( например, используя BSP как движки IdTech или порталы вроде Unreal Engine.

Такие вещи, как перемещение и вращение сеток моделей (например, анимация ходьбы), обычно выполняются в процессоре, но в настоящее время я предполагаю, что тенденция HW также будет ускорять их.

Что касается ссылки на википедию, все упомянутые там шаги обычно выполняются в GPU, но программное обеспечение, работающее в CPU, решает, какие полигоны будут отправляться на обработку (даже если они отбрасываются GPU). позже, потому что они скрыты или находятся вне зоны видимости).

...