Что нужно для directx 12
Что такое DirectX 12 и какие преимущества он несет?
Что такое DirectX 12 и какие преимущества он несет?
Мини-приложения для 11
Как отключить мини-приложения в 11
Как вернуть старое контекстное меню в 11
Не запускается PC Health Check на 11
Не могу обновиться до 11
Если вы регулярно следили за нашей серией материалов, связанных с новой 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 – что это такое, как оно работает, где скачать
Стал часто сталкивался со всевозможными заблуждениями на тему DirectX. Например, пользователи пытаются ставить DirectX каких-то неправдоподобных версий, скачивают непонятно что с каких-то “левых” сайтов и т.п., получая в итоге всевозможные ошибки в работе Windows и игр.
Со всем этим я и разберусь в этой заметке, постаравшись расставить все точки над i в деле об игровой технологии DirectX.
Что такое DirectX
Чтобы разобраться, где правда, а где вымысел, для начала узнаем, что же это такое – ДиректИкс? Википедия говорит нам:
DirectX (от англ. direct — прямой, непосредственный) — это набор API, разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. … Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями.
Более простыми словами: DirectX – это “прослойка” между видеокартой и играми, позволяющая полностью реализовать всю вычислительную мощь компьютера для отрисовки красивой графики.
Помню, как в 2003 году я радовался правдоподобным отражениям в стеклах машин и лужах на дороге в игре Need for Speed: Underground, когда установил в компьютер видеокарту с поддержкой DirectX 9. Конечно, одними отражениями дело не ограничивается, но обо всем по порядку.
Чем отличаются версии DirectX
Технологии прогрессируют довольно быстро. Каждая новая версия DirectX позволяет программистам добавить какой-нибудь новый эффект в игру, а старые – оптимизировать.
Думаю, наиболее наглядно разницу между возможностями DirectX разных версий покажет это видео:
Обратите внимание на красивые эффекты летящего снега из-под колес машины и мягкие тени в DirectX 11 версии (слева). Справа – гораздо более старая девятая. В принципе, такие эффекты, как мягкие тени и снег из-под колес можно реализовать, ограничившись технологией DirectX 9, но падение производительности будет ощутимым – в “девятке” нет ни оптимизации, ни грамотной реализации подобных эффектов.
Второй пример – игра Crysis 2:
Считается, что чем выше версия DirectX – тем лучше картинка. Но не стоит ожидать чуда – зачастую изменения не бросаются в глаза. На мой взгляд, главная причина столь малой разницы качества изображения в том, что сейчас игры разрабатываются одновременно для игровых консолей Xbox, Sony PlayStation и ПК. Приставки по сравнению с современными “персоналками” слабы в плане производительности и поддерживаемых технологий. В итоге мы играем на компьютере в игры, графика которых осталась на уровне года выхода консолей, любуясь на размытые текстуры и упрощенные эффекты. Да, есть игры, разработанные или доработанные для ПК, но таких единицы.
Типичный пример межплатформенности – игра Skyrim:
Разница в графике между Playstation 3 и Xbox360 заключается в деталях: на PS3 где-то воды капает мало, на Xbox 360 тени не реагируют на мерцающие источники света. На ПК (в видео обозначен как “Windows”) таких проблем нет, плюс видны объекты на дальних расстояниях, но больше никаких улучшений нет. Позже разработчики выпустили набор текстур высокой четкости для ПК-версии игры, но кардинально графику это не улучшило.
Чтобы вы увидели, какую графику способен выдавать компьютер – пример игры, заточенной под использование всех возможностей видеокарты и процессора:
Видите разницу? Красивое освещение, четкие текстуры, плавные движения. Такой уровень детализации был бы недостижим с помощью устаревших технологий DirectX 9 – слишком много объектов находятся в кадре одновременно. Также присутствует много эффектов, которые реализуются силами видеокарт с поддержкой DirectX 10 как минимум.
Возможности графического движка игры Crysis 3:
Вопреки мнению некоторых пользователей, DirectX не улучшает графику в играх, а только дает возможность программисту сделать игру красивее. Если игра разрабатывалась для DirectX 9, то наличие DirectX 10-й версии ничего не изменит. Все зависит не только от возможностей видеокарты, но и от поддержки технологий игрой. Если все совместить – получится просто чудесная игра в плане графики.
Разные Windows и версии DirectX
DirectX по сути представляет собой набор файлов – программных библиотек. Если их не будет в системных папках, то игры в лучшем случае будут отображаться без эффектов, в худшем – не запустятся, выдавая ошибку (при запуске игры появляется ошибка “не найден d3dx9_42.dll”, где цифры могут быть разными).
Минимальный набор этих файлов уже присутствует в только что установленной Windows. В зависимости от версии операционной системы, будет разный комплект файлов, а значит – поддержка разных версий DirectX (информация отсюда):
Предыдущие версии включены. Т.е. Windows 10 имеет поддержку 12-й версии, DirectX 11.2, 11.1, 11, 10.1, 10, 9 и ниже.
О том, как установить полный набор файлов DirectX, будет ниже по тексту.
Поддержка видеокартой DirectX разных версий
Чем новее видеокарта, тем более высокую версию DirectX она поддерживает. Все предыдущие версии также будут поддерживаться. То есть старые игры, использующие ДиректХ 7/8/9 теоретически должны работать нормально. На практике ограничением становится поддержка операционной системы. Игры, разработанные для Windows 95/98/ME зачастую вылетают на более новых ОС, видеокарта тут совершенно не при чём.
При этом нужно понимать, что от Windows тоже зависит, какой DX будет работать. Игры, которым требуется 12-й Директ, не запустятся в Win7/8 и тем более XP. Сама видеокарта работать в древних системах будет, просто современные API функции будут недоступны. Таким образом, с видеокартой, поддерживающей DirectX 12, в Windows XP вы не поиграете в современные игры – запустятся только работающие через девятый DirectX и ниже.
Как узнать, какую версию DirectX поддерживает моя видеокарта и Windows?
Видеокарта
Подсмотреть информацию о том, какую версию DirectX поддерживает ваша видеокарта, можно на официальной страничке сайта производителя и в любом онлайн-магазине. Например, в Яндекс.Маркете. Однако, в целом, все видеокарты, вышедшие после 2015 года, поддерживают 12-ю версию. Хотя именно с DX12 есть нюансы, об этом ниже.
Windows
Узнать, какую версию поддерживает Windows, сложнее, потому что многое зависит от установленных обновлений. Если у вас Windows 10, то там точно самая свежая версия API. Для всех остальных ОС алгоритм таков:
1. Убедитесь, что у вас установлены все обновления Windows (Пуск – Все программы – Центр обновления Windows – Поиск обновлений – Установить).
2. Необязательный пункт: обновите драйвер видеокарты до самой новой версии:
Официальная страница драйверов для видеокарт Intel (выберите в списке “Графические адаптеры”, затем нужную модель)
3. Нажмите Пуск – Выполнить (если нет такого пункта, можно нажать сочетание клавиш Win+R, где Win – кнопка с логотипом) – Введите “dxdiag” без кавычек – затем кнопка ОК.
Появится окно “Средство Диагностики DirectX“. На вкладке “Система” можно увидеть установленную на компьютере версию DirectX:
Эту версию сменить нельзя, за исключением обновления системы – например, при обновлении Windows Vista SP1 на SP2 поддерживаемая версия изменится с 10.1 на 11.
В интернете полно всяких наборов “DirectX 10 для Windows XP” и аналогичных. Запомните – это обман. В Windows XP невозможно включить поддержку современных версий DirectX.
Как заставить игру X использовать DirectX версии Y?
Только если в настройках игры версию можно переключить. Например, смену поддерживает GTA V. В ней доступно аж три варианта рендера DirectX: 10, 10.1 и 11.
Другим способом переключить версию, если игрой это не предусмотрено, никак нельзя. Сами подумайте – разработчики писали код игры, используя команды под определённую версию. Просто так взять и заменить команды на другие невозможно.
Таким образом вопрос “на каком DirectX лучше играть” бессмысленный – что поддерживает железо, ОС и использует игра, то и будет.
Нужно ли устанавливать DirectX с сайта Microsoft? Что это дает?
Кратко: можно, только версию DirectX это не изменит!
Если хотите, чтобы игры запускались нормально – обязательно установите все обновления из Центра обновления Windows, потому что именно оттуда Windows берет свежие версии библиотек. Подтверждение от Microsoft.
На сайте компании Майкрософт, которая разработала DirectX, можно скачать инсталлятор DirectX. На самом деле это не установщик DirectX, а только программа-инсталлятор, которая загрузит из интернета и установит новые версии программных библиотек DirectX. Несмотря на цифры 9, 10, 10.1 и т.п., DirectX имеет и внутреннюю нумерацию, которая имеет отношение к обновлениям. То есть внутри версий возможны исправления и улучшения.
Windows 7, 8 и 10 эти библиотеки, в общем-то, не нужны, потому что требуемые обновления приходят через Центр обновлений. Но если у вас не запускается какая-то старая (2005-2010 годов) игра, использующая DirectX 9, пробуйте установить тот самый инсталлятор. Авось поможет.
Чтобы проверить, что устанавливается инсталлятором, я скачал программу автономной установки DirectX, которая нужна для установки обновлений DirectX на компьютерах без интернета:
DirectX – загрузка полного комплекта обновлений
Судя по датам, на момент написания этой записи обновления компонентов DirectX выходили 18 апреля 2011 года (обновление от 29.01.2016 г.: теперь все приходит через Центр обновлений другими пакетами).
Загруженная программа – по сути самораспаковывающий архив. Откроем его архиватором 7-zip:
После установки добавятся новые библиотеки и обновятся старые, что даст возможность запуститься тем играм, которые сообщают об ошибке отсутствия d3dx*. Так что попробовать установить можно.
Откуда скачать DirectX?
Просто установите обновления через Центр обновления!
Ни с каких сайтов скачивать ДиректИкс нельзя! Вы рискуете попасть на вирусы!
Компоненты DirectX обновляются через Центр обновления Windows. Только так вы можете получить поддержку DirectX 10.1 и 11 на Windows Vista, 11.1 на Windows 7.
Microsoft DirectX входит в качестве составной части в операционных системах Windows. Вы можете обновить DirectX, применив последний пакет обновления или другие обновления через Центр обновления Windows.
Если скачать и установить DirectX на Windows XP, появится ли там DirectX 11?
Не появится. DirectX 10, 11 и последующих версий на Windows XP не будет никогда. Можно долго распространяться на эту тему, я лишь скажу следующее: владельцы Windows XP, смиритесь – эта ОС давно уже перестала быть “игровой”. Многие современные игры не поддерживают Windows XP. Даже Майкрософт официально забила на нее.
Стоит заметить, что существует сборка DirectX 10 для Windows XP, сделанная умельцами. По сути это всего лишь набор программных библиотек, не добавляющих эффекты DirectX 10, а только позволяющая некоторым играм запускаться без ошибок в XP, если в их настройках включен режим “DirectX 10”. В любом случае, этот набор библиотек с высокой долей вероятности может вызвать глюки в операционной системе, так что ставить такое поделие ни в коем случае нельзя.
Как установить DirectX версии 11.1 на Windows 7?
В связи с появлением Windows 10 этот вопрос актуален как никогда. Там поддержка DirectX 11.1 уже есть изначально. В Windows 7 изначально установлена версия 11. Поддержка новой версии DirectX придет через Центр Обновления Windows (Пуск – Все программы – Центр обновления Windows). Обновление называется KB2670838.
Так что обновляйте Windows через Центр Обновления. Windows 8 это тоже касается.
DirectX 12
Много слухов циркулирует вокруг DirectX 12. Попробую расставить все точки над i.
Windows 7, 8 и DirectX 12
Нет. Нет и ещё раз нет! DirectX 12 в Windows 7 и 8 не будет. Теоретически это возможно сделать, если производители видеокарт и Microsoft скооперируются. На практике – увы. 12-я версия – прерогатива Win10.
Многие старые видеокарты частично поддерживают DirectX 12
Представители производителя видеокарт AMD и nVidia заявляли, что видеокарты, поддерживающие DirectX 11, будут поддерживать и DirectX 12. Это оказалось маркетинговым лукавством. Преимущество DirectX 12 перед 11 – многократное увеличение производительности за счет оптимизации работы с компонентами видеокарты (памятью, видеопроцессором). “Железная” часть видеокарт, выпущенных в эпоху DirectX 11 и ранее, не приспособлена под DirectX 12, поэтому основная “фишка” новой версии API – ускорение обсчета графики – работать не будет.
То есть современные игры, которым для работы требуется 12-я версия графического API, с такими видеокартами запустятся. Но качество графики придётся выкрутить на минимум, чтобы получить более-менее приличную частоту кадров.
Есть три уровня поддержки старыми видеокартами нового графического API: Tier 1, Tier 2 и Tier 3. Tier 3 – самая полная поддержка стандарта. И она, пожалуй, наиболее близка к тому, что представляет собой DX12. В современные игры с ними на минимальных настройках графики можно играть вполне комфортно.
Intel
Intel ValleyView2 HD Graphics
Intel HD Graphics 2500
Intel HD Graphics 4000
AMD Radeon HD 5xxx
AMD Radeon HD 6xxx
AMD Radeon HD серий 7xxxG, M и D
AMD Radeon HD 8xxxG
Nvidia
Вроде как все должны.
Intel
Intel HD Graphics 4400
Intel HD Graphics 4600
Intel HD Graphics 5000
Intel Iris Graphics 5100
Intel Iris Pro Graphics 5200
nVidia
NVIDIA GeForce GT 430
NVIDIA GeForce GT 440
NVIDIA GeForce GTS 450
NVIDIA GeForce GTX 460
NVIDIA GeForce GT 520M
NVIDIA GeForce GT 520
NVIDIA GeForce GT 525M
NVIDIA GeForce GT 540M
NVIDIA GeForce GTX 550 Ti
NVIDIA GeForce GTX 560
NVIDIA GeForce GTX 560 Ti
NVIDIA GeForce GTX 570
NVIDIA GeForce GTX 580
NVIDIA GeForce 610M
NVIDIA GeForce GT 610
NVIDIA GeForce GT 620M
NVIDIA GeForce GT 620
NVIDIA GeForce GT 630M
NVIDIA GeForce GT 630
NVIDIA GeForce GT 635M
NVIDIA GeForce GT 640M
NVIDIA GeForce GT 640
NVIDIA GeForce GT 730
Intel – нет.
AMD – нет.
Nvidia
NVIDIA GeForce GT 650M
NVIDIA GeForce GTX 650
NVIDIA GeForce GTX 650 Ti
NVIDIA GeForce GTX 650 Ti Boost
NVIDIA GeForce GTX 660M
NVIDIA GeForce GTX 660
NVIDIA GeForce GTX 660 Ti
NVIDIA GeForce GTX 670
NVIDIA GeForce GTX 680
NVIDIA GeForce GT 740M
NVIDIA GeForce GT 750M
NVIDIA GeForce GTX 750
NVIDIA GeForce GTX 750 Ti
NVIDIA GeForce GTX 760
NVIDIA GeForce GTX 765M
NVIDIA GeForce GTX 770
NVIDIA GeForce GTX 780
NVIDIA GeForce GTX 780 Ti
NVIDIA GeForce 840M
NVIDIA GeForce GTX 850M
NVIDIA GeForce GTX 860M
NVIDIA GeForce GTX 970
NVIDIA GeForce GTX 980
Intel – нет.
AMD Radeon HD 7750
AMD Radeon HD 7770
AMD Radeon HD 7850
AMD Radeon HD 7870
AMD Radeon HD 7950
AMD Radeon HD 7970
AMD Radeon R4 Graphics
AMD Radeon HD 8600
AMD Radeon HD 8800
AMD Radeon R9 390X
Nvidia
А вот у нВидии видеокарт с полной поддержкой DirectX 12 пока нет.
Обновление от 3.03.2018: уже есть. Все современные поддерживают 12-ю версию.
Обратите внимание – после 2015 года поддержка 12-й версии API улучшилась, сейчас об уровнях Tier знать не требуется.
Дополнительные уровни – Feature levels
Мне, как владельцу AMD Radeon HD7950, хотелось бы радоваться, что у неё точно-точно есть поддержка DX12, но не получается. Дело в том, что Microsoft пошла дальше и ввела дополнительные уровни особенностей (“Feature levels”). Если уровни Tier – индикатор для покупателей, то Feature levels предназначены для разработчиков и сообщают о том, какие же возможности новой версии API поддерживаются процессором видеокарты полноценно.
Feature level 11.0 – поддержка видеокартой DirectX11 и функции “Resource Binding” из Tier 1. Представители таких видеокарт: Nvidia GeForce GTX 400/500/600/700.
Feature level 11.1 – DirectX 11.1 и поддержка множества функций, которые я здесь приводить не буду (зачем?). Представители:
Feature level 12.0 – поддержка некоторых возможностей Tier 1 и Tier 2. Представители: AMD Radeon HD 7790/8770, Rx 260/285/290 и новее.
Feature level 12.1 – полная поддержка Tier 1, аппаратная поддержка всех возможностей DirectX 12.
Таким образом, ни одна из видеокарт, вышедших до 2015 года, не поддерживает DirectX 12 полностью. Часть возможностей реализована на программном уровне, поэтому одна и та же игра, использующая DX 11 и DX 12, не получит ощутимого прироста производительности при переходе на новую версию API.
От уровня доступа к “железу” компьютера сильно зависит скорость работы программ. Особенно это касается игр. DX 12 предоставляет возможности, которыми разработчики не должны пренебрегать. Увы, на практике они не всегда используются полностью. Поэтому GTA V, вышедшая на ПК в 2015 году, выглядит лучше и выдаёт на том же железе больше кадров в секунду, чем схожая геймплеем Watch Dogs 2, появившаяся на свет полтора года спустя.