Какой directx требует игра
DirectX является частью операционной системы Windows. Так почему же каждая игра, устанавливаемая со Steam, Origin или другого источника, требует свою собственную копию DirectX?
Что такое DirectX?
DirectX является частью Windows. Это группа API, которую разработчики могут использовать для трехмерной графики, мультимедиа, звука и функций геймпада для Windows. Многие игры на Windows используют Direct3D DirectX для своей графики. Если не его, то они используют такие кроссплатформенные API, как OpenGL или Vulkan. Другое же, не игровое программное обеспечение, может использовать DirectX, например, для трехмерной графики.
Вы можете проверить версию DirectX на вашей системе с помощью программы «Средство диагностики DirectX». Нажмите на клавиатуре Windows+R, впишите в пустую строку dxdiag и нажмите Enter. Перед вами появиться окошко с информацией о вашей системе. Найдите строчку «Версия DirectX» и увидите там необходимую для вас информацию.
Если DirectX уже включен в Windows, то почему игры устанавливают его?
В природе не существует какой-то одной определенной библиотеки DirectX Direct3D, на которую опираются все игры. Игровым разработчикам приходится нацеливаться на определенную версию вспомогательной библиотеки Direct3D. Нельзя просто использовать самые последние библиотеки и надеяться, что игра запуститься. Для примера, если разработчик игры нацелил ее на библиотеку d3ddx10_40.dll, то игра не может использовать библиотеку d3ddx10_41.dll. Ей потребуется 40-я версия и только она.
Вы можете найти эти библиотеки DirectX в своем компьютере по адресу C:\Windows\System32. На 64-битных системах, 64-битные библиотеки расположены по адресу C:\Windows\System32, а 32-битные в C:\Windows\SysWOW64.
Даже если вы запустите самый свежий установщик DirectX, то нет никакой гарантии, что он установит все ранее выпущенные вспомогательные библиотеки DirectX на вашу систему. Майкрософт также решила, что не станет аккумулировать все эти библиотеки Direct3D в самой Windows. Даже библиотеки Direct3D, созданные до выхода операционной системы Windows 10, не были включены в нее. Их нужно устанавливать с приложениями, которые в них нуждаются. Как Майкрософт заметили в документации, предназначенной для разработчиков игр, «Обновления Windows и Сервисные пакеты не предоставляют никаких опциональных компонентов DirectX».
Однако, все еще сложнее, чем кажется. 32-битные игры требуют библиотеки 32-битной разрядности, а 64-битные, соответственно, 64-битной разрядности. Похожая ситуация сложилась и с библиотеками Microsoft Visual Studio C++. Различные приложения полагаются на различные версии библиотек и вам нужно устанавливать их всех.
Но почему каждая ПК-игра переустанавливает их?
Ок, каждая игра требует установленных для себя вспомогательных версий библиотек DirectX, чтобы даже запуститься. Однако, если у вас уже установлена нужная версия библиотеки DirectX, то вам нет нужды запускать установщик DirectX, верно?
Установщик DirectX также является единственным способом, которым Майкрософт позволяет разработчикам распространять файлы данного программного обеспечения. Разработчики не могут как-то по хитрому устанавливать на вашу систему библиотеки DirectX, так как это будет считаться нарушением лицензии программного обеспечения Майкрософт. Помимо прочего, на пути бы встала преграда в виде кучи багов. Именно из-за указанных причин никто и не пытается устанавливать DirectX по другому.
Конечно же, не все игры в действительности должны запускать установщик DirectX, когда те впервые запускаются. Играм, которые используют OpenGL или Vulkan, нет нужды использовать библиотеки DirectX. Некоторые игры также полагаются только на главные версии DirectX 9, DirectX 10 и DirectX 11 и им нет нужды запускать установщик DirectX, так как им не требуются вспомогательные библиотеки.
Могу ли я удалить эти библиотеки?
Вы не должны удалять никаких библиотек DirectX из вашей папки System32 или SysWOW64. Если они присутствуют в системе, то это потому, что установленная вами игры или приложение требует для своей работы эти библиотеки. Если вы начнете удалять библиотеки из системы, то программы попросту не будут запускаться или же работать некорректно. Не существует способа точно определить, какая из библиотек DirectX требуется той или иной игре/программе на вашем компьютере. Исходя из этого, вы не сможете понять, какую из них можно спокойно удалять.
Что делать, если у меня возникли проблемы с DirectX?
Вы можете попробовать пройти в директорию с игрой в вашей системе или на диске с установщиком игры, найти там установщик DirectX, который зачастую называется DXSETUP.exe, и запустить непосредственно его, не устанавливая игру, чтобы решить возникшую проблему.
Центра́льный проце́ссор (ЦП; также центра́льное проце́ссорное устро́йство — ЦПУ; англ. central processing unit, CPU, дословно — центральное обрабатывающее устройство) — электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (код программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда называют микропроцессором или просто процессором.
Ядро процессора - это центральный его модуль, где производятся все расчет.
Поток (thread) - это структура внутри процесса, которая содержит исполнительный код и получает процессорное время для его выполнения. Поток, в отличие от процесса, может выполнять какие-то действия. Без потока программа не может выполняться.
Многопото́чность — свойство платформы (например, операционной системы, виртуальной машины и т. д.) или приложения (в нашем случае – ИГРОВОГО ПРИЛОЖЕНИЯ), состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени. При выполнении некоторых задач такое разделение может достичь более эффективного использования ресурсов вычислительной машины.
DirectX (от англ. direct — прямой, непосредственный, произносится как «Директ Икс» — это набор API, разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. Зачастую обновлённые версии DirectX поставляются вместе с игровыми приложениями.
Разобравшись с базовыми понятиями перейдем к самому обзору.
DirectX 9
В данной версии API распространенной во времена Windows XP основной код игрового приложения мог исполнятся только в один поток. Параллельно могли использоваться некоторые функции программы, но количество их было ограничено. Далее – в DX9 поток в системе был строго привязан к ядру процессора – другой вариант работы не допускался. Поэтому по сути для игр в то время самым актуальным был 2х ядерный процессор (можно даже сказать - для игры хватало «полтора-ядерного», еще «пол-ядра» использовалось для функционирования операционной системы (ОС). 3х и более ядерный процессор в то время – был избыточен для игр.
Основной период использования данногоAPI в игровых приложениях 2003-2010г.
DirectX 11
Основным новшеством в данном API (работает на Win 7\8.1) применительно к ЦП было то, что игровые приложения могли использовать несколько заранее заданных потоков для своей работы, причем поток не был физически привязан к определенному ядру процессора. Что дало возможность полностью использовать возможности появившихся у игроков в широких массах 4х ядерных процессоров. Обычно количество потоков в играх на DX11 равно 4м (в некоторых случаях 3 или 2).
Это подтверждают результаты приведенные мной в статье:
Аналогичные результаты были получены тестерами тут:
Связано это с тем что на начало 2010г процессоров с количеством ядер более 4х в настольных игровых системах практически не было (что по статистике Steam верно и по сей день):
Основной период использования данногоAPI в игровых приложениях – примерно 2010-2020г.
DirectX 12
Данный API также серьезно отличается от DX11 как тот от DX9. В новом DX12 программный код изначально не делится на определенное количество потоков – API ОС сам их формирует на основании конфигурации ПК. Простыми словами – если на DX11 изначально заданные потоки могли лишь перебрасываться по ядрам ЦП для ускорения работы игры, то в DX12 API ОС сам создает количество потоков, нужных для работы, которые могут иметь количество равное количеству ядер ЦП, и контролирует их равномерную загрузку. Что это дает – разработчикам по сути становится не важно сколько ядер имеет процессор на игровой станции – 4 , 10 или больше – ВСЯ суммарная мощность может использоваться для работы приложения.
Теперь рассмотрим что тормозит внедрениеDX12 «широкие массы». Факторов тут много.
- Большинство видеокарт (на момент написания текста) находящихся у игроков не дают преимущества в скорости работы в DX12 по сравнению с DX11, и мало того – в DX11 они работают стабильней и быстрей. Это касается ВСЕХ поколений видеокарт Nvidia кроме последнего 10ого и поколений ниже HD 7000 у AMD (там вообще поддержки DX12 ниже 7000й серии нет). То что у АМД поколений карт с нормальной поддержкой DX12 больше прибавляет радости в жизни только тем кто их «юзает» – тк АМД «держит» только 20-25% рынка игровых видеокарт погоды это особо не делает. Ситуация изменится когда 10е и следующее 11е поколение видеокарт «зеленых» начнет доминировать в количестве над старыми решениями – процесс этот идет но когда это случится – точно не известно.
- Так же влияют тенденции «современного игростроя». ВСЕ игры класса ААА по срокам исполнения находятся в диапазоне 3-5 лет (а кто и поболе). Мало того – на рынке на данный момент доминируют серии игр, в которых игроделы постоянно используют старые «допиленные» наработки с предыдущей части игры. А код под DX12 для поддержки всех его преимуществ нужно писать « с нуля». Так же – ТОЛЬКО В КОНЦЕ 2015\НАЧАЛЕ 2016 года игровая индустрия «избавилась» от майнстрима игр у которых все еще была DX9 поддержка. Из этого следуют выводы – на ближайшие год-два массового перехода на DX12 в играх – 100% не ожидается.
- «Приставочный тормоз». К великому сожалению игроков на ПК очень многие игры на данной платформе появляются методом портирования с консолей. Обычно сейчас на ПК портируют игры с Х-BОХ ONE которая работает под управлением API очень схожим с DX11 на ПК. И поэтому пока не выйдет новое поколения приставок с букой Хы от мелкомягких (осень 2017г) которые по неподтвержденный информации работают на API аналогичном DX12, ждать кроссплатформеных игр на ПК с нормальным DX12 вообще не стоит.
- Windows 10. Планы по тотальному захвату рынка этой системой оказались у Мелкомягких полностью провальные. Более 30% игроков (на рабочих станциях процент еще выше) так и не перешли на нее по разным причинам. Поэтому изготовители игр стремясь охватить весь диапазон играющих на ПК до сих пор 100% поддерживают Win7\8.1 х64 (и соответственно DX11) в своих программах. Пара-тройка игр из магазина Мелкомякгих «only DX12» роли не сыграло.
Исходя из вышесказанного – на данный момент для игр еще не менее 1-2х лет самым актуальным будетAPIDX11 – и соответственно процессор к количеством ядер равным четырем.
Компьютерные игры на Windows требуют наличия определенной версии ДиректХ. Если она устарела или отсутствует в системе, то они попросту не запустятся. Поэтому нередко у пользователя появляется необходимость в ее инсталляции. Разберемся, как загрузить и установить DirectX для CS:GO и других видеоигр.
Совместимость
Каждый год на ПК выходит огромное количество видеоигр. Некоторые остаются незамеченными, другие же в одночасье становятся чуть ли не легендарными. Ко второму типу, разумеется, относится малая часть из всех существующих проектов.
Рекомендуем! InstallPack | Стандартный установщик |
---|---|
Официальный дистрибутив DirectX | |
Тихая установка без диалоговых окон | |
Рекомендации по установке необходимых программ | |
Пакетная установка нескольких программ |
В зависимости от года выпуска и направленности, различаются и выдвигаемые требования к компьютерному «железу» и ПО. Чем новее релиз, тем больше он будет «ожидать» от ПК. Это правило работает не всегда, но основная тенденция именно такова.
Counter-Strike: Global Offensive
Шутер с мировым именем вышел 6 лет назад (2012 год). Поэтому его системные требования в настоящий момент довольно низкие. Запустить CS:GO получится даже на стареньких компьютерах со «слабым» железом, если уменьшить графические настройки.
Battlefield
Battlefield — популярная линейка шутеров от компании EA. Игры цикла полюбились пользователям из-за эпичной сюжетной линейки и продуманного мультиплеера. Последний завлекает геймеров не только наземными сетевыми баталиями, но и возможностью управления транспортом. Для Battlefield 3 нужен десятый DirectX. А вот для последнего проекта линейки выдвигаются более высокие требования (DX 11).
NFS: Payback
Название Need for Speed можно интерпретировать как «Жажда скорости». Эта фраза лаконично отражает всю суть видеоигр с такой приставкой в имени. Это аркадные гонки на современных машинах. В последних релизах присутствует полноценный сюжет и сетевой режим. В Need for Speed: Payback необходим DirectX 11.
Grand Theft Auto
GTA — всемирно известный цикл игр компании Rockstar Games. Он повествует о криминальной стороне нашей жизни, перенесенной на вымышленные города, прототипами которых стали реальные. В этой линейке легендарными можно назвать два проекта: San Andreas и GTA 5. Несмотря на давние сроки выхода (2004 и 2013 года соответственно), у них до сих пор огромное количество почитателей.
Для ГТА Сан Андреас необходим DirectX 9.0c, поскольку игре перевалило за 13 лет. А вот ко второй системные требования намного выше, поскольку порт на ПК вышел уже в 2015. Для GTA 5 требуется DirectX 10.
Именно так называется одна из лучших линеек футбольных симуляторов. Она дотошно воспроизводит все то, что происходит на спортивном поле, полностью завлекая игрока. В предпоследнем релизе разработчики предусмотрели сюжетный режим «История», позволяющий проследить за становлением одного конкретного футболиста. Для запуска на компьютере FIFA 18 нужен DirectX 11. Но возможно переключение графики на двенадцатую версию.
Инсталляция
Теперь разберемся непосредственно с установкой нужной библиотеки на компьютер. Ситуация такова:
- DX 9 загружается отдельно через веб-инсталлятор.
- DX 10 доступен в Windows Vista и более поздних ОС.
- DX 11 — в «семерке» и старших Виндовс.
- DX 12 — только в «десятке».
Например, в Battlefield 1 указан DirectX 11. Это значит, что ничего устанавливать на ПК не нужно. Требуется только совместимая видеокарта и ОС не ниже Windows 7.
API DirectX 11 появился более 7 лет назад, и уже медленно уступает более новому и технологичному DX 12. Однако в мире остается еще достаточно много относительно мощных видеокарт, которых поддержкой DirectX 11 обделили — к примеру, линейка GeForce 200: топовые ее представители, GTX 280 и выше, без проблем тянут GTA 5 даже в FHD. Однако при попытке запустить на такой видеокарте тот же Fallout 4, который, казалось бы, достаточно хорошо оптимизирован, мы сталкиваемся с тем, что игра требует DX 11. Конечно, наилучшим выходом будет покупка самой простой DX11 совместимой видеокарты, благо стоят они (особенно б/у) недорого, но если очень хочется — можно попробовать поиграть в новейшие игры и на старом железе с поддержкой только DX10.
После таких действий игра, требующая DX11, скорее всего запустится, однако стоит учитывать, что программная эмуляция работает крайне медленно, так что сразу ограничивайтесь минимальными настройками в HD. Ну и разумеется не стоит пытаться запустить проекты, которые требуют hi-end железо — лучше всего ограничиться пошаговыми играми типа Tropico или Civlization VI.
Уже 29 числа, с выходом Windows 10, станет доступна новая версия DirectX, которая обещает увеличить производительность в играх и не только. В отличие от DirectX 11, вам не потребуется покупать новую видеокарту, и это не может не радовать. DirectX 12 обещает работу на многих устройствах: на смартфонах, планшетах, ноутбуках, персональных компьютерах и Xbox One. Для последнего сама Microsoft предрекает увеличение производительности, даже по сравнению с PS4.
Что такое DirectX?
«DirectX (от англ. direct — прямой, непосредственный) — это набор API, разработанных для решения задач, связанных с программированием под Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями.» (с) Wikipedia
Нововведения в DirectX 12
Низкоуровневый доступ
Поскольку ранее DirectX завоевывал рынок, Microsoft была нацелена на универсальность программного обеспечения и не давала разработчикам прямого доступа к низкоуровневым функциям видеокарты. Но теперь, благодаря новым процедурам вызова, доступ к ним открыт. Но если разработчики не используют новшества, то драйверы смогут автоматически оптимизировать их использование для решения стандартных задач.
Многопоточная оптимизация и разгрузка CPU
В марте 2014 года свет увидела большая (на то время) порция информации о новой версии API. Главной темой была оптимизация использования CPU, и в качестве примера были показаны результаты теста скорости вывода кадра в бенчмарке 3DMark. На скриншоте ниже можно увидеть сокращение скорости отображеня кадра в два (!) раза из-за оптимизации использования лишь CPU и более «умного» распределения ресурсов по ядрам.
Также оптимизирована работа процессоров, имеющих более четырех ядер. Если раньше не имело смысла переплачивать за лишние ядра, если процессор покупался для игр, то теперь все поменялось.
Использование нескольких GPU
Настал праздник для геймеров, имеющих встроенное видео ядро в своих процессорах, но не слишком мощную дискретную видеокарту. DirectX 12 позволит работать одновременно не только видеокартам с технологиями SLI или CrossFire, но и связкам «дискретная + интегрированная».
Но и для владельцев известных связок есть приятная новость. Видеокарты работают одновременно, а не поочередности, а видеопамять ваших видеокарт суммируется. Теперь multi GPU системы имеют раздельный буфер, где доступна вся память видеоадаптера, а не общий, как раньше.
DirectX 12 и встраиваемые low-end GPU
Улучшение производительности, как и сам DirectX 12, будет доступно не только на суперсовременных игровых станциях, но и для относительно слабых встраиваемых решений. По тестам, проведенным на Surface Pro 3 с процессором Core i5, имеющим встроенное видео ядро Intel HD Graphics 4400, производительность увеличилась на 50%. Все благодаря более рациональному использованию GPU.
Использование всего потенциала eSRAM (только Xbox One)
eSRAM – особая высокоскоростная память, используемая в GPU Xbox One. Ранее использовалось специальное API для управления, но сейчас, с выходом DirectX 12, всем управляет одно API – DirectX. Данное улучшение обещает увеличение быстродействия памяти и более рациональное ее использование. Вероятно это поможет сократить, а может и вовсе избавиться, от отставания от PS4.
Обратная совместимость с DirectX 11 видеокартами
Большинство современных видеокарт, которые поддерживают DirectX 11, полностью совместимы с DirectX 12. Но, к сожалению, далеко не все смогут использовать все нововведения в новом API.
- Windows 10;
- Видеокарта, совместимая с DirectX 12 API;
- Видео драйвер, поддерживающий DirectX 12 API;
Моя видеокарта поддерживает DirectX 12?
Список видеокарт с поддержкой DirectX 12 API:
*В этом списке предоставлены видеокарты, поддерживающие DirectX 12 API, но далеко не все из них поддерживают DirectX 12_0 и DirectX 12_1.
- AMD Radeon™ R9 285, 290/290X, 295X2, M295X
- AMD Radeon™ R7 260/260X
- AMD Radeon™ HD 8770
- AMD Radeon™ HD 7790
- GeForce, GTX Titan X
- GTX 980, GTX 980Ti
- GTX 970
- GTX 960
- GeForce, GTX Titan X
- GTX 980, GTX 980Ti
- GTX 970
- GTX 960
DirectX 12_0
Только GPU или архитектуры, специально разработанные для поддержки DirectX 12, будут поддерживать уровень функций DirectX 12_0, который содержит ряд новых технологий. Среди них – тайловые ресурсы Tiled Resources. В принципе, тайловые ресурсы известны ещё по DirectX 11, они отличаются высокой эффективностью по используемой памяти, а также могут значительно улучшить уровень детализации. С помощью мелких текстур в многократных ориентациях можно симулировать крупные текстуры. Кроме того, существенно экономится память. А качество картинки приносить в жертву не придётся.
В примере приводится классическая текстура Texture 3D под DirectX 11 с разрешением 1.200 x 600 x 600 пикселей с 32-битным цветом – она занимает 1,6 Гбайт. С тем же качеством можно использовать тайловую текстуру Tiled Texture 3D через многократные повторения – она будет иметь разрешение 32 x 32 x 16 пикселей с 32-битным цветом. Размер при этом будет составлять 156 Мбайт. В одном из примеров приведена сцена рендеринга, в которой тайловая 3D-текстура используется 2.500 раз. Для создания и симуляции некоторых материалов в 3D добавляется ещё одно информационное поле. Им может быть, например, значение прозрачности или вязкости. Такой подход позволяет лучше симулировать жидкости и газы.
Ещё один тип тайловых ресрусов – объёмные тайловые ресурсы (Volume Tiles Resources), однако они относятся к уровню функций уже не DirectX 12_0, а 12_1.
К уровню DirectX 12_0 относится Typed UAV и новая модель Bind, которые ориентируют API на большее число ядер CPU, что обеспечивает более широкую параллелизацию и производительность.
DirectX 12_1
Ещё на шаг дальше Microsoft и разработчики GPU пошли с DirectX 12_1. Но данный урвоень функций поддерживают только самые новейшие GPU. К ним относятся все GPU на основе 2-го поколения "Mawell". Одна из новых технологий – консервативная растеризация (Conservative Rasterization). Она используется для фильтра динамического суперразрешения (Dynamic Super Resolution) и сглаживания Multiframe Sampled Anti-Aliasing.
При растеризации небольшого объекта/пикселя в некоторых случаях лучше учитывать все покрытые точки семплирования, пусть даже частично. Также консервативная растеризация важна при вокселизации VXGI. Улучшенная методика наиболее заметна и при расчете теней.
Видео демонстрации DirectX 12:
Заключение
Все выглядит очень многообещающе. Для AMD в частности. AMD славится своими шести и восьми-ядерными процессорами – улучшена поддержка многоядерных процессоров. AMD имеет процессоры с хорошими графическими ядрами (APU) – мощности встроенной и дискеретной графики суммируются. Улучшена поддержка высоких разрешений, в которых даже не самые новые видеокарты от AMD и так хорошо себя чувствуют. Графика от Nvidia или Intel тоже не останется в дураках, все получат прирост производительности. Но на самом деле, больше от этого выиграем мы – игроки.
Остается надеяться, что игры с ужасной оптимизацией будут выходить реже, чем сейчас, а железо не придется апгрейдить так часто. Мечты-мечты :)
//Статья не является копипастой. Вся собранная тут информация была получена из общедоступных источников, обработана и описана в этой статье. Весь заимствованный контент имеет под собой ссылку на первоисточник.
Читайте также: