Wddm 2 x, какие видеокарты поддерживают

Обновлено: 01.07.2024

DirectX 12 и WDDM 2.0: переработка графического стека Windows

С технической точки зрения на низком уровне это, возможно, некоторое обобщение, но, тем не менее, верно то, что Windows в ядре относительно стабильна и имеет полный функционал в наши дни. После масштабной переделки Windows Vista (6.0) Windows, наконец, достигла точки, когда ядро ​​и другие низкоуровневые компоненты ОС поддерживали необходимые функции и обладали необходимой стабильностью для поддержки Windows в будущих поколениях. В результате Microsoft никогда существенно не вмешивалась в ядро ​​Windows через Windows 7 (6.1) и Windows 8 (6.2/6.3) — делая небольшие добавления функций там, где это имело смысл — и даже номер версии ядра Windows 10 (10.0) в значительной степени произвольный, явно уходящий корнями в 6.x.

Это не означает, что Microsoft не вносила низкоуровневых изменений, а только то, что эти изменения были более преднамеренными и обусловлены конкретными потребностями. Примером (и переходом к предмету этого раздела) является DirectX 12 и его базовая структура драйвера, модель драйвера дисплея Windows. Даже после выпуска Windows Vista и радикального пересмотра графического стека Microsoft продолжала модифицировать стек на протяжении последующих поколений по мере того, как графические процессоры становились все более гибкими и функциональными. После серии небольших изменений в Windows 7 и Windows 8, для Windows 10 Microsoft вернулась к самым фундаментальным изменениям в графическом стеке со времен Windows Vista более 8 лет назад.


DirectX 12

Изменения Microsoft в конечном счете охватывают и затрагивают несколько аспектов ОС, но основная часть этих изменений вносится для поддержки DirectX 12, нового поколения игрового и мультимедийного API Microsoft. За последний год мы подробно рассмотрели DirectX 12, поэтому для более подробного освещения мы будем ссылаться на соответствующие статьи, но вкратце вот что дает DirectX 12 и почему это имеет большое значение.



Выдержка из анонса Microsoft DirectX 12

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

Стоит сразу же отметить, что низкоуровневое программирование не является чем-то новым или даже чем-то необычным. Большинство высокопроизводительных консольных игр написаны таким образом благодаря тому, что консоли являются фиксированными платформами и поэтому легко позволяют использовать этот стиль программирования. Работая с аппаратным обеспечением на таком низком уровне, программисты могут значительно повысить производительность этого оборудования, поэтому консольные игры выглядят и работают так же хорошо, как и на самом деле, учитывая слабые характеристики консолей по сравнению с аппаратным обеспечением ПК, на котором они основаны. они производные.

Однако о ПК этого сказать нельзя. ПК, являясь гибкой платформой, уже давно работают с высокоуровневыми API, такими как Direct3D 11 и OpenGL. Благодаря мощной абстракции, обеспечиваемой этими высокоуровневыми API, ПК могут поддерживать широкий спектр аппаратного обеспечения в течение гораздо более длительного периода времени. Поскольку низкоуровневое графическое программирование для ПК фактически умерло с DOS и специфическими API-интерфейсами, ПК уступили некоторую производительность удобству и гибкости, которые предлагает абстракция.

Хотя характер этого компромисса с производительностью изменился с годами, требует его переоценки. Как мы подробно рассмотрели в нашем обзоре AMD Mantle, эти компромиссы были установлены в то время, когда производительность процессоров и графических процессоров росла как на дрожжах из года в год. Но за последнее десятилетие или около того ситуация изменилась — производительность процессоров больше не растет быстро, особенно в случае однопоточной производительности. Тактовые частоты ЦП достигли точки, когда более высокие тактовые частоты становятся все более энергозатратными, а «легко висящие плоды» для улучшения IPC ЦП давно исчерпаны. Тем временем графические процессоры продолжают свой невероятный темп роста из-за удручающе параллельного характера рендеринга графики.

В результате, если посмотреть на производительность однопоточного ЦП, графические процессоры значительно опережают рост производительности ЦП. Это само по себе не обязательно является проблемой, но представляет проблему в сочетании с высокоуровневыми API, используемыми для графики ПК. Основная часть работы, которую эти API-интерфейсы выполняют при подготовке данных для графических процессоров, по своей природе является однопоточной, что приводит к замедлению роста производительности ЦП, что создает узкое место.В результате этого разрыва и его постоянно увеличивающегося характера вероятность возникновения узких мест также увеличилась; цена абстракции — это производительность процессора, необходимая для ее обеспечения.


