Для правильного понимания обзора (по простому - чтоб «каши» в голове не было) внесем ясность в некоторые понятия которые используются в тексте.
Центра́льный проце́ссор (ЦП; также центра́льное проце́ссорное устро́йство - ЦПУ; англ. 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).
Это подтверждают результаты приведенные мной в статье:
www.playground.ru/blogs/other/pk_na_i3_i_i5_idealnyj_kompyuter_dlya_igr-238893/ Аналогичные результаты были получены тестерами тут:
gamegpu.com/test-video-cards/igry-2014-goda-protiv-protsessorov-test-gpu.html Связано это с тем что на начало 2010г процессоров с количеством ядер более 4х в настольных игровых системах практически не было (что по статистике Steam верно и по сей день):
Основной период использования данногоAPI в игровых приложениях - примерно 2010-2020г.
DirectX 12
Данный API также серьезно отличается от DX11 как тот от DX9. В новом DX12 программный код изначально не делится на определенное количество потоков - API ОС сам их формирует на основании конфигурации ПК. Простыми словами - если на DX11 изначально заданные потоки могли лишь перебрасываться по ядрам ЦП для ускорения работы игры, то в DX12 API ОС сам создает количество потоков, нужных для работы, которые могут иметь количество равное количеству ядер ЦП, и контролирует их равномерную загрузку. Что это дает - разработчикам по сути становится не важно сколько ядер имеет процессор на игровой станции - 4 , 10 или больше - ВСЯ суммарная мощность может использоваться для работы приложения.
Теперь рассмотрим что тормозит внедрениеDX12 «широкие массы». Факторов тут много.
1.Большинство видеокарт (на момент написания текста) находящихся у игроков не дают преимущества в скорости работы в DX12 по сравнению с DX11, и мало того - в DX11 они работают стабильней и быстрей. Это касается ВСЕХ поколений видеокарт Nvidia кроме последнего 10ого и поколений ниже HD 7000 у AMD (там вообще поддержки DX12 ниже 7000й серии нет). То что у АМД поколений карт с нормальной поддержкой DX12 больше прибавляет радости в жизни только тем кто их «юзает» - тк АМД «держит» только 20-25% рынка игровых видеокарт погоды это особо не делает. Ситуация изменится когда 10е и следующее 11е поколение видеокарт «зеленых» начнет доминировать в количестве над старыми решениями - процесс этот идет но когда это случится - точно не известно.
2.Так же влияют тенденции «современного игростроя». ВСЕ игры класса ААА по срокам исполнения находятся в диапазоне 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 - и соответственно процессор к количеством ядер равным четырем.