Windows Display Driver Model

Поделись знанием:
Перейти к: навигация, поиск

Windows Display Driver Model (WDDM, также WVDDM в эпоху Vista) — это архитектура графических драйверов для видеокарты под управлением Microsoft Windows, начиная с Windows Vista[1]. Она является заменой для архитектуры видеодрайверов Windows XP и нацелена на повышение производительности графики и новую функциональность[1].

WDDM предоставляет функциональность, необходимую для отображения рабочего стола и приложений с помощью диспетчера рабочего стола — диспетчера составных окон, работающего поверх Direct3D. Она также поддерживает интерфейсы новой инфраструктуры DXGI (DirectX Graphics Infrastructure), необходимые для основных операций создания и управления устройством. Спецификация WDDM требует видеокарту, поддерживающую по меньшей мере Direct3D 9, и должна реализовывать интерфейсы до Direct3D 9 для совместимости со старыми приложениями Direct3D; по желанию она может реализовывать интерфейсы для Direct3D 10/10.1 и выше.





Возможности, привнесённые моделью WDDM

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

Виртуализованная видеопамять

В контексте графики виртуализация означает, что отдельные процессы (в пользовательском пространстве) не могут видеть память соседних процессов даже путём вставки фальшивых команд в командный поток. Драйверы WDDM позволяют делать виртуализацию видеопамяти[2] и подстановку страниц видеопамяти в системную память. Если окажется, что доступной видеопамяти недостаточно для хранения всех видеоданных и текстур, данные, не используемые в текущий момент, перемещаются в системную память или на диск. Если вытесненные данные становятся нужны, они загружаются обратно. Виртуализация была в некоторой степени возможна в драйверах, рассчитанных на предыдущие модели построения (такие, как модель драйверов Windows XP), но это была целиком зона ответственности драйвера, а не системы.

Диспетчеризация

Исполняемый модуль управляет диспетчеризацией (планированием) конкурирующих между собой графических контекстов.[3] Каждый список команд помещается в очередь для исполнения графическим процессором, и может быть выгружен исполняемым модулем, если появляется более важная задача и если выполнение списка ещё не началось. Такое поведение отличается от потоков центрального процессора, где задача не может быть прервана и поэтому занять больше времени, чем нужно и заставить компьютер медленнее отвечать на запросы. Гибридный алгоритм планирования между родными и лёгкими потоками со взаимодействием потоков даёт бесшовный параллелизм. Важно заметить, что планирование — это не новая идея, но ранее была сферой ответственности разработчиков драйверов. WDDM пытается унифицировать опыт разных разработчиков, управляя выполнением задач графического процессора.

Межпроцессное совместное использование поверхностей Direct3D

Графическая поверхность Direct3D — это область памяти, содержащая информацию о текстурированных ячейках, используемых для просчёта двумерной или трёхмерной сцены. WDDM позволяет процессам совместно использовать поверхности Direct3D[4]. Поэтому приложение может включить ячейку, созданную другим приложением, в рассчитываемую сцену. Совместное пользование текстур процессами до WDDM было сложной задачей, поскольку требовало копирования данных из видеопамяти в системную память и назад, в видеопамять нового устройства.

Расширенная отказоустойчивость

Если драйвер WDDM зависнет или встретит сбой, графический стек перезапустит драйвер.[1] При сбое графической аппаратуры произойдёт перехват этого события и, если необходимо, драйвер будет перезапущен.

Драйверы для Windows XP были вольны реагировать на аппаратные сбои на своё усмотрение, либо уведомлением пользователя, либо попыткой устранить ошибку молча. С драйвером WDDM все сбои аппаратуры вызывают перезапуск драйвера, а пользователь получает всплывающее сообщение; это унифицирует поведение драйверов разных разработчиков.

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

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

Необходима новая модель драйверов

