Directx 12 что он даст. ⇡ Многопоточное исполнение инструкций драйвера

Всех приветствую. Так как я являюсь сотрудником Microsoft и внутренним тестировщиком сборок Windows, то я время от времени на канале выпускаю инсайдерскую информацию и этот выпуск не станет исключением. Значит, во-первых, Microsoft отказывается от развития Windows 10, так как компания поняла, что двигается не в правильном направлении. Обновление Spring Creators Update будет последним и никакого Redstone 5 ожидать не стоит. Если вы помните, Microsoft во времена Windows 8 заявляла, что больше никаких новых номерных частей Windows не будет. Тоже самое мы слышали и в случае с Windows 10, но Microsoft умеет крутить вокруг пальца. Windows 7 вышла в 2009 году, Windows 8 в 2012, Windows 10 в 2015 году, а в свою очередь Windows 11, согласно секретной дорожной карте, выйдет уже в конце 2019 года. Новая ОС вернется к истокам и будет очень сильно похожа на Windows 7. Windows 10 версии LTSB (LTSC) понравилась большинству пользователей и Microsoft на основе отзывов этих же пользователей решила глобально переработать систему. Компания полностью выпилит Metro-приложения и сконцентрируется на классических Win32-приложениях, так как по словам Microsoft за ними будущее. Вернется Aero и привычная прозрачность в интерфейс системы.

Магазин Microsoft Store будет полностью выпилен из системы, а стандартные приложения вернутся на свои места, также, как и игры по типу Косынки и Паучка. Сервисы Xbox также будут выпилены из системы, а на замену им придет сервис Steam, который будет предустановлен в операционную систему. Позже ожидается поддержка на уровне системы приложений по типу Origin и Uplay.

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

Также вернется браузер Internet Explorer. В Windows 10 Microsoft заменила его на новый браузер Edge, но браузер настолько вышел неудачным, что компания приняла решение вернуться с старому доброму Internet Explorer. Браузер обновится до 12-й версии и будет построен на сильно модифицированном движке Trident, благодаря чему новый IE получит поддержку современных веб-технологий. Многие полезные вещие, такие как расширения и возможность чтения различных PDF-документов станет возможным и в новой версии браузера Internet Explorer.

Еще возобновиться разработка Windows Media Player. Новая 13-я версия получит современный интерфейс и поддержку новых форматов аудио.

Меню Пуск вернут к классическому виду без использования Metro-плиток и прочей ереси. Но помимо всего прочего Windows 11 получит функцию по управлению вкладками в проводнике, о которой слухи ходят уже давно.

Скайп будет также интегрирован в Windows 11, но только десктопная версия, так как его Modern-версия никому особо не нравилась.

Помимо этого, Microsoft вместе с Windows 11 выпустит также и DirectX 13. Новый API должен стать допиленной версией DirectX 12, так как DX12 сам по себе оказался довольно сырым интерфейсом прикладного программирования, но стоит отметить, что только новые видеокарты будут поддерживать DirectX 13. Новый API будет в несколько раз быстрее API DirectX 12. Хоть это и звучит невероятно, но дело в том, что компания Microsoft занимается также в сфере искусственного интеллекта и разработкой квантового компьютера. Некоторые наработки войдут в новый интерфейс прикладного программирования, в том числе новая технология по трассировке световых лучей. Игры с поддержкой DirectX 13 ожидаются уже в следующем году и по идее данный API повторит успех DirectX 9 и DirectX 11.

Готовящийся Office 2019 будет отныне интегрирован в систему, а сама система Windows 11 будет и вовсе бесплатной.

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

Не слушайте людей, которые что-то говорят про Windows 10 и про единую ОС, все это неправда. Будет в этом году Windows 11, а в 2022 – Windows 12. Windows 12 вообще должна возвести функционал в Абсолют, но пока разработка сконцентрирована только на Windows 11.

А что вы ждете от Windows 11? Напишите об этом в комментариях.

Прочитано 22971 раз Последнее изменение Вторник, 08 Январь 2019 01:48