3DMark 2011 CPU Time: Direct3D 11 против Direct3D 12

Низкое Уровневое программирование, напротив, более устойчиво к этому типу узких мест. По-прежнему существует потребность в «главном» потоке и, следовательно, возможность возникновения узких мест в этом главном потоке, но в низкоуровневых стилях программирования нет необходимости в ресурсоемком API и среде выполнения для подготовки данных для графических процессоров. Это значительно упрощает передачу работы нескольким ядрам ЦП, защищая от этого узкого места. Чтобы снова использовать консоли в качестве примера, вот почему они так много способны с таким (относительно) слабым ЦП, поскольку они лучше могут использовать свои несколько ядер ЦП, чем ПК с высоким уровнем программирования.

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

В результате DirectX 12 представляет собой API следующего поколения, который станет основой для графики в Windows 10. Наряду с существенными улучшениями эффективности ЦП и масштабируемости в многопоточности, последняя версия основного Graphics API также представляет некоторые другие функции, которые улучшают состояние компьютерной графики. Это включает в себя ряд разрозненных, но в остальном «аккуратных» графических приемов, таких как асинхронное затенение для более эффективного использования ресурсов графического процессора путем параллельной обработки определенных классов задач рендеринга, а также явные функциональные возможности нескольких адаптеров, которые позволяют использовать интегрированные графические процессоры, имеющиеся на большинстве игровых платформ. внести значимый вклад в процесс рендеринга, а не сидеть сложа руки, как сейчас.


Тем временем в DirectX 12 также представлены некоторые новые графические функции, которые реализуются в соответствии со спецификациями уровня функций 12_0 и 12_1. К ним относятся консервативная растеризация для лучшего расчета покрытия пикселей, представления порядка растра для лучшего контроля над порядком рендеринга и еще более свободная привязка ресурсов для расширения количества ресурсов, которые могут использовать разработчики, и способов их организации. И из-за характера уровней функций большинство этих преимуществ в той или иной форме также доступны существующему API DirectX 11 через DirectX 11.3, хотя, безусловно, основная часть их использования будет в DirectX 12.


Первые коммерческие игры DirectX 12 ожидаются в конце этого года, а в 2016 году появятся новые. Как и многие другие элементы Windows 10, в идеале Microsoft хотела бы быстро ускорить разработку этого нового API, используя бесплатный обновить, чтобы быстро построить установленную базу. Поскольку DirectX 11 потребовались годы, чтобы действительно добиться успеха благодаря упрямому упорству Windows XP, есть большая надежда, что с бесплатным обновлением не будет повторения производительности по сравнению с DirectX 12.

WDDM 2.0

Между тем ниже уровня API в Windows была проделана большая работа на уровне драйверов, чтобы обеспечить функциональность DirectX 12. Хотя полный список этих изменений выходит за рамки простого обзора ОС, возможно, самый важный момент, который следует усвоить, заключается в том, что из-за этих изменений Windows 10 является самой крупной перестройкой графического стека Windows со времен WDDM 1.0 в Windows Vista. Большая часть этого связана с изменениями в том, как работает виртуальная память, которая, хотя и в значительной степени абстрагирована как от пользователя, так и от разработчика, имеет решающее значение для повышения производительности, разблокированного DirectX 12.

Однако из-за этих изменений существует четкое разделение возможностей между Windows 10 и более ранней версией Windows, а также в драйверах для этих двух операционных систем. В то время как графические драйверы для Windows Vista/7/8 распространялись с использованием унифицированного драйвера WDDM 1.x, графические драйверы для Windows 10 распространяются отдельно в виде собственной сборки WDDM 2.0. Большая часть WDDM 2.0 будет скрыта от конечных пользователей, но это будет та область, в которой, хотя и незначительно, пользователи заметят, что что-то изменилось.

Помимо оптимизации памяти и драйверов, WDDM 2.0 также дал Microsoft возможность исправить некоторые незначительные проблемы в работе графического стека. Например, немало усилий было вложено в клонирование нескольких дисплеев — функция, которая никогда не работала так хорошо, как должна была бы, — с новым стеком WDDM 2.0, изменившим способ обработки масштабирования, чтобы он стал более полезным и последовательным. и работает с несколькими графическими процессорами. Эти усовершенствования также внедряются в поддержку Miracast, и там разблокируются дополнительные улучшения, такие как поддержка динамических разрешений и частоты кадров.


