Какое-то время назад хотел поиграть в демо 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 и не видим в минималках современных видеокарт.
Такое ощущение, что игра требует новую версию DirectX 12. Почитал, про движок игры - это Unreal Engine 5, а вот он уже похоже хочет новую версию DirectX. Но у меня же Windows 10, в ней из коробки DirectX 12. Все так, но не совсем.
Начиная с Windows Vista изменилась ахитектура драйверов для видео (WDDM), и от ее версии зависит DirectX, поддерживаемый системой. Потому как интерфейс теперь строится на Direct3D. Другими словами версия WDDM связана с версией DirectX, а версию WDDM можно обновить, только обновив Windows. А так как я пользуюсь Windows с долговременной поддержкой (LTSB/LTSC), то мне нужно либо переустанавливать систему, либо начать установку новой системы из под 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, в котором установлен жесткий диск от старенького ноутбука.
Фишка в том, что достаточно скинуть файл образа в папку _iso, созданную в корне жесткого диска, и после этого этот образ можно подключить как DVD-диск к компьютеру.
Открываю подключенный диск (флешка с записанным образом или, в моем случае, виртуальный DVD-привод с вставленным образом) и запускаю установку из под системы. Программа установки докачает себе обновлений, перезапустится, подумает, а потом предложит сохранить все пользовательские файлы и программы, после этого будет около часа выполнять установку, при этом несколько раз перезагрузив компьютер.
Внимание! Скорей всего после этого слетит лицензия Windows, и ее нужно будет заново активировать.
И что же у меня получилось?
А получил я Windows 10 версии 21H2, WDDM 2.7 и DxDiag 10.00.19041.2075, т.е. версия DxDiag даже немного выше.
Осталось запустить RoboCop: Rogue City и проверить. И да, игра пошла! Забегая вперед, я ковырял настройки, смотрел разницу в картинке с FSR (режим "Качество") и без, и разницы особой не заметил.
На качество картинку больше влияют настройки: эпические или нет текстуры, эффекты и постобработка.
Вывод: для решения данной ошибки нужно как минимум обновить версию Windows.
P.S. к сожалению для игр требующих новые шейдеры "Mesh Shaders" этого может быть не достаточно, и придется менять видеокарту. Минимум: 6-ти тысячная серия для AMD и 2-х тысячная серия для Nvidia.