На сайте есть одна очень популярная статья, которая писалась давным давно. Когда выйдет ? Теперь можно с уверенностью ответить на это вопрос.


Анонс DirectX 12 намечен на 20 марта. Подробностей пока не сообщается, но кое-что очевидно уже сейчас. Собственно что нового вообще может дать 12-й директХ???

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


Как лучик света среди всего этого безобразия засверкал выход нового API Mantle, который способен ЭФФЕКТИВНО (т.е. по-настоящему эффективно) задействовать при работе с графикой все 8 ядер/потоков CPU. В итоге мы смогли убедиться в очень серьезном росте скорости Mantle VS DirectX 11.1 в том же DICE Frostbyte 3 BATTLEFIELD 4.

Понятно что Microsoft в таких условиях не может сидеть сложа руки! И хотя основные нововведения DirectX 12 еще не озвучены — главным будет ЭФФЕКТИВНОЕ распределение нагрузки на процессор. Если этого вдруг не произойдет, то Microsoft может выкинуть DirectX 12 на помойку.

На каких конкретно ОС будет работать DirectX 12 не сообщается, но вероятно это будет Windows 8 или 9 для стимулирования перехода. По крайней мере лично меня только это может согнать с Windows 7.

20 марта, в рамках конференции GDC 2014, состоялся анонс следующей версии DirectX 12. Основным ядром DirectX являетcя Direct3D, именно на нем создаются наиболее критичные компоненты игровых приложений. Команда разработки внесла ряд изменений в Direct3D, в результате которых возросла скорость и эффективность многих графических операций. Эти изменения позволяют создавать более детальные сцены и достичь полного использования возможностей современных GPU. Но эти возможности появятся не только в «хай-энд» игровых компьютерах. Direct3D 12 будет работать на всех устройствах Microsoft. Телефоны, планшеты, ноутбуки, десктопы и конечно, Xbox One, все они позволят использовать API Direct3D 12.

Что делает Direct3D 12 лучше, чем предыдущие версии? В первую, и самую главную очередь, это более низкий уровень абстрагирования оборудования. Это позволяет играм значительно улучшить поточную масштабируемость и уровень использования GPU. В дополнение, игры получат выигрыш от таблиц дескрипторов и объектов состояния конвейера. Это конечно не все, Direct3D включает набор новых возможностей для конвейера рендера, которые могут в разы увеличить эффективность расчетов прозрачности, определения коллизий и геометрической выбраковки.

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

Да, чтобы не забыть – DirectX 12 будет работать на многих существующих видеокартах.

Это маркетинговая уловка?

Команда разработки прочитала множество комментариев в твиттере и форумах, в которых часто задается вопрос – это действительно технологическое обновление или маркетинговый отдел просто получил бюджет на раскрутку нового индекса к версии? Все что вы прочитаете ниже исходит напрямую от команды которая занимается разработкой DirectX на протяжении 20 лет.

Это именно наша работа - создавать API, и мы работали вместе с нашими партнерами производителями ПО и железа, для того чтобы доказать значительные улучшения производительности Direct3D 12. Те новинки, которые включены в Direct3D 12, не являются хаками каких-то микро-бенчмарков. Цифры, которые мы получили, базируются на коммерческих играх и признанных бенчмарках, протестированных на альфа версии. Скриншоты, которые вы увидите были сделаны на реальных Direct3D 12 приложениях с реальной реализацией рантайма и драйверов Direct3D 12.

3DMark – поточное масштабирование +50% к утилизации CPU

Если вы заядлый геймер, то наверняка знаете о 3DMark . Это отличный инструмент оценки производительности на большом спектре устройств и железе. 3DMark работающий на Direct3D 11 позволяет использовать поточное масштабирование, но из-за некоторых накладок, связанных с рантаймом и драйверами, существует холостое время ожидания потоков и ядер. После переноса 3DMark на Direct3D 12 мы увидели два значительных улучшения – 50% прироста к утилизации CPU и улучшение распределения работы между потоками.

Direct3D11
Direct3D 12

Forza Motorsport 5 Tech Demo – консольная эффективность на PC

