Как аппаратное ускорение работает с WPF?

Есть много статей в Интернете, но до сих пор неясно, поэтому мне нужно четкое объяснение того, как аппаратное ускорение работает с WPF?

Ответ 1

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

Для получения рендеринга с GPU-ускорением Windows Presentation Foundation (WPF) отображает и представляет графику через конвейер DirectX. Графический процессор или модуль обработки графики - это чип, который поддерживает вашу видеокарту. По сути, аппаратное ускорение разгружает работу по рендерингу графики в вашем приложении WPF с основного процессора (CPU) вашего компьютера на процессор видеокарты (GPU). Используя аппаратное обеспечение вашей видеокарты, специально предназначенное для рендеринга графики, вместо программных функций, выполняемых процессором, производительность графических приложений и пользовательского интерфейса увеличивается или ускоряется. Конечной целью является то, что сложные графические подпрограммы становятся связанными с визуализацией (т.е. Ограниченными возможностями графического процессора), а не связанными с процессором (т.е. Ограниченными возможностями и скоростью вашего компьютерного ЦП). Это освобождает процессор для выполнения других работ, наилучшим образом использует возможности вашей видеокарты с уникальной графикой и ускоряет работу вашего приложения каждый раз, когда пользователь обновляется до более новой, быстрой и более продвинутой видеокарты (поскольку они становятся имеется).

Это, конечно же, предполагает, что ваша видеокарта поддерживает аппаратное ускорение. На самом деле, не все они делают, и WPF учитывает это с помощью трехуровневого подхода:

  • Если ваша видеокарта не обеспечивает какого-либо уровня аппаратного ускорения, например, если вы используете версию DirectX меньше 7,0, WPF возвращается в режим рендеринга уровня 0 или программное ускорение.

  • Если ваша видеокарта поддерживает частичное аппаратное ускорение, например, если вы используете версию DirectX между 7.0 и 9.0, тогда WPF использует режим рендеринга уровня 1.

  • Если ваша видеокарта поддерживает полное аппаратное ускорение для всех графических выходов, соответствующее версии DirectX равную или большую, чем 9,0, тогда WPF использует режим рендеринга уровня 2.

Эта страница MSDN содержит дополнительную информацию об этих уровнях рендеринга графики и о том, какие функции и возможности поддерживают аппаратное ускорение.

И я не знаю, если вы уже видели этот пост в блоге, но с лучшим пониманием того, что я только что объяснил, это может иметь больше смысла для вас, читая его снова.

Помните, однако, что эта часть сделки с WPF заключается в том, что вам не нужно беспокоиться о деталях и особенностях этого процесса. Технология достаточно интеллектуальна, чтобы использовать аппаратную оптимизацию везде, где это возможно, при необходимости возвращаясь к программному рендерингу. Ваши приложения WPF будут работать даже на старых компьютерах с устаревшими видеокартами, хотя и медленнее, чем у нового клиента. Так что это, вероятно, то, о чем вам не нужно беспокоиться, кроме случайного любопытства.