Одним из основных сценариев, которые делает возможным Windows Display Driver Model, является Desktop Window Manager. Поскольку рабочий стол и окна приложений, управляемые DWM, являются приложениями Direct3D, количество открытых окон напрямую влияет на требуемый объём видеопамяти. Поскольку нет ограничения на количество открытых окон, доступной видеопамяти может оказаться недостаточно, и потребуется виртуализация. Поскольку содержимое окон, которые DWM объединяет в конечный рабочий стол, создаётся разными процессами, необходимо межпроцессное совместное использование графических поверхностей. Также, поскольку одновременно с DWM на рабочем столе могут работать другие приложения DirectX, приложения должны иметь возможность совместного доступа к графическому процессору, что требует диспетчеризации.

Однако сказанное справедливо для Майкрософтовской реализации составного рабочего стола под Windows Vista, с другой стороны, составной рабочий стол теоретически не нуждается в новой модели графических драйверов. Успешные реализации составных рабочих столов существовали до Windows Vista на других платформах, таких, как Quartz, Compiz, WindowFX. Своим подходом Microsoft попытался сделать надёжный WDDM как обобщение опыта по разным графическим процессорам от различных производителей, как стандартизацию их свойств и качеств. Программные свойства, отсутствующие у других моделей драйверов, можно было бы сделать несущественными с помощью дополнений или если бы была доступна менее ограничивающая или просто другая модель драйверов.

Ограничения

Новая модель драйверов требует, чтобы графическая аппаратура поддерживала, по крайней мере, Shader Model 2.0 (fixed function pipeline is now translated to 2.0 shaders). Однако, по информации Microsoft, на 2009 год только около 1—2 процентов аппаратуры использовало модель драйверов Windows XP[5], а остальные уже являются WDDM-совместимыми. Модель также требует наличия некоторых других аппаратных возможностей (по этой причине, например, аппаратура, поддерживающая SM 2.0, такая, как Intel GMA 900, не проходит сертификацию на WDDM[6]).

Одно из ограничений драйвера WDDM версии 1.0 в том, что он не поддерживает одновременно несколько драйверов в многоадаптерном многомониторном окружении. Если у многомониторной системы более одного графического адаптера, оба адаптера должны использовать один и тот же драйвер WDDM. Если используется более одного драйвера, Windows выключит один из них.[7]. У WDDM 1.1 уже нет такого ограничения.[8]

В WDDM 1.0/1.1 отсутствуют некоторые режимы, ранее обслуживавшиеся непосредственно драйвером, такие, как растяжка рабочего стола на несколько мониторов[9][10], хотя режим Dual View[11] по-прежнему доступен.[12]

WDDM 1.1

Windows 7 поддерживает важные дополнения к WDDM, известные как WDDM 1.1; подробности этой новой версии были раскрыты на WinHEC 2008. Новые возможности включают[5]:

Аппаратное ускорение операций GDI и Direct2D/DirectWrite помогает уменьшить расход памяти в Windows 7, поскольку системе компоновки DWM больше не нужно держать копию системной памяти для всех графических поверхностей, используемых GDI/GDI+, как это было в Windows Vista.[16][17]

WDDM 1.1, Direct3D 11, Direct2D и DirectWrite также будут доступными с выходом Windows Vista Platform Update; однако, GDI/GDI+ в Vista будет по-прежнему полагаться на программный просчётК:Википедия:Статьи без источников (тип: не указан)[источник не указан 5045 дней], и Desktop Window Manager будет продолжать использовать Direct3D 9Ex.К:Википедия:Статьи без источников (тип: не указан)[источник не указан 5045 дней]

Драйверы WDDM 1.1 обратно совместимы со спецификацией WDDM 1.0; как драйверы 1.0, так и 1.1 можно использовать в Windows Vista с Platform Update или без него.[5]

WDDM 1.2

Поддерживается в Windows 8.

WDDM 1.3

Поддерживается в Windows 8.1.

WDDM 2.0

На WinHEC 2006 Microsoft говорил о своих планах сделать значительное изменение WDDM для улучшения многозадачности применительно к графическим процессорам. Согласно информации Microsoft, WDDM 1.0 позволяет выполнять лишь элементарное планирование задач с просчётом «batch queue» granularity. WDDM 2.0 и WDDM 2.1', которые планировались после выхода Vista[18] но относительно которых Microsoft не огласил дату выхода в свет (Windows 8 поддерживает лишь WDDM 1.2), могли бы предложить вытесняющую многозадачность на уровне мелких структурных единиц и потребовали бы нового поколения графических процессоров.[19][20]