Forza Motorsport 5 это пример игры которая выжимает максимум из XboxOne. Под капотом Forza находится низкоуровневый API взаимодействия с графической подсистемой консоли. Традиционно, такой уровень эффективности достижим только на унифицированном железе. Теперь такая возможность, даже в альфа версии, есть и на компьютере, и даже на телефоне. При переносе кода графического ядра, базирующегося на Direct3D 11.1, команда Turn 10 добилась такого же уровня оптимизации на PC, и все благодаря возможностям Direct3D 12.

Откуда взялась такая производительность?

Direct3D 12 отходит от старой модели программирования Direct3D 11, позволяя приложению быть значительно ближе к железу как никогда ранее. Мы пересмотрели значительное количество областей API ключевыми из которых являются механизмы представления состояний конвейера, методы отправки заданий и доступ к ресурсам.

Объекты состояний конвейера

Direct3D11 позволяет манипулировать состояниями конвейера через большой набор перекрестных объектов. Например, состояние входного ассемблера, состояние пиксельного шейдера, состояние растеризатора и состояние выходного смесителя, все они могут быть изменены независимо. Этот механизм предоставляет удобный, относительно высокоуровневый уровень представления графического конвейера, но к сожалению, он не очень хорошо ложится на современное железо. В первую очередь из-за того, что существуют взаимозависимости между многими состояниями. Например, многие GPU комбинируют состояние пиксельного шейдера и выходного смесителя в одно аппаратное представление. Direct3D 11 API позволяет менять их состояние независимо, но драйвер не может разрешить это пока не будет знать что состояние завешено, а это не возможно до начала отрисовки. Это приводит к задержкам при установке состояний железа, означает издержки и меньшее количество вызовов отрисовки на каждый кадр.

Direct3D 12 позволяет решить эту проблему унифицируя большую часть состояния конвейера в неизменяемый объект состояния конвейера (ОСК), который фиксируется сразу же после его создания. Это позволяет железу и драйверу немедленно превратить ОСК в соответствующие аппаратные инструкции, а состояние необходимо для выполнения работы GPU. При этом можно динамически выбирать, какой ОСК на текущий момент необходимо использовать. Теперь остается только скопировать в аппаратные регистры небольшой объем заранее просчитанного состояния, вместо вычисления аппаратного состояния на лету. Это означает значительно меньший объем накладных расходов между вызовами отрисовки, и большее количество вызовов отрисовки на каждый кадр.

Пакеты и списки команд

В Direct3D 11 все задания отправляются с помощью непосредственного контекста, который представляет один ряд команд, отправляющихся в GPU. Для многопоточного масштабирования производительности игры используют отложенные контексты, но, как и в случае ОСК, отложенные контексты не соответствуют реальному положению вещей в железе.
Direct3D 12 предоставляет новую модель для отправки заданий, базирующуюся на списках команд. Они содержат всю необходимую информацию для исполнения в GPU. В список команд входит ОСК, текстурные и буферные ресурсы, а также аргументы для команды отрисовки. В связи с тем, что список команд автономен и не содержит состояния, драйвер может заранее просчитать необходимые GPU команды в независимом потоке. Необходим лишь процесс сериализации при финальной отправке списка команд в GPU который производится через очередь команд, и этот процесс очень эффективен.

В дополнение к спискам команд, в Direct3D 12 включен механизм вторичного предварительного вычисления с помощью пакетов. В отличие от списков команд, которые полностью автономны, и обычно создаются, отправляются для выполнения, а затем уничтожаются, пакеты предоставляют некую форму независимости от состояния и подразумевают повторное использование. Например, если игре необходимо отобразить две модели персонажей с разными текстурами, одним из подходов будет запись списка команд с двумя наборами идентичных вызовов отрисовки. Другим подходом является запись одного пакета который отрисует одного персонажа, а затем «перемотки назад» пакета дважды в списке команд, используя разные ресурсы. В последнем случае драйверу необходимо вычислить инструкции только единожды, а создание списка команд по существу равно двум вызовам функций с низкой стоимостью.

Дескрипторы кучи и таблицы

