GDI был ускорен. Кто-нибудь знает, когда это произошло?

Чтобы набросать фон этого вопроса: на работе мы используем рабочие станции Dell Precision. Мой нынешний получил NVidia Quadro FX1700. Моя команда разрабатывает графические компоненты для системы сбора данных в реальном времени. Таким образом, мы всегда смотрим, не израсходовали ли графические операции слишком много процессорного времени. Для быстрых проверок у нас есть несколько тестовых программ, которые мы запускаем, которые рисуют сцены с заданной скоростью (например, 10 кадров в секунду), и мы используем простой старый диспетчер задач, чтобы увидеть, где находится загрузка процессора. Одна из этих программ перегружена вызовами GDI DrawRectangle (которые заполнены). Эта программа всегда потребляла около 40% пользовательского времени процессора, но примерно через год (только предположим здесь) она использует только около 2-3 % времени ядра. Ясно, что здесь происходит некоторое аппаратное ускорение. И действительно, если я выключу HW-Accell, мы вернемся к первоначальному 40% времени пользователя. Все это, конечно, хорошие новости, потому что мы уже думали о переходе на OpenGL. Год за годом GDI никогда не получал преимущества аппаратного ускорения. До недавнего времени это так.

Кто-нибудь знает что-нибудь еще об этом? Microsoft сделала это? Или это зависит от производителя gfx-карты?

редактировать

Спасибо за ответы ( Ferrucio, Torlack и Rob Walker), но на мой вопрос еще не ответили. Мы говорим о заполненном прямоугольнике здесь. Пожалуй, самая тривиальная функция для оптимизации: просто отправьте пару координат в графический процессор и дайте ему разорваться. Тем не менее, это всегда было реализовано на стороне процессора. Пока ответы заставляют меня поверить, что NVidia наконец-то увидела свет (спустя более 10 лет) и ускорила GDI. И никаких объявлений об этом? Там нет никакой информации об этом вообще. Мои внутренние клиенты спрашивают меня об ускорении графики, и все, что я могу сказать, это "хорошо, нам повезло".

Edit2

Похоже, что это связано с драйвером в соответствии с различными ответами. Итак, NVidia годами создавала дрянные драйверы GDI для своих карт рабочих станций. В этой компании действительно был признан факт, что GDI не был ускорен, и все тесты подтвердили это.

5 ответов

GDI работает, вызывая различные функции в драйвере графического устройства. Существует основной набор функций, которые должен реализовывать каждый драйвер. Другие функции могут быть реализованы драйвером. Если нет, GDI будет выполнять эти функции самостоятельно.

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

Поскольку в аппаратном обеспечении реализовано больше функций, эти функции не только работают намного лучше, но и GDI требует меньше работы, что приводит к сокращению процессорного времени, затрачиваемого на графику.

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

GDI ускорился довольно долго. Насколько я помню, это в некоторой степени зависело от вашего оборудования и драйверов. Почему вы видели такой скачок производительности только недавно, кажется странным.

Однако не слишком радуйтесь - аппаратное ускорение GDI больше не поддерживается в Vista. Новый движок композиции рабочего стола не поддерживает его. Тем не менее, в Vista вы получаете быстрое перемещение окон, так как контент не всегда должен быть перерисован приложением (и я думаю, что без разрывов?).

В некоторой степени, GDI всегда был ускорен. Даже в старые времена Win31 я помню, как покупал карты (Number9), основной точкой продаж которых было аппаратное ускорение GDI.

Vista имеет новую архитектуру драйвера дисплея, которая обеспечит резкое увеличение производительности. Вы сравниваете как комбинации оборудования / ОС?

В течение некоторого времени многие 2D-функции были ускорены, каждая новая основная версия Windows меняла способ работы драйверов дисплея. Я полагаю, что именно с XP Windows обновила свой уровень оконного менеджера. Трудно сравнивать, на самом деле, поскольку XP больше похожа на Windows 2000/NT, чем любые более ранние версии.

Еще немного информации о википедии, разработке Windows XP.

Windows 2000, безусловно, была первым Windows-ядром с поддержкой DirectX, а также имела некоторые графические улучшения. Windows 2000 (википедия)

Я не верю, что были значительные изменения в модели драйвера дисплея /2D-подсистемы между выпусками. Так что, если вы заметили подобное изменение, скорее всего, это связано с тем, что сделала nVidia.

Другие вопросы по тегам