Найти в Дзене

Ошибка при запуске DirectX 12 is not supported on your system

Какое-то время назад хотел поиграть в демо RoboCop: Rogue City, тем более она была в Steam доступна бесплатно. Сказано, сделано. Скачал, запустил и ничего не получилось. Игра выдала ошибку: "DirectX 12 is not supported on your system. Try running without the -dx12 or -d3d12 command line argument"...

Никакие решения, найденные на форумах, мне не помогли. И я начал разбираться. Тем более тут еще и вышел новый Alan Wake 2, который требует новый вид шейдеров (Mesh Shaders). Короче, словил ощущения как при выходе шейдеров, когда я сидел на видеокарте Geforce 2 MX400, в которой никаких этих ваших шейдеров не было.

Начал копать: что за новые шейдеры и где они есть? А есть они только в видеокартах с аппаратной поддержкой DirectX 12 Ultimate (12_2), а у меня на основной (AMD RX570 8Gb) 12_0, а на дополнительной (Nvidia Quadro T600), через которую я пишу видео, - 12_1. А это значит аппаратной поддержки новых технологий у меня нет. Но смотрим на требования RoboCop: Rogue City и не видим в минималках современных видеокарт.

Скриншот из Steam
Скриншот из Steam

Такое ощущение, что игра требует новую версию DirectX 12. Почитал, про движок игры - это Unreal Engine 5, а вот он уже похоже хочет новую версию DirectX. Но у меня же Windows 10, в ней из коробки DirectX 12. Все так, но не совсем.

Начиная с Windows Vista изменилась ахитектура драйверов для видео (WDDM), и от ее версии зависит DirectX, поддерживаемый системой. Потому как интерфейс теперь строится на Direct3D. Другими словами версия WDDM связана с версией DirectX, а версию WDDM можно обновить, только обновив Windows. А так как я пользуюсь Windows с долговременной поддержкой (LTSB/LTSC), то мне нужно либо переустанавливать систему, либо начать установку новой системы из под Windows, и тогда она сама предложит сохранить все настройки и установленные программы.

Но вернемся к тому, что мы имеем:

Скриншот версии Windows
Скриншот версии Windows

Первое окно можно получить нажав сочетание клавиш Win+R и набрав там winver.

Скриншот окна "Выполнить"
Скриншот окна "Выполнить"

А второе - набрав там же dxdiag.

В результате мы имеем Windows 10 версии 1809, DxDiag версии 10.00.17763.0001 и WDDM версии 2.5.

А что же мне нужно, чтоб запустить свежие игры?

Открываю статью про DirectX в википедии на английском языке, на русском описание неполное и вижу, что для Windows 10 последняя версия DirectX 12 Ultimate соответсвует DxDiag 00.10.19041.0928 (тут у них видимо очепятка и должно быть 10.00.19041.0928). После этого открываем статью в той же вики, но уже на русском о WDDM, и ищем необходимый номер версии. И находим такую строчку "Windows 10 May 2020 Update (версия 2004) привносит поддержку WDDM 2.7". А WDDM 2.7 уже поддерживает API DirectX 12 Ultimate и прочие Direct3D 12 Mesh Shaders.

Хорошо, значит мне нужна минимум Window 10 версии 2004. А так как я пользуюсь изданием с долговременной поддержкой, то следующая версия после 1809 будет 21H2 (первые 2 цифры - это год).

Скачиваю оригинальный образ Windows 10 Enterprise 2021 LTSC, Version 21H2, записываю его на флешку. Я, правда, на флешку ничего не записывал, а воспользовался корпусом для жесткого диска Zalman ZM-VE350, в котором установлен жесткий диск от старенького ноутбука.

фото взято с сайта mcgrp.ru
фото взято с сайта mcgrp.ru

Фишка в том, что достаточно скинуть файл образа в папку _iso, созданную в корне жесткого диска, и после этого этот образ можно подключить как DVD-диск к компьютеру.

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

Внимание! Скорей всего после этого слетит лицензия Windows, и ее нужно будет заново активировать.

И что же у меня получилось?

Скриншот версии Windows
Скриншот версии Windows

А получил я Windows 10 версии 21H2, WDDM 2.7 и DxDiag 10.00.19041.2075, т.е. версия DxDiag даже немного выше.

Осталось запустить RoboCop: Rogue City и проверить. И да, игра пошла! Забегая вперед, я ковырял настройки, смотрел разницу в картинке с FSR (режим "Качество") и без, и разницы особой не заметил.

скриншот игры без FSR
скриншот игры без FSR
скриншот игры с FSR в режиме "Качество"
скриншот игры с FSR в режиме "Качество"

На качество картинку больше влияют настройки: эпические или нет текстуры, эффекты и постобработка.

Вывод: для решения данной ошибки нужно как минимум обновить версию Windows.

P.S. к сожалению для игр требующих новые шейдеры "Mesh Shaders" этого может быть не достаточно, и придется менять видеокарту. Минимум: 6-ти тысячная серия для AMD и 2-х тысячная серия для Nvidia.