Улучшения WDDM 2.0 также являются элементом включения функции Microsoft GameDVR, которая позволяет записывать игровые кадры на уровне ОС. Хорошо это или плохо, но WDDM 2.0 также включает некоторые новые функции DRM, которые развертываются как условие получения защищенного контента 4K (и выше), лицензированного для использования в Windows.

На этой странице описаны функции драйверов дисплея и графики, которые были добавлены в предыдущие версии WDDM 2.X для Windows 10. Чтобы просмотреть функции, добавленные в самую последнюю версию WDDM 2.X, см. раздел Новые возможности дисплея и графики Windows 10. драйверы.

WDDM 2.6

Супервлажные чернила

Super-Wet Ink – это функция, основанная на рендеринге переднего буфера. Драйверы IHV могут поддерживать создание «отображаемых» текстур форматов или режимов, которые не поддерживаются оборудованием. Они могут сделать это, выделив запрошенную приложением текстуру вместе с «теневой» текстурой с форматом/макетом, который можно отобразить, а затем скопировав их между ними в настоящее время. Эта «тень» может не обязательно быть текстурой в обычном понимании, а может быть просто данными сжатия. Кроме того, его существование может не требоваться, а может быть оптимизацией.

Среда выполнения будет развиваться, чтобы понимать следующие аспекты отображаемых поверхностей:

Должна ли существовать тень для отображения на конкретном VidPnSource/плоскости.

Оптимальнее ли существование тени.

Когда переносить содержимое с поверхности приложения на теневую поверхность. Среда выполнения будет явно указывать эту операцию, а не подразумевать ее в Present.

Как запросить установку режима или динамическое переключение между исходной и теневой поверхностями.

Сканирование может начинаться вскоре после VBlank, сканировать изображение вертикально сверху вниз и завершаться незадолго до следующего VBlank. Это не всегда так, в зависимости от синхронизации пиксельных часов и расположения данных в текстуре; особенно если на самом деле доступно сжатие.

Новые DDI были добавлены для разделения и понимания преобразований, которые происходят до сканирования, чтобы (когда это возможно) включить рендеринг переднего буфера. См. D3DWDDM2_6DDI_SCANOUT_FLAGS и PFND3DWDDM2_6DDI_PREPARE_SCANOUT_TRANSFORMATION.

Затенение с переменной скоростью

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

В предыдущей модели, чтобы использовать MSAA (многовыборочное сглаживание) для уменьшения геометрического наложения:

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

В WDDM 2.6 новая модель расширяет MSAA в противоположном, грубом направлении пикселей, добавляя новую концепцию грубого затенения. Здесь затенение может быть выполнено с частотой более грубой, чем пиксель. Группа пикселей может быть закрашена как единое целое, а затем результат передается всем образцам в группе.

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

Доступна многоуровневая реализация с двумя запрашиваемыми пользователем ограничениями. Для уровней 1 и 2 грубое затенение доступно как для ресурсов с одиночной выборкой, так и для ресурсов MSAA. Для ресурсов MSAA затенение может выполняться для каждого грубого пикселя или для каждого образца, как обычно. Однако на уровнях 1 и 2 для ресурсов MSAA грубая выборка не может использоваться для затенения с частотой между пиксель и выборка.

Скорость затенения может быть указана только для каждого отрисовки; ничего более детального, чем это

Коэффициент затенения единообразно применяется ко всему, что нарисовано, независимо от того, где оно находится в целевом объекте рендеринга

Скорость затенения может быть указана для каждого тиража, как в уровне 1. Она также может быть указана комбинацией для каждого тиража и:

  • Семантика из провоцирующей вершины и
  • Изображение экрана.

Скорости затенения из трех источников объединяются с помощью набора объединителей

Размер фрагмента изображения экранного пространства – 16 x 16 или меньше. Скорость затенения, запрошенная приложением, гарантированно будет доставлена ​​точно (для точности временных и других фильтров реконструкции)

Поддерживается вход SV_ShadingRate PS. Скорость вызывающих вершин, также называемая здесь скоростью для примитива, действительна только в том случае, если используется одно окно просмотра и в него не записывается SV_ViewportIndex.

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

Сбор диагностической информации

Сбор диагностической информации позволяет ОС собирать личные данные из драйверов графических адаптеров, которые состоят из функций рендеринга и отображения. Эта новая функция является обязательным требованием WDDM 2.6.