Поддерживается в Windows 10.

Напишите отзыв о статье "Windows Display Driver Model"

Примечания

  1. 1 2 3 [msdn.microsoft.com/en-us/library/aa480220.aspx Windows Vista Display Driver Model]
  2. [download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/GraphicsMemory.doc Graphics Memory Reporting in WDDM]
  3. [blogs.msdn.com/greg_schechter/archive/2006/04/02/566767.aspx The role of the Windows Display Driver Model in the DWM]
  4. [msdn.microsoft.com/en-us/library/dd327290.aspx Cross Process Resource Sharing]
  5. 1 2 3 [www.microsoft.com/whdc/device/display/GraphicsGuideWin7.mspx WHDC: Graphics Guide for Windows 7]. Microsoft (12-06-2009). [www.webcitation.org/67Jpx2fOA Архивировано из первоисточника 1 мая 2012].
  6. [forum.beyond3d.com/showthread.php?t=35048 Intel excuse for no GMA900 WDDM driver: no «HW Scheduler» no driver], Beyond3D, October 26, 2006.
  7. [www.microsoft.com/whdc/device/display/multimonVista.mspx MultiMonitor Support and Windows Vista]. Проверено 20 октября 2007. [www.webcitation.org/67JpwP2F7 Архивировано из первоисточника 1 мая 2012].
  8. [download.microsoft.com/download/5/E/6/5E66B27B-988B-4F50-AF3A-C2FF1E62180F/GRA-T584_WH08.pptx Working With the Windows 7 Graphics Architecture: WinHEC 2008]
  9. [nvidia.custhelp.com/cgi-bin/nvidia.cfg/php/enduser/std_adp.php?p_faqid=2026 Are there Control Panel features that were available under Windows XP that are no longer available on Windows Vista?]
  10. [support.amd.com/us/kbarticles/Pages/26771-stretched-mode-Catalyst-Control-Center.aspx Stretched Desktop or Spanning Mode Not Available in Catalyst Control Center Under Windows Vista]
  11. [support.microsoft.com/kb/283674 Description of DualView in Windows XP]
  12. [www.microsoft.com/whdc/device/display/multimonVista.mspx MultiMonitor Support and Windows Vista]
  13. [msdn.microsoft.com/en-us/library/ee206465.aspx Windows DDK - GDI Hardware Acceleration]. MSDN. Проверено 14 июня 2009. [www.webcitation.org/67Jpxf58R Архивировано из первоисточника 1 мая 2012].
  14. [msdn.microsoft.com/en-us/library/dd835187.aspx Windows DDK - DXVA-HD DDI]. MSDN. Проверено 13 июня 2009. [www.webcitation.org/67JpyFBMu Архивировано из первоисточника 1 мая 2012].
  15. [msdn.microsoft.com/en-us/library/dd835190.aspx Windows DDK - Overlay DDI]. MSDN. Проверено 13 июня 2009. [www.webcitation.org/67Jpymtvl Архивировано из первоисточника 1 мая 2012].
  16. [blogs.msdn.com/greg_schechter/archive/2006/05/02/588934.aspx Greg Schechter’s Blog: Redirecting GDI, DirectX, and WPF applications]
  17. [blogs.msdn.com/e7/archive/2009/04/25/engineering-windows-7-for-graphics-performance.aspx Engineering Windows 7 Graphics Performance]
  18. [download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/PRI023_WH06.ppt WinHEC 2006: Display Driver Logistics And Testing]
  19. [download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/PRI103_WH06.ppt WinHEC 2006: Windows Display Driver Model (WDDM) v2 And Beyond]
  20. Dan Warne. [www.apcstart.com/site/dwarne/2006/06/193/windows-graphics-system-to-be-overhauled Windows graphics system to be overhauled](недоступная ссылка — история). APC Magazine (June 1, 2006). Проверено 2 июня 2006. [web.archive.org/20060615075412/www.apcstart.com/site/dwarne/2006/06/193/windows-graphics-system-to-be-overhauled Архивировано из первоисточника 15 июня 2006].