Привязка ресурсов в Direct3D 11 хорошо абстрагирована и достаточно удобна, но при этом многие возможности современного железа остаются не у дел. В Direct3D 11 игра создает объекты «представления», затем привязывает эти представления к «слотам» на различных этапах шейдера в конвейере. Шейдеры в свою очередь читают данные из этих явно привязанных слотов, которые фиксированы в момент отрисовки. Такая модель означает что в случае если игре надо сделать отрисовку используя другой набор ресурсов, необходимо сделать повторную привязку представлений к другим слотам и заново вызвать отрисовку. Это еще один пример накладных расходов, которые могут быть устранены если полностью использовать современные возможности железа.

Direct3D 12 меняет модель привязки чтобы соответствовать современным возможностям и значительно увеличивает производительность. Вместо того чтобы требовать автономные ресурсные представления и явную привязку к слотам, Direct3D 12 предоставляет кучу дескрипторов где игра создает свои представления ресурсов. Такой механизм позволяет GPU напрямую и авансом записывать аппаратное представление описания ресурса в память. Для декларации того, какой ресурс будет использован в конвейере для конкретного вызова отрисовки, игра указывает одну или несколько дескрипторных таблиц, которые представляют суб-диапазон полной кучи дескрипторов. Так как эта куча заранее загружена необходимыми специфичными для оборудования данными, изменение таблицы дескрипторов является очень дешевой операцией.

В дополнение к улучшениям, связанным с дескрипторной кучей и таблицами, Direct3D 12 позволяет динамически индексировать ресурсы в шейдерах. Это предоставляет беспрецедентную гибкость и открывает дорогу к новым техникам рендера. Например, современные движки рендера, основанные на отложенном подходе, часто кодируют материал или идентификатор объекта какого-то типа в предварительный g-буфер. В Direct3D11 такие движки должны быть осторожны в использовании слишком большого количества материалов, так как включение множества g-буферов может значительно снизить скорость финального прохода отрисовки. Вместе с динамически индексируемыми ресурсами, сцена с тысячей материалов может быть финализирована так же быстро как и с десятью.

Хотите быть одним из первых?

Если вы профессиональный разработчик игр и предполагаете, что Direct3D 12 может ускорить производительность вашего приложения, вы можете подать

DirectX 12 - это особый компонент, обеспечивающий слаженную работу ОС и других приложений, в основном игр, с драйверами видеокарты.

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

Немного предыстории

Хотя он часто воспринимается как неотъемлемая часть каждой Windows, на самом деле впервые DirectX появился во втором пакете обновления для Windows 95. Он представляет собой комплексный набор различных модулей, объединенных под общим названием «интерфейс прикладного программирования» (application programming interface или API). Каждый из них выполняет многочисленные и разнообразные функции, но их главная цель заключается в обеспечении прямого доступа для различных мультимедийных и видеопрограмм (в основном игры, конечно) к аппаратной части компьютерной системы, работающей под управлением Windows.

До появления первой версии DirectX (которая носила серийный номер 2.0а) с Windows 95 Service Release 2, запуск и выполнение подобных приложений (игр) был громоздким и сложным процессом. Чтобы получить прямой доступ к аппаратному обеспечению, программа обращалась к DOS – предшественник Windows без графического интерфейса. Это был, мягко говоря, неэффективный механизм использования компонентов, таких как оперативная память, видео и звуковая карта и т.д.

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

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

В начале принятие нового API пошло сравнительно медленно, особенно на фоне достаточно сильной конкуренции со стороны появившегося несколькими годами ранее OpenGL. Постепенно, однако, DirectX становился все лучше и лучше, и сегодня практически в одиночку доминирует в мире компьютерных видеоигр – по крайней мере, на платформе Windows.

Счастливый номер 12

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

Правда в том, что все последнее десятилетие – с момента появления версии 10, Microsoft в основном «лежала на старых лаврах», если говорить о DirectX. Доминирующее положение интерфейса (и Windows в частности) в сегменте PC сделало компанию немного ленивой, и в результате большинство улучшений в версиях 10 и 11 были скорее эволюционными, чем революционными. Каждая из этих версий получила промежуточные обновления, которые добавили относительно небольшие оптимизации и новые, но не особенно впечатляющие возможности.