Новый DDI должен позволять ОС собирать информацию в любой момент загрузки драйвера. В настоящее время ОС использует функцию DxgkDdiCollectDebugInfo, реализованную мини-портом, для запроса личных данных драйвера для случаев, связанных с TDR (обнаружение тайм-аута и восстановление). Новый DDI будет использоваться для сбора данных по разным причинам. ОС будет вызывать этот DDI, когда потребуется диагностика, предоставляющая тип запрашиваемой информации. Драйвер должен собрать всю личную информацию, важную для расследования проблемы, и отправить ее в ОС. DxgkDdiCollectDebugInfo в конечном итоге будет объявлен устаревшим и заменен на DxgkDdiCollectDiagnosticInfo.

Фоновая обработка

Фоновая обработка позволяет драйверам пользовательского режима выражать желаемое поведение потоков, а среде выполнения управлять/отслеживать его. Драйверы пользовательского режима будут запускать фоновые потоки и назначать потокам как можно более низкий приоритет, а также полагаться на планировщик NT, чтобы гарантировать, что эти потоки не нарушат работу потоков критического пути, как правило, с успехом.

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

Горячее обновление драйвера

Горячее обновление драйверов максимально сокращает время простоя сервера, когда необходимо обновить компонент ОС.

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

WDDM 2.5

Отслеживаемые рабочие нагрузки

Отслеживаемые рабочие нагрузки – это экспериментальная функция, которая обеспечивает больший контроль над компромиссом между более быстрой работой процессора и более низким энергопотреблением. Она недоступна до дальнейшего уведомления. Реализация удалена из Windows 10 версии 2003; и устарело в более ранних версиях ОС как часть исправления безопасности.

Изменения содержания

< /tr>

Трассировка лучей

Новые DDI Direct3D были созданы параллельно с API Direct3D для поддержки трассировки лучей с аппаратным ускорением. Примеры DDI включают:

Для получения дополнительной информации о трассировке лучей см.:

Синхронизация отображения

ОС проверит возможности синхронизации дисплея, когда драйвер предоставит ОС доступ к дисплею, то есть до включения дисплея. Для дочерних устройств TypeIntegratedDisplay об этом сообщается посредством вызова DxgkDdiQueryAdapterInfo с Type DXGKQAITYPE_INTEGRATED_DISPLAY_DESCRIPTOR2 во время инициализации адаптера. Для дочерних устройств TypeVideoOutput, которые поддерживаются, начиная с WDDM 2.5, о возможностях сообщается как часть обработки горячей замены через DxgkDdiUpdateMonitorLinkInfo, поэтому возможности могут меняться в зависимости от целевого или подключенного монитора.

ОС указывает синхронизацию отображения в вызове DxgkDdiSetTimingsFromVidPn в поле ввода в структуре DXGK_SET_TIMING_PATH_INFO для каждого пути.

WDDM 2.1

WDDM 2.1 поддерживает новые сценарии и обеспечивает значительные улучшения в области производительности, надежности, отказоустойчивости при обновлении, улучшения диагностики и будущие усовершенствования системы для графической подсистемы Windows. Модель драйвера WDDM 2.0 необходима для D3D12. WDDM 2.0 и DirectX12 доступны только в Windows 10 и более поздних версиях.

Ниже приведен список дополнений и обновлений функций для WDDM 2.1.

  • Предлагайте и возвращайте ресурсы — предлагайте и возвращайте улучшения, чтобы уменьшить объем памяти, занимаемой приложениями, работающими в фоновом режиме.
  • Поддержка кодирования 2 МБ записи таблицы страниц. В WDDM 2.1 включено кодирование больших записей таблицы страниц (PTE) в VRAM. Это изменение повышает производительность систем, которые его поддерживают.
  • Поддержка страниц памяти размером 64 КБ. Выделение виртуальной памяти с шагом 64 КБ также поддерживается в WDDM 2.1. Это изменение особенно полезно для APU и SoC, так как снижает нагрузку на доступ к страницам виртуальной памяти.

Аппаратные улучшения защищенного контента с помощью представления пакетов (PlayReady 3.0)

Установка в магазине драйверов для графических драйверов для повышения отказоустойчивости при обновлении драйверов.

Графическая технология DirectX 12 с наддувом в Windows 10 может произвести революцию в компьютерных играх, но только в том случае, если ваше оборудование поддерживает ее.

Почему я не вижу активного DirectX 12 в Windows 10?