Ссылки

  • [msdn2.microsoft.com/en-us/library/aa480220 MSDN — WDDM Introduction]
  • [technet.microsoft.com/en-us/windows/aa905088.aspx List of GPUs supporting WDDM]

Отрывок, характеризующий Windows Display Driver Model

Но Пьер, не отвечая, продолжал свою речь.
– Нет, – говорил он, все более и более одушевляясь, – Наполеон велик, потому что он стал выше революции, подавил ее злоупотребления, удержав всё хорошее – и равенство граждан, и свободу слова и печати – и только потому приобрел власть.
– Да, ежели бы он, взяв власть, не пользуясь ею для убийства, отдал бы ее законному королю, – сказал виконт, – тогда бы я назвал его великим человеком.
– Он бы не мог этого сделать. Народ отдал ему власть только затем, чтоб он избавил его от Бурбонов, и потому, что народ видел в нем великого человека. Революция была великое дело, – продолжал мсье Пьер, выказывая этим отчаянным и вызывающим вводным предложением свою великую молодость и желание всё полнее высказать.
– Революция и цареубийство великое дело?…После этого… да не хотите ли перейти к тому столу? – повторила Анна Павловна.
– Contrat social, [Общественный договор,] – с кроткой улыбкой сказал виконт.
– Я не говорю про цареубийство. Я говорю про идеи.
– Да, идеи грабежа, убийства и цареубийства, – опять перебил иронический голос.
– Это были крайности, разумеется, но не в них всё значение, а значение в правах человека, в эманципации от предрассудков, в равенстве граждан; и все эти идеи Наполеон удержал во всей их силе.
– Свобода и равенство, – презрительно сказал виконт, как будто решившийся, наконец, серьезно доказать этому юноше всю глупость его речей, – всё громкие слова, которые уже давно компрометировались. Кто же не любит свободы и равенства? Еще Спаситель наш проповедывал свободу и равенство. Разве после революции люди стали счастливее? Напротив. Mы хотели свободы, а Бонапарте уничтожил ее.
Князь Андрей с улыбкой посматривал то на Пьера, то на виконта, то на хозяйку. В первую минуту выходки Пьера Анна Павловна ужаснулась, несмотря на свою привычку к свету; но когда она увидела, что, несмотря на произнесенные Пьером святотатственные речи, виконт не выходил из себя, и когда она убедилась, что замять этих речей уже нельзя, она собралась с силами и, присоединившись к виконту, напала на оратора.
– Mais, mon cher m r Pierre, [Но, мой милый Пьер,] – сказала Анна Павловна, – как же вы объясняете великого человека, который мог казнить герцога, наконец, просто человека, без суда и без вины?
– Я бы спросил, – сказал виконт, – как monsieur объясняет 18 брюмера. Разве это не обман? C'est un escamotage, qui ne ressemble nullement a la maniere d'agir d'un grand homme. [Это шулерство, вовсе не похожее на образ действий великого человека.]
– А пленные в Африке, которых он убил? – сказала маленькая княгиня. – Это ужасно! – И она пожала плечами.
– C'est un roturier, vous aurez beau dire, [Это проходимец, что бы вы ни говорили,] – сказал князь Ипполит.
Мсье Пьер не знал, кому отвечать, оглянул всех и улыбнулся. Улыбка у него была не такая, какая у других людей, сливающаяся с неулыбкой. У него, напротив, когда приходила улыбка, то вдруг, мгновенно исчезало серьезное и даже несколько угрюмое лицо и являлось другое – детское, доброе, даже глуповатое и как бы просящее прощения.
Виконту, который видел его в первый раз, стало ясно, что этот якобинец совсем не так страшен, как его слова. Все замолчали.
– Как вы хотите, чтобы он всем отвечал вдруг? – сказал князь Андрей. – Притом надо в поступках государственного человека различать поступки частного лица, полководца или императора. Мне так кажется.
– Да, да, разумеется, – подхватил Пьер, обрадованный выступавшею ему подмогой.
– Нельзя не сознаться, – продолжал князь Андрей, – Наполеон как человек велик на Аркольском мосту, в госпитале в Яффе, где он чумным подает руку, но… но есть другие поступки, которые трудно оправдать.
Князь Андрей, видимо желавший смягчить неловкость речи Пьера, приподнялся, сбираясь ехать и подавая знак жене.