В отличие от них версия 12 является большим, решительным шагом вперед не только для DirectX в частности, но и для Microsoft в целом.

Поскольку Windows 10 будет единой платформой, работающей на смартфонах, планшетах, ноутбуках, настольных компьютерах и игровых консолях (Xbox One), появление DirectX 12 отразится на гораздо более широком спектре аппаратных устройств.

Владельцам Xbox One, например, новый интерфейс обещает ускорение возможностей рендеринга и, следовательно, более красивые на вид игры. Более того, в Microsoft надеются, что переход к DirectX 12 уничтожит превосходство их главного конкурента – консоли Sony PlayStation 4, которая в настоящее время предлагает более высокую вычислительную мощность, чем Xbox One. Например, новый API позволит разработчикам игр получить более быстрый доступ к высокопроизводительному ESRAM буферу Xbox, а это в свою очередь приведет к росту количества кадров в секунду.

DirectX 12 обещает и ускорение приборной панели Xbox One, как и полноценную поддержку 4К видео.

Новая жизнь для старых компьютеров

Другое очень интересное обещание, связанное с DirectX 12, звучит так: оптимизация. Microsoft говорит, что только с обновлением до Windows 10 (и DirectX соответственно) мультимедийная (т.е. игровая) производительность вашего компьютера может увеличиться почти в два раза. А предварительные тесты PCWord показали, что рост может быть даже больше.

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

Сегодня практически все актуальные компьютеры, будь то мобильные или настольные, рассчитывают на процессор с более чем одним вычислительным ядром. Более того – в современных графических процессорах количество ядер измеряется тысячами.

Возвращаясь в прошлое, когда Intel закончила «войну за мегагерцы» и приняла концепцию повышения производительности посредством параллелизма, т.е. путем разделения операций/расчетов между двумя и более процессорными ядрами, тогдашнее программное обеспечение было не готового к такому гигантскому скачку вперед.

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

Поэтому замена одноядерного на двух- или четырехъядерный процессор, несомненно, приводила к росту производительности, но не так драматично, как ожидали пользователи.

Одна из основных задач нового DirectX 12 как раз таки и заключается в том, чтобы позволить играм по максимуму использовать все доступные ядра процессора и нагружать их на полную мощность. Эффект от такой оптимизации мягко говоря впечатляет – результаты в популярном тесте 3D Mark показывают 10-15-кратное увеличение производительности при переходе от DirectX 11 к DirectX 12!

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

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

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

И наконец – DirectX 12 подготовит Windows для нового мира разрешения 4К, которое мы надеемся, закрепится в мире ПК в ближайшие несколько лет.

Отличного Вам дня!

В разделе на вопрос когда выйдет DirectX 12 ? уже спецификации готовы? заданный автором Забросать лучший ответ это Геймеры всего мира, веб-дизайнеры и разработчики графических приложений с нетерпением ждут выхода в свет нового DirectX 12. Официального освещения своего нового продукта компания Microsoft пока не делала, тем не менее, некоторые предположения о его возможностях можно сделать уже сейчас.
Предполагается, что в 12 версии будет значительно улучшена работа с текстурами и процедурными картами. Необходимость использования процедурных карт обусловлена их применением в некоторых профессиональных программах по работе с графикой (таких как 3Ds Max), однако современные видеокарты с DirectX 11 не способны поддерживать эти методы.
В DirectX 11 наконец-таки была реализована аппаратная тесселяция, существенно усилившая геометрию. Ожидается, что в следующей версии этой функции будет уделено максимум внимания, в связи с чем потребуется усиление блоков, отвечающих за ее реализацию (например, у Nvidia это PolyMorhh).
Также можно сделать предположение о намерении использовать в DirectX 12 методов глобального освещения. Конечно, рассчитывать на то, что эти методы будут распространяться на всю картинку несколько преждевременно, но в реализации отдельных объектов они могут быть использованы уже в ближайшем будущем.