Этот вопрос мы уже много раз слышали этим утром в различных социальных сетях. Потому что, хотя игры, использующие графическую технологию с наддувом DirectX 12, не выйдут на улицы до конца года, сама DX12 поставляется с Windows 10, и многие люди все еще видят DirectX 11 или 10 в списке при запуске dxdiag в Windows 10. .

Возвращаясь к вопросу: почему? Это просто. Ваше оборудование также должно поддерживать DirectX 12. Если это не так, вы увидите установленную более старую версию DirectX. (Возможно, вам также потребуется обновить драйверы, о чем мы расскажем позже.)

Вот список всех видеокарт и встроенных графических процессоров, поддерживающих DirectX 12:

Все новые видеокарты, такие как EVGA GTX 980 FTW и Asus Strix Fury, поддерживают DirectX 12.

Nvidia: видеокарты GeForce серий 600, 700 и 900, серия GTX Titan

Особенно следует отметить, что Nvidia пообещала совместимость с DirectX 12 для старых видеокарт на базе своих графических процессоров Fermi, а именно для серий GeForce 400 и 500. Сегодня утром Nvidia опубликовала статью в базе знаний, в которой говорится, что, хотя совместимость с Fermi еще не завершена, она еще не поддерживает DirectX 12, о чем впервые сообщила Anandtech. облом. К счастью, первые игры DX12 не ожидаются до праздников, так что у Nvidia есть достаточно времени, чтобы наверстать упущенное.

Если ваш графический процессор поддерживает DirectX 12, но вы по-прежнему видите более раннюю версию DirectX, попробуйте зайти на веб-сайт поставщика графики и загрузить последние доступные драйверы — Intel, AMD и Nvidia выпустили драйверы для Windows 10. Обязательно разрешите Windows 10 также проверять наличие всех доступных обновлений. А если вы по-прежнему не видите DX12, попробуйте перезагрузить систему. Несколько пользователей сообщили, что сразу после обновления до Windows 10 увидели DX11, но после перезагрузки переключились на DX12.

Несмотря на то, что DirectX 12 установлен и работает в последней общедоступной версии Windows 10, он и многие связанные с ним компоненты все еще находятся в стадии разработки. Сама Windows 10 все еще неполноценна, поэтому то, что мы здесь сегодня рассматриваем, даже не может считаться бета-версией программного обеспечения. В результате сегодняшнее превью следует воспринимать именно так: раннее превью. Все еще есть ошибки, а производительность и совместимость могут быть изменены. Но на данный момент все пройдено достаточно далеко, и мы наконец можем получить разумное представление о том, на что способен DirectX 12.

С технической точки зрения API DirectX 12 — это лишь часть общей картины. Как и последние несколько небольших обновлений Microsoft DirectX 11, DirectX 12 идет рука об руку с новой версией модели драйвера дисплея Windows, WDDM 2.0. На самом деле WDDM 2.0 — это самое большое изменение в WDDM с тех пор, как модель драйвера была представлена ​​в Windows Vista, и в результате сам DirectX 12 представляет собой очень масштабную перестройку экосистемы графических процессоров Windows.


Вверху: Radeon R9 290X. Внизу: GeForce GTX 980


Майкрософт пока не опубликовала слишком много подробностей о WDDM 2.0 — дополнительная информация будет опубликована на GDC 2015, — но WDDM 2.0 основан на включении DirectX 12, добавлении необходимых функций в ядро ​​и драйверы дисплея для поддержки API над ним. Среди функций, связанных с WDDM 2.0, — явное управление памятью DX12 и динамическая индексация ресурсов, обе из которых не были бы так эффективны в WDDM 1.3. WDDM 2.0 также отвечает за некоторые базовые оптимизации эффективности ЦП в DX12, такие как изменения в том, как обрабатывается резидентность памяти и как приложения DX12 могут более явно контролировать резидентность.

Переработка WDDM для версии 2.0 означает, что графические драйверы затронуты так же, как и ОС, и, как и Microsoft, NVIDIA и AMD готовятся к WDDM 2.0 с обновленными графическими драйверами. Работа над этими драйверами еще не завершена, поэтому не все аппаратные средства поддерживаются и не все ошибки устранены.