Вдруг князь Ипполит поднялся и, знаками рук останавливая всех и прося присесть, заговорил:
– Ah! aujourd'hui on m'a raconte une anecdote moscovite, charmante: il faut que je vous en regale. Vous m'excusez, vicomte, il faut que je raconte en russe. Autrement on ne sentira pas le sel de l'histoire. [Сегодня мне рассказали прелестный московский анекдот; надо вас им поподчивать. Извините, виконт, я буду рассказывать по русски, иначе пропадет вся соль анекдота.]
И князь Ипполит начал говорить по русски таким выговором, каким говорят французы, пробывшие с год в России. Все приостановились: так оживленно, настоятельно требовал князь Ипполит внимания к своей истории.
– В Moscou есть одна барыня, une dame. И она очень скупа. Ей нужно было иметь два valets de pied [лакея] за карета. И очень большой ростом. Это было ее вкусу. И она имела une femme de chambre [горничную], еще большой росту. Она сказала…
Тут князь Ипполит задумался, видимо с трудом соображая.
– Она сказала… да, она сказала: «девушка (a la femme de chambre), надень livree [ливрею] и поедем со мной, за карета, faire des visites». [делать визиты.]
Тут князь Ипполит фыркнул и захохотал гораздо прежде своих слушателей, что произвело невыгодное для рассказчика впечатление. Однако многие, и в том числе пожилая дама и Анна Павловна, улыбнулись.
– Она поехала. Незапно сделался сильный ветер. Девушка потеряла шляпа, и длинны волоса расчесались…
Тут он не мог уже более держаться и стал отрывисто смеяться и сквозь этот смех проговорил:
– И весь свет узнал…
Тем анекдот и кончился. Хотя и непонятно было, для чего он его рассказывает и для чего его надо было рассказать непременно по русски, однако Анна Павловна и другие оценили светскую любезность князя Ипполита, так приятно закончившего неприятную и нелюбезную выходку мсье Пьера. Разговор после анекдота рассыпался на мелкие, незначительные толки о будущем и прошедшем бале, спектакле, о том, когда и где кто увидится.


Поблагодарив Анну Павловну за ее charmante soiree, [очаровательный вечер,] гости стали расходиться.
Пьер был неуклюж. Толстый, выше обыкновенного роста, широкий, с огромными красными руками, он, как говорится, не умел войти в салон и еще менее умел из него выйти, то есть перед выходом сказать что нибудь особенно приятное. Кроме того, он был рассеян. Вставая, он вместо своей шляпы захватил трехугольную шляпу с генеральским плюмажем и держал ее, дергая султан, до тех пор, пока генерал не попросил возвратить ее. Но вся его рассеянность и неуменье войти в салон и говорить в нем выкупались выражением добродушия, простоты и скромности. Анна Павловна повернулась к нему и, с христианскою кротостью выражая прощение за его выходку, кивнула ему и сказала:
– Надеюсь увидать вас еще, но надеюсь тоже, что вы перемените свои мнения, мой милый мсье Пьер, – сказала она.
Когда она сказала ему это, он ничего не ответил, только наклонился и показал всем еще раз свою улыбку, которая ничего не говорила, разве только вот что: «Мнения мнениями, а вы видите, какой я добрый и славный малый». И все, и Анна Павловна невольно почувствовали это.
Князь Андрей вышел в переднюю и, подставив плечи лакею, накидывавшему ему плащ, равнодушно прислушивался к болтовне своей жены с князем Ипполитом, вышедшим тоже в переднюю. Князь Ипполит стоял возле хорошенькой беременной княгини и упорно смотрел прямо на нее в лорнет.
– Идите, Annette, вы простудитесь, – говорила маленькая княгиня, прощаясь с Анной Павловной. – C'est arrete, [Решено,] – прибавила она тихо.
Анна Павловна уже успела переговорить с Лизой о сватовстве, которое она затевала между Анатолем и золовкой маленькой княгини.
– Я надеюсь на вас, милый друг, – сказала Анна Павловна тоже тихо, – вы напишете к ней и скажете мне, comment le pere envisagera la chose. Au revoir, [Как отец посмотрит на дело. До свидания,] – и она ушла из передней.
Князь Ипполит подошел к маленькой княгине и, близко наклоняя к ней свое лицо, стал полушопотом что то говорить ей.
Два лакея, один княгинин, другой его, дожидаясь, когда они кончат говорить, стояли с шалью и рединготом и слушали их, непонятный им, французский говор с такими лицами, как будто они понимали, что говорится, но не хотели показывать этого. Княгиня, как всегда, говорила улыбаясь и слушала смеясь.
– Я очень рад, что не поехал к посланнику, – говорил князь Ипполит: – скука… Прекрасный вечер, не правда ли, прекрасный?
– Говорят, что бал будет очень хорош, – отвечала княгиня, вздергивая с усиками губку. – Все красивые женщины общества будут там.
– Не все, потому что вас там не будет; не все, – сказал князь Ипполит, радостно смеясь, и, схватив шаль у лакея, даже толкнул его и стал надевать ее на княгиню.
От неловкости или умышленно (никто бы не мог разобрать этого) он долго не опускал рук, когда шаль уже была надета, и как будто обнимал молодую женщину.
Она грациозно, но всё улыбаясь, отстранилась, повернулась и взглянула на мужа. У князя Андрея глаза были закрыты: так он казался усталым и сонным.
– Вы готовы? – спросил он жену, обходя ее взглядом.
Князь Ипполит торопливо надел свой редингот, который у него, по новому, был длиннее пяток, и, путаясь в нем, побежал на крыльцо за княгиней, которую лакей подсаживал в карету.
– Рrincesse, au revoir, [Княгиня, до свиданья,] – кричал он, путаясь языком так же, как и ногами.
Княгиня, подбирая платье, садилась в темноте кареты; муж ее оправлял саблю; князь Ипполит, под предлогом прислуживания, мешал всем.
– Па звольте, сударь, – сухо неприятно обратился князь Андрей по русски к князю Ипполиту, мешавшему ему пройти.
– Я тебя жду, Пьер, – ласково и нежно проговорил тот же голос князя Андрея.
Форейтор тронулся, и карета загремела колесами. Князь Ипполит смеялся отрывисто, стоя на крыльце и дожидаясь виконта, которого он обещал довезти до дому.

– Eh bien, mon cher, votre petite princesse est tres bien, tres bien, – сказал виконт, усевшись в карету с Ипполитом. – Mais tres bien. – Он поцеловал кончики своих пальцев. – Et tout a fait francaise. [Ну, мой дорогой, ваша маленькая княгиня очень мила! Очень мила и совершенная француженка.]
Ипполит, фыркнув, засмеялся.
– Et savez vous que vous etes terrible avec votre petit air innocent, – продолжал виконт. – Je plains le pauvre Mariei, ce petit officier, qui se donne des airs de prince regnant.. [А знаете ли, вы ужасный человек, несмотря на ваш невинный вид. Мне жаль бедного мужа, этого офицерика, который корчит из себя владетельную особу.]
Ипполит фыркнул еще и сквозь смех проговорил:
– Et vous disiez, que les dames russes ne valaient pas les dames francaises. Il faut savoir s'y prendre. [А вы говорили, что русские дамы хуже французских. Надо уметь взяться.]
Пьер, приехав вперед, как домашний человек, прошел в кабинет князя Андрея и тотчас же, по привычке, лег на диван, взял первую попавшуюся с полки книгу (это были Записки Цезаря) и принялся, облокотившись, читать ее из середины.