Короче говоря, последние продукты AMD и NVIDIA поддерживают WDDM 2.0, но не все их более ранние продукты. В случае AMD карты GCN 1.0 поддерживаются их драйвером WDDM 2.0, но мы сталкиваемся с проблемами текстурирования в Star Swarm, которых нет в GCN 1.1 и более поздних версиях. Между тем, в случае с NVIDIA, как это обычно бывает с бета-драйверами NVIDIA, они поставляются только с включенной поддержкой своих новых графических процессоров — Kepler, Maxwell 1 и Maxwell 2 — с отключенной поддержкой Fermi. И AMD, и NVIDIA уже обязались поддерживать DirectX 12 (и, соответственно, WDDM 2.0) в GCN 1.0 и более поздних версиях и Fermi и более поздних версиях соответственно, поэтому, хотя мы не можем протестировать эти продукты сегодня, они должны работать к моменту выхода DirectX 12. .

На данный момент также отсутствует определение для DirectX 12 Feature Level 12_0 и DirectX 11 11_3. Помимо самого низкоуровневого API, DirectX 12 и его высокоуровневый аналог DirectX 11.3 представят новые функции рендеринга, такие как объемные мозаичные ресурсы и консервативная растеризация. Хотя все перечисленные выше видеокарты будут поддерживать низкоуровневый API DirectX 12, только самые новые видеокарты будут поддерживать FL 12_0 и, следовательно, будут полностью совместимы с DX12 как по функциям, так и по API. Как и многие другие аспекты DirectX 12, Microsoft приберегает обсуждение уровней функций для GDC, и тогда мы должны выяснить, каковы будут окончательные требования к функциям и какие текущие карты (если таковые имеются) будут полностью поддерживать FL 12_0.

Наконец, с объявлением Microsoft о своих планах на Windows 10 в прошлом месяце, Microsoft также наконец проясняет свои планы по развертыванию DirectX 12. Поскольку DirectX 12 и WDDM 2.0 привязаны к бедру и, соответственно, привязаны к Windows 10, DirectX 12 будет доступен только в Windows 10. Windows 8/8.1 и Windows 7 не будут получать поддержку DirectX 12.

Для обратного переноса DirectX 12 на более ранние ОС потребуется также резервный перенос WDDM 2.0, что влечет за собой несколько проблем, связанных с тем, что WDDM 2.0 является компонентом ядра. Microsoft придется либо пойти на компромисс с функциями WDDM 2.0, чтобы заставить его работать на этих старых ядрах, либо, в качестве альтернативы, придется более радикально пересмотреть эти ядра, чтобы они соответствовали полному набору функций WDDM 2.0, что является серьезной инженерной задачей и несет в себе значительный риск поломки более ранних установок Windows. Microsoft уже пробовала это один раз, перенося части Direct3D 11.1 и WDDM 1.2 в Windows 7, только чтобы обнаружить, что даже у этого меньшего проекта были проблемы с совместимостью. Бэкпорт DirectX 12, в свою очередь, был бы еще более проблематичным.

Хорошая сторона всего этого заключается в том, что с планами Microsoft предложить Windows 10 в качестве бесплатного обновления для пользователей Windows 7/8/8.1 проблема в значительной степени становится спорной. Хотя DirectX 12 не переносится, пользователи Windows вместо этого смогут бесплатно перейти на новую версию, поэтому, в отличие от Windows 8, не потребуется тратить деньги на новую ОС только для того, чтобы получить доступ к последней версии DirectX. Это, в свою очередь, согласуется с общими планами Microsoft по переводу всех пользователей Windows на Windows 10 вместо того, чтобы позволить рынку быть фрагментированным между различными версиями Windows (и рисковать повторением еще одной XP), поэтому откровение о том, что DirectX 12 не будет перенесено обратно, в значительной степени было ожидается с момента объявления Microsoft Windows 10.


Между тем, мы не будем слишком долго останавливаться на этой теме, но DirectX 12, ограниченный Windows 10, открывает окно возможностей для Mantle и OpenGL Next. Поскольку Mantle уже работает с Windows 7/8, а OpenGL Next, как ожидается, будет аналогично переносимым, эти API будут единственными низкоуровневыми API, доступными для более ранних пользователей Windows.

Читайте также:

Тема Дата Описание
Расширение EDID ( VSDB) для HMD и специализированных дисплеев 03.12.2018 Спецификация для производителей дисплеев
Подсистема графического ядра DirectX (Dxgkrnl .sys) 04.12.2018 Интерфейсы режима ядра, которые операционная система Windows реализует через подсистему графического ядра Microsoft DirectX (Dxgkrnl.sys).
Возможности WDDM 2.1 10.01.2019 Описывает новые и обновленные функции WDDM 2.1