0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Сравнение DirectX7 с DirectX6

Двадцать лет спустя. Эволюция API Microsoft DirectX

Оглавление

Сегодня DirectX, разрабатываемый компанией Microsoft, уже воспринимается как должное. Все привыкли, что этот API является неотъемлемой частью Windows. Новая итерация «оси» под номером 10 не стала исключением. Еще осенью прошлого года Microsoft анонсировала двенадцатое поколение DirectX. Этому событию предшествовало пять лет почти полной тишины из стана Microsoft. Компания ограничивалась лишь плановыми обновлениями API, и никакой определенности насчет будущего DirectX не было. Масла в огонь подливало и то, что многие компании-разработчики в открытую поддерживали конкурирующую технологию OpenGL. В их число входила, например, компания Valve. Вдобавок ко всему, компания AMD представила свой низкоуровневый программный интерфейс Mantle, который должен был составить конкуренцию как OpenGL, так и DirectX. К счастью, Microsoft не вышла из игры, и все это время разработчики компании упорно трудились над созданием DirectX 12, который станет частью анонсированной в январе операционной системы Windows 10. Релиз «десятки» запланирован на ближайшую осень, а это значит, что уже в конце 2015 (либо в начале 2016) мы увидим первые игры, поддерживающие новый API.

Даже спустя столько лет первый Crysis по-прежнему хорош. А ведь это всего лишь DirectX 10

Чтобы немного скрасить время ожидания, мы предлагаем вам вспомнить, как создавался и развивался DirectX на протяжении последних 20 лет.

С чего все начиналось. DirectX 1.0

История появления DirectX берет свое начало в первой половине 1990-х годов, когда компания Microsoft занималась разработкой операционной системы Windows 95, которая должна была прийти на смену MS-DOS. Главным преимуществом MS-DOS было то, что она пользовалась популярностью у разработчиков игр. По мнению трех программистов Microsoft — Крэйга Эйслера (Craig Eisler), Алекса Сен-Джона (Alex St. John) и Эрика Энгстрома (Erik Engstrom) — даже после выхода Windows 95 многие разработчики могли отдать предпочтение MS-DOS как более подходящей для создания игр платформе. Чем же «дос» так нравился программистам? Все дело в том, что, программируя под MS-DOS, разработчики обращались напрямую к железу, то есть имели прямой доступ к видеокарте, клавиатуре, мыши, звуковым устройствам и другим частям системы. Подобный подход использовался в программировании под консоли, однако создание игр для компьютера осложнялось тем, что, в отличие от приставок, здесь не было фиксированной конфигурации системы. Это приходилось учитывать при написании кода, что значительно усложняло жизнь девелоперам.

Крэйг Эйслер — один из создателей DirectX

Так или иначе, но обращаться напрямую к аппаратной части компьютера в Windows 95 стало невозможно. Причиной этого была новая защищенная модель памяти, которая запретила прямой доступ к устройствам. Шел 1994 год, Windows 95 была на подходе, и Microsoft требовалось быстрое и эффективное решение возникшей проблемы. Им стал API DirectX, за создание которого отвечали как раз Эйслер, Сен-Джон и Энгстром. Релиз DirectX версии 1.0 состоялся 30 сентября 1995 года под названием Windows Games SDK.

Первая итерация DirectX была очень упрощена относительно своих будущих версий. Она поддерживала вывод двухмерной графики, звуков, а также обрабатывала данные, поступающие с различных манипуляторов.

DirectX 1.0 разрабатывался для Windows 95

Разработчики игр встретили DirectX довольно прохладно. Во-первых, они не были уверены, что Microsoft будет поддерживать API на протяжении долгого времени. Недоверие к Microsoft возросло после того, как компания свернула поддержку API WinG, который рассматривался как один из «помощников» в портировании игр с DOS на Windows. Во-вторых, «девяносто пятая» была требовательней к аппаратной части, из-за чего производительность в играх, как правило, снижалась в сравнении с MS-DOS. Ну и в-третьих — у DOS было огромное количество энтузиастов, которые ни в какую не хотели программировать под Windows.

Стоит сказать, что к моменту появления DirectX разработчикам игр уже был доступен API OpenGL, разработанный компанией Silicon Graphics Inc и представленный в 1992 году. Но в Microsoft решили пойти своим путем. В дальнейшем противостояние DirectX и OpenGL было похоже на битву Давида против Голиафа. Microsoft, прежде всего, брала своей финансовой мощью, а Silicon Graphics — репутацией и техническим опытом. Так, выбор в пользу OpenGL тогда сделал создатель Doom и Quake Джон Кармак (John Carmack). Он считал, что программный код DirectX слишком сложный для программирования, и поэтому в открытую поддерживал более «дружелюбный» интерфейс OpenGL. Конечно же, на планы Microsoft это никак не повлияло, но прохладная встреча DirectX со стороны разработчиков ясно дала понять, что работы у инженеров компании целый непочатый край.

Сравнение DirectX7 с DirectX6

Предисловие

DirectX был обьявлен впервые в 1995 году и теперь является стандартом для мультимедийных приложений разрабатываемых на платформе Windows. Встроенный в DirectX стандарт взаимодействия с 3D акселераторами (после версии 3) Direct3D был ответом на стандарт Glide от 3dfx. Седьмая версия этого стандарта сейчас находится на стадии бета тестирования и окончательный вариант будет доступен в конце лета 99. В этой статье хотелось бы акцентировать внимание на некоторых интересных изменениях и проанализировать их поближе.

Анализ системной информации:

Time of this report: 20 jun 1999, 14:17:41
Machine name: twintexel
Operating System: Windows 98 (4.10, Build 1998)
Language: Dutch (Regional Setting: Dutch)
Processor: Intel Pentium II, MMX
Memory: 64MB RAM
Page File: 62 MB used, 51 MB available
DirectX Version: DirectX 6.1 (4.06.02.0436)
DxDiag Version: 4.06.02.0436

DirectX 7.0 Beta 1

Time of this report: 6/20/1999, 15:25:25
Machine name: twintexel
Operating System: Windows 98 (4.10, Build 1998)
Language: Dutch (Regional Setting: Dutch)
Processor: Intel Pentium II, MMX, 366MHz
Memory: 64MB RAM
Page File: 32MB used, 79MB available
DirectX Version: DirectX 7.0 (4.07.00.0166)
DxDiag Version: 4.07.00.0166

Если проанализировать таблицы, то особо большой разницы не видно, разве что версия 7 показывает частоту процессора. Точно не знаю, рапортавала ли версия 6 и более ранние тактовую частоту, но теперь кажется у игр есть реальный шанс не допускать пользователя до запуска, мотивируя это недостаточной скоростью процессора.

Компоненты DirectX

framebuf.dll: 4.10.00.1998
framebuf.drv: 4.10.00.1998

msjstick.drv: 4.05.01.1998
supervga.drv: 4.00.00.0950
tsd32.dll: 1.03.03.0007
vga.drv: 4.10.00.1998

framebuf.dll: 4.10.00.1998
framebuf.drv: 4.10.00.1998
msanalog.vxd: 4.05.01.1998
msjstick.drv: 4.05.01.1998
supervga.drv: 4.00.00.0950
tsd32.dll: 1.03.03.0007
vga.drv: 4.10.00.1998
vjoyd.vxd: 4.05.01.1998

Графика:

В новой версии расширена поддержка 3D акселераторов включением поддержки аппаратной реализации наложения освещения и трасформации на выделенном 3D акселераторе, за счёт чего освобождается большое количество процессорного времени, что будет например не лишним при реализации хорошего AI или чего либо ещё, требующего интенсивной работы процессора без использования дополнительного железа. Так же стало возможно отображать эффекты отражения в воде, эффект света, проходящего через стекло и многие другие, приближающие игры к реальности. Можно создавать более сложные модели не думая о системных требованиях, в общем создавать более реалистичные игры.

Ничего нового в этом плане в новой версии нет, но в финальной версии будут улучшены алгоритмы 3D Sound и будет встроенная поддержка аппаратного микширования и расширения позиционированного 3D звука по EAX. Всё это позволит создавать более богатый звук в приложениях. Кроме того новая версия должна быть на 20% быстрее старой.

Производительность:

Как видно из графиков, текущая версия не быстрее старой, но вероятно это потому, что тест производился на акселераторе без аппаратной поддержки освещения и трансформаций. Вероятно с будущими акселераторами и оптимизированными под DX7 приложениями разница в производительности будет гораздо выше.

Какой DirectX поддерживает Windows 7

Какой Директ Икс поддерживает Виндовс 7? Этот вопрос чаще всего задают те, кто хочет попытаться запустить на этой операционной системе игровые новинки. Ведь практически все последние тайтлы требуют DirectX 12. И в данном материале мы расскажем о поддерживаемых «семеркой» версиях API.

Подробности

Напомним, что эти системные библиотеки необходимы для нормальной работы игр в операционной системе. Если они отсутствуют или повреждены, то поиграть не получится. Также специализированный софт для программистов не может без этого компонента.

Читать еще:  Музыкальный софт-рейтинг. Октябрь’2005

Однако в ДиректХ часто бывают сбои. И тогда приходится обновлять API или переустанавливать его. В любом случае, необходимо точно знать, какую версию библиотек поддерживает используемая операционная система.

Сейчас мы поговорим о Windows 7 и поддержке компонентов. А вообще, с каким именно DirectX работать решает по большей части видеокарта. И если она не поддерживает какую-то версию (по причине устаревания), то никакая системная поддержка здесь не поможет.

Совместимость

И все-таки нам нужно разобраться в вопросе. Официально ОС Windows 7 поддерживает DirectX 11. Но, если вы хотите использовать 11.2, то придется обновить систему до Service Pack 1. Только он добавляет поддержку данной версии.

А вот варианты 11.2 и 12 доступны только для Windows 10. И здесь уже ничего сделать невозможно, к сожалению. Разработчики из Microsoft заявили, что не видят смысла в поддержке морально устаревших систем и снабжении их новыми функциями.

Просмотр версии Директ Икс

А как посмотреть, какая именно редакция библиотек установлена в моей операционной системе? Для этого есть способ, который можно назвать универсальным. Он работает, как в «семерке», так и в Windows 7.

Речь идет об универсальном инструменте, который называется DxDiag. Он имеется в любой редакции Windows. И пользоваться им очень просто. Но на всякий случай мы предоставим подробную инструкцию с четким алгоритмом действий.

  1. Сначала нажимаем Win + R и вызываем инструмент «Выполнить».
  2. После этого в соответствующей строке вводим dxdiag и нажимаем «ОК» или Enter.
  3. Появится окно со всей необходимой информацией. Версия библиотеки будет написана в самом конце страницы.

Теперь вы точно знаете, какой Директ Х установлен на Виндовс 7 и стоит ли его обновлять. Это самый простой способ. Но есть и другие. К примеру, с использованием командной строки. Но назвать их легкими нельзя.

Заключение

Теперь подведем итоги и сделаем соответствующие выводы. В этой статье мы поговорили о компоненте DirectX в Windows 7 и о том, какую версию библиотек данная операционная система поддерживает.

Оказалось, что «семерка» может работать с компонентами редакции 11.1. более новые версии ей не доступны. Если нужна поддержка 12-й редакции, то придется устанавливать Windows 10. Тогда у вас будет поддержка всех современных технологий.

DX11 и DX12: а есть ли между ними разница?

Сменяются видеокарты, игры, процессоры, а смена DX11 на DX12 тянется еще с 2015 года, поэтому многие и забыли, чем эти версии отличаются друг от друга, и что же принесет новая API. В большей части на этом лежит вина и самого Microsoft, так как они сделали DX12 достоянием исключительно Win10, заявив что на более старых системах DX12 невозможно реализовать, но не так давно появилась информация, что поддержка DX12 все же появится на win7, и первой игрой будет World of Warcraft. В результате долгое время компьютеров с поддержкой DX12 было крайне мало, чтобы разработчикам игр вообще стоило обращать на этот сегмент свое внимание. Пожалуй, только сама Microsoft и ее дочерние игровые компании перешли на полноценный выпуск игр на DX12, но среди них не было значимых шедевров, и, пожалуй, самая узнаваемая серия — это Forza Horizon.

Однако, на начало 2019 года ситуация стала меняться, и, прежде всего, мы уже видим в статистике STEAM, что большинство компьютеров (64.53%) уже имеют как видеокарту так и операционную систему, совместимую с DX12, и стоит напомнить, что последнее поколение приставок Microsoft и Sony тоже поддерживают DX12, что в итоге дает нам абсолютное большинство игровых устройств DX12 ready.

В итоге мы видим, что на конец 18 и начало 19 года все больше и больше игр отказываются от DX11 как основного API в пользу как DX12, так и Vulkan. Вот их список:

  • Lara Croft Shadow of the Tomb Raider
  • Resident evil 2 (remake)
  • Crackdown 3
  • Metro Exodus
  • The Division2
  • Devil may cry 5

Готовятся к выходу и, скорее всего, будут иметь поддержку Vulkan или DX12

  • DOOM Eternal
  • Wolfenstein Youngblood
  • Serious Sam 4
  • Star wars fallen order
  • Rage 2

Поскольку мы выяснили, что для полномасштабного ввода DX12 есть как готовность со стороны пользователей, так и достаточное кол-во крупных проектов, то стоит освежить знания о этом API. Вероятнее всего, вы считаете, что самым главным отличием DX12 от своего предшественника является возможность трассировки лучей, и на этом все отличия заканчиваются, но это вовсе не так. Давайте взглянем на отличия этих двух версий, чтобы нам лучше понимать, чего эти версии могут и не могут, и что реально принесет DX12.

Помимо упомянутой трассировки лучей DX12 включал в себя такую технологию как Multi Gpu — это возможность объединения нескольких видеокарт даже различных производителей для обработки изображения. Звучит здорово, но, на мой взгляд, технология имеет мало шансов на широкое применение, и вот почему. Для разработчика игр придется сначала заставить работать просто неимоверное кол-во различных вариаций видеокарт, потом еще это все протестировать, а это очень много времени и очень много затрат, а выгоды от введения сомнительны. Для разработчика GPU это будет означать, что можно купить менее мощную видеокарту и установить ее параллельно, причем это может быть видеокарта их конкурента, в итоге это будет влиять на среднюю цену купленных у них устройств — для достижения искомой производительности можно будет покупать видеокарту классом ниже. Вообще стоит вспомнить SLI и CrossFire — много ли игр поддерживают эти технологии? Вот мы и добрались до наиболее значимых отличий DX12 от предшественника — работа с потоками CPU.

Таким образом выглядит пример работы игры с DX11: один поток отвечает за обработку видео, на остальных работают другие части движка, например звуковой движок, сетевая часть, расчет NPC и так далее, главное, что за самую емкую и сложную часть отвечает только 1 ядро процессора. Теоретически DX11 может работать максимум с двумя потоками, но, к сожалению, как показывает практика, это остается только теорией. DX12 уже способен работать с восемью потоками, и выглядит это так:

DX12 распределяет по потокам/ядрам самую объемную задачу по подготовке данных и последующей обработке их на GPU, что влияет положительно на производительность. Производительность, разумеется, не вырастает в 8 раз, так как этот процесс не идеально масштабируемый, и есть и другие узкие места. Забавно отметить, что результаты работы в случае всего одного потока или восьми отправляются на GPU о обрабатываются тысячами ядер CUDA или CU в зависимости от вендора GPU.

Что же происходит с данными попавшими в GPU?

Вверху видна последовательность обработки данных DX11, которая происходит в строго установленном порядке, и без выполнения предыдущих задач следующие не могут быть реализованы, тогда как DX12 имеет возможность разделения и исполнения этих задач на разных ядрах нашего GPU, что обеспечивает большую загрузку самого GPU и приводит к уменьшению задержек и росту FPS. Важно отметить, что скорость исполнения самих элементов, из которых состоит вся задача, не увеличивается. Весь выигрыш в производительности достигается только за счет оптимизации очереди — это и называется асинхронные вычисления.

Давайте теперь взглянем на то, что же конкретно подготавливает CPU для последующей обработки на GPU, если конечную картинку мы видим в таком виде:

То процессор передает каркас изображения в виде сетки полигонов для последующей закраски — аналогия с деткой книжкой-раскраской более чем уместна.

Каждый из полигонов обрабатываются на CPU и называется вызовом отрисовки или draw call. Соответственно, чем больше полигонов в кадре мы видим, тем больше нагрузка на CPU, такие ситуации наиболее характерны для игр с открытым миром и появления большого количества объектов в кадре, особенно если это очень детализированные объекты как NPC. В других случаях — когда мы смотрим в небо или видим незначительное кол-во полигонов в каком-нибудь ограниченном пространстве, например, коридоре, где вызовов отрисовки не так много, преимущества DX12 тают. Давайте перейдем к выводам из теоретической части знакомства с DX12.

В визуальном плане DX12 имеет очень скудные преимущества перед DX11 — лучи это самое яркое отличие.

Программирование под DX12 сложнее, и все преимущества нового API раскрываются полностью, только когда движок изначально разрабатывается, а не адаптируется под него.

Для несложных сцен, где в кадре мало объектов/предметов и полигонов, DX12 может показывать меньшую производительность по сравнению с DX11, так как все вызовы отрисовки прекрасно успевают обрабатываться на 1 ядре процессора, а в случае с DX12 результаты работы восьми потоков надо еще синхронизировать. Это может быть верно для целых игр, а не просто сцен, если они в своей основе имеют несложную графику.

DX12 не снижает нагрузку на процессор, а, наоборот, увеличивает, только при этом нагрузка распределяется до 8ми ядер/потоков процессора а не ложится на 1 ядро.

Читать еще:  Uncharted: The Lost Legacy — опять и снова

Выигрыш от перехода на DX12 будет у процессоров с небольшой производительностью на ядро, но большим их количеством, например, как серия FX от AMD.

Синтетический тест 3D mark Api Overhead Test https://3dnews.ru/911658

Наблюдаем в кадре то самое большое количество объектов, и результат — отличие на порядок,- это действительно огромная разница, даже если сделать скидку на то, что это синтетический тест.

Игровые тесты

  • FX 6300 @4500
  • DDR3 2133
  • RX 580 8GB
Lara Croft Shadow of the Tomb Raider

Для рассмотрения возьмем последнюю сцену из 3х тестовых отрезков — она наиболее характерна большим количеством вызовов отрисовок.

Обратите внимание на загрузку процессора: слева DX11 74%, справа DX12 100%.

Первые 3 значения относятся к последней сцене теста, четвертое же значение — это результат по всем трем сценам. Примечательно что максимальный кадр, который был отмечен, был в момент показа именно куска неба, и разницы между API нету, в то время как наибольшая разница отмечена именно в минимальных кадрах, и достигает она внушительных 43%. То есть, в самых графически нагруженных сложных сценах мы видим наибольшую пользу от перехода на DX12.

Resident Evil 2 remake

В этом тесте мы видим куда менее тривиальные результаты: падение максимального и среднего кадра, но и подъем минимальных значений аж на целых 33%. То есть, в моментах, где производительности 1 потока вполне хватает, DX11 даже быстрее, но как только сцена усложняется и производительности 1 потока недостаточно, DX12 раскрывается, что переносит весь игровой процесс до 60+ кадров, а DX11 опускается до условно неиграбельных 45. Боюсь именно с такими результатами и связана такая нелюбовь тестеров к DX12, так как в нем может быть меньше максимальных кадров, и даже, что может показаться совсем неприемлемым, и средние кадры, однако, как ни парадоксально, DX12 при этом более комфортен для игры.

Давайте перейдем к связкам с другим видеокартами и процессорами и понаблюдаем за результатами. Для этого выберем 4 игры:

  • Lara Croft Shadow of the Tomb Raider
  • Resident Evil 2 remake
  • Division2
  • Metro Exodus

Все эти игры работают как в режиме DX11, так и DX12. Давайте сравним, каковы будут изменения от смены API. Во всех тестах в качестве CPU применялся 9900K в разгоне до 5.0. Другими словами, мы увидим ситуацию, когда процессор не ограничивал нашу производительность.

Данные в таблице — это изменения в % между API. Интересно, что видеокарты семейства Pascal по-разному реагируют на DX12, несмотря на одинаковую архитектуру в их основе, прироста на младших моделях нет, связано ли это с работой драйвера или аппаратной части, находится за рамками этого блога. Нужно констатировать только одно: на видеокартах, формально имеющих поддержку DX12_1, прироста от перехода на новый API может не быть. С другой стороны, видеокарта RX 580, формально имеющая поддержку только DX12_0, дает прирост в 9% как топовая GTX 2080, прирост у видеокарт Vega доходит до 17%, что является просто потрясающим результатом. В любом случае мы замечаем прирост на последних сериях видеокарт от 5% до почти 20% производительности, и это очень значительное изменение. Что можно сказать — даже в связке с мощным процессором на современных видеокартах переход на DX12 оправдан и увеличивает производительность, если провести подобные тесты с менее производительным процессором, то отличия будут еще более существенны.

Справедливо будет заметить, что у компании Nvidia традиционно была хорошая производительность под DX11, и можно было бы предположить, что DX12 просто мог не давать таких преимуществ как у конкурентов. Давайте немного отвлечемся от темы сравнения API и взглянем более пристально на сами видеокарты.

Что ж, в DX11 видим тотальное доминирование продуктов Nvidia, и только Vega 56 немного опережает своего визави в виде GTX1070.

Однако при переходе на DX12 ситуация кардинально меняется, и Vega 56 опережает GTX 1070 уже на 13% и отстает на 7,6% от GTX1080, Vega 64 же опережает GTX 1080 5.4% и не дотягивает до RTX 2070 всего 2%! Да, похоже, AMD не зря в своих презентациях много внимание уделяла DX12 — действительно, их продукция намного лучше чувствует себя под новым API.

В качестве вывода можно сказать, что для владельцев старых процессоров, которые приобрели одни из последних серий видеокарт, переход на DX12 в любимой игре даст ощутимую прибавку производительности вплоть до 50%, при использовании DX12 на топовых видеокартах и процессорах выигрыш DX12 может составлять 10-20%, что тоже крайне не мало, поэтому все больше и больше разработчиков обращают внимание на новый API, и если в 19 году как минимум 50% из крупных, так называемых AAA, игр вышло с поддержкой DX12, то с выходом консолей нового поколения как от Microsoft, так и от Sony игровая индустрия окончательно перейдет на новый стандарт, поэтому при покупке видеокарты уже сейчас стоит обращать внимание преимущественно на тесты именно в этом API. Поэтому, скажем, новые серии Turing в виде 1660 1660ti 1650 1650ti могут быть намного привлекательнее, чем это могло бы казаться на первый взгляд т.к. по сравнению с 1050ti,1060, 1070 они действительно быстрее работают под новым API.

Результаты последних тестов взяты со страниц сайта gamegpu.com

Больше моих тестов и обзоров вы найдете на моем youtube канале.

DirectX 11 vs DirectX 12: сравнение производительности на новых картах с новыми драйверами

В этом материале мы хотим опять вернуться к теме сравнения производительности в DirectX 11 и DirectX 12 на новых видеокартах от AMD и NVIDIA. Ведь за прошедшие месяцы разработчики игр и производители GPU неустанно улучшали свои продукты, в том числе оптимизировали поддержку нового программного интерфейса. Насколько лучше и перспективнее теперь смотрится DirectX 12 в разрешении Full HD? Давайте проверим на практике.

По традиции начнем с представления участников. Первой тестовую полосу препятствий пройдет видеокарта Inno3D iChill GeForce GTX 1080 TI X3 ULTRA. Она обладает отличной 3-вентиляторной системой охлаждения и хорошим заводским разгоном не только GPU, но и видеопамяти.

Затем мастер-класс покажет ROG STRIX Radeon RX 580 OC Edition от компании ASUS. Она также использует эффективный 3-вентиляторный кулер и небольшой разгон графического процессора. Конфигурация остального стенда не изменилась:

  • Intel Core i7-6700K (OC 4.5 GHz)
  • Aardwolf GH400
  • ASUS MAXIMUS VIII RANGER
  • 2 x 8 GB DDR4-3200 G.SKILL Trident Z
  • SSHD Seagate ST2000DX001 2 TB
  • HDD WD WD1000DHTZ 1 TB
  • Seasonic Snow Silent 1050 1050W
  • ASUS VH228H

Deus Ex Mankind Divided при очень высоком пресете настроек качества обеспечивает более высокую загрузку процессора и видеокарты в режиме DirectX 11. А вот оперативной и видеопамяти потребовалось больше в новом API. В плане производительности лучше смотрится DirectX 12: 122 против 120 кадров/с по среднему показателю и 91 против 83 по минимальному.

Hitman при ультравысоких настройках уже с первых кадров демонстрирует солидный прирост скорости видеоряда от перехода на DirectX 12. Правда, теперь уже загрузка центрального и графического процессоров выше именно в новом API. Обратите внимание и на использование видеопамяти: около 6 ГБ в 12-ом DirectX и менее 3,5 ГБ в 11-ом. В итоге получаем 145 против 123 FPS в пользу DirectX 12, что эквивалентно 18%.

Очень высокий пресет настроек в Rise of the Tomb Raider хорошо загружает процессор и видеокарту в обоих случаях, хотя в режиме DirectX 12 от процессора требуется больше мощности. Разница в потреблении видеопамяти небольшая, а вот ОЗУ в новом DirectX съедается почти на 2 ГБ больше. Минимальный фреймрейт в обоих случаях составил 66 FPS, а по среднему лидирует DirectX 12: 179 против 166.

Sniper Elite 4 при ультра настройках больше загружает процессор в режиме DirectX 11, зато требует чуть больше видеопамяти и оперативки в DirectX 12. Также в нем демонстрируются чуть более высокие скоростные показатели: 190 против 187 FPS по средней частоте кадров и 170 против 166 по минимальной. То есть разница составляет 1-2%.

Сюжетная кампания в Battlefield 1 при ультра настройках более стабильно и высоко загружает видеокарту в новом DirectX. В нем же требуется на 700 МБ больше видеопамяти, зато в DirectX 11 использование ОЗУ выше на 1200 МБ. Да и скорость видеоряда в старом API также выше: 162 против 143 по средней частоте и 138 против 108 по минимальной. Разница составляет 13% и 28% соответственно.

The Division при максимальных настройках графики отдает предпочтение DirectX 12. В нем и видеокарта лучше загружена, и фреймрейт чуть выше. Правда, видеопамяти и ОЗУ также требуется чуть больше. В среднем имеем 147 против 141 кадра/с, что эквивалентно приросту в 4%.

Читать еще:  CeBIT 2013: QNAP. Новинки сезона весна-лето — 2013

И завершает первую часть игра DOOM при ультравысоких настройках графики. В данном случае сравниваем режимы OpenGL и Vulkan. Ранее видеокарты NVIDIA лучше смотрелись именно в первом из них, но теперь ситуация поменялась: в OpenGL были просадки до 183 FPS, поэтому средний показатель ориентировочно составляет 192 кадра/с. А вот в Vulkan частота стабильно находилась в районе 200 FPS.

Теперь давайте посмотрим, как с теми же тестами при аналогичных настройках графики справится AMD Radeon RX 580.

В Deus Ex загрузка CPU и GPU держится практически на одинаковом уровне, а вот видеопамяти и ОЗУ в режиме DirectX 12 требуется больше. На выходе получаем в среднем 58 против 56 FPS с просадками до 48 и 45 соответственно в пользу нового API.

В Hitman уже не наблюдается такого большого разрыва, как с GTX 1080 Ti. Процессор и видеопамять загружены приблизительно одинаково. Разница в используемой памяти есть, но она пропорциональная: DirectX 12 требует больше видеопамяти, но чуть меньше ОЗУ. С DirectX 11 все наоборот. В итоге по среднему FPS опять победил новый режим: 91 против 86 кадров/с.

Бенчмарк Rise of the Tomb Raider в режиме DirectX 12 опять больше загружает процессор вначале каждой сцены и требует на 2,5 ГБ больше ОЗУ. Взамен порадует и более высокими результатами: 79 против 76 FPS по среднему показателю и 24 против 16 по минимальному. Разница составляет 4% и 50% соответственно.

Создатели Sniper Elite 4 активно сотрудничают с AMD, в том числе в вопросе оптимизации под DirectX 12, поэтому неудивительно, что игра демонстрирует заметный прирост в этом режиме: средний FPS поднялся с 73 до 85 кадров/с, а минимальный – с 61 до 71. Разница в обоих случаях составляет 16%.

В Battlefield 1 видим чуть более высокую загрузку процессора, а также большее потребление оперативной и видеопамяти в режиме DirectX 12. Зато минимальная скорость видеоряда выше в DirectX 11: 76 против 60 FPS. Средний показатель в обоих случаях составил 83 кадра/с.

The Division практически сразу потребовала на 1 ГБ больше ОЗУ и на 500 МБ больше видеопамяти в режиме DirectX 12. Видеокарта в обоих случаях стабильно была загружена на 100%, да и нагрузка на процессор в среднем была почти одинаковой. На выходе получаем: 67 против 63 FPS в пользу нового API.

И, наконец, в DOOM видим привычную картину: AMD Radeon RX 580 гораздо лучше себя чувствует в режиме Vulkan. Средняя скорость ориентировочно составляет 157 кадров/с, а минимальная не опускалась ниже 130. При переходе в OpenGL эти же показатели достигли 136 и 117 FPS, то есть на 15% и 11% ниже.

Итоги

Что же мы видим в итоге? Раньше видеокарты NVIDIA не очень хорошо дружили с DirectX 12. Сейчас с GTX 1080 Ti в среднем можно рассчитывать на прирост 4% по среднему показателю. Если бы не Battlefield 1, то он составил и вовсе 6%. Также следует похвалить NVIDIA за существенную оптимизацию в режиме Vulkan: по крайней мере GTX 1080 Ti в нем теперь выглядит даже лучше, чем в OpenGL.

Что же касается AMD Polaris в лице RX 580, то средний прирост по среднему фреймрейту от перехода на новые API составил 7%, а по минимальному – 13%. Хотя действительно значимый результат, то есть больше 10%, обеспечили лишь две игры: Sniper Elite 4 и DOOM.

Таким образом, положительный эффект в плане фреймрейта от DirectX 12 есть, но на обеих платформах он не слишком большой и зачастую обходится ценой чуть большего потребления оперативной и видеопамти. Vulkan может быть еще эффективнее, но сложно судить по одной игре. А вот в плане качества графики различий между режимами мы не заметили.

Зачем каждая новая игра повторно устанавливает свою версию DirectX

DirectX входит в состав Microsoft Windows. Это группа интерфейсов API (интерфейсов прикладного программирования), которые разработчики могут использовать для 3D-графики, видео, мультимедиа, звука и функций геймпада в Windows. Многие игры в Windows используют Direct3 DirectX для графики. Если они этого не делают, они используют межплатформенные OpenGL или API Vulkan. Другие неигровые приложения могут использовать DirectX для таких функций, как 3D-графика.

Windows 7 включает DirectX 11, а Windows 10 – DirectX 12. Когда разработчики разрабатывают игры, они выбирают версии DirectX, которые хотят использовать. Например, игра, написанная только для DirectX 11, не будет работать в Windows XP, где последней версией является DirectX 9.

Вы можете проверить версию DirectX, доступную в вашей системе, нажав комбинацию клавиш Win + R , набрав «dxdiag» в поле ввода и нажав Enter . Когда появится окно инструмента DirectX Diagnostic Tool, вы увидите, что номер версии отображается справа от «DirectX Version» в разделе «Информация о системе».

Если он включен в Windows, почему игры устанавливают его

Если DirectX является частью Windows, почему игры устанавливают свою версию? Короткий ответ заключается в том, что в версиях DirectX царит беспорядок.

Не существует единой библиотеки DirectX Direct3D, от которой зависели бы все игры, или даже нескольких библиотек. Разработчики игр должны ориентироваться на точную версию вспомогательной библиотеки Direct3D. Более поздняя версия библиотеки не может быть использована. Например, если разработчик игры нацелил свою игру на d3ddx10_40.dll, игра не может использовать d3ddx10_41.dll. Требуется версия 40, и подойдёт только этот файл.

Эти файлы находятся в папке C:WindowsSystem32 в 64-разрядной системе, а 32-разрядные библиотеки расположены в C: Windows SysWOW64.

Даже если вы запустили последний установщик DirectX, нет никакой гарантии, что он установит все старые небольшие версии библиотек DirectX в вашей системе. Microsoft также решила не связывать эти файлы библиотеки Direct3D с самой Windows. Даже библиотеки Direct3D, созданные до выпуска Windows 10, например, не все включены в Windows 10. Они должны быть установлены приложением, которое в них нуждается. Как отмечает Microsoft в документации, предназначенной для разработчиков игр, «Windows Update и Service Packs не предоставляют никаких дополнительных компонентов DirectX».

Это также усложняется тем, что 32-разрядные игры нуждаются в 32-битных версиях файлах библиотеки, а для 64-разрядных игр требуется 64-разрядная библиотека.

Это похоже на ситуацию с библиотеками Microsoft Visual C++ Redistributable. Различные приложения зависят от разных версий библиотек, и вам нужно установить много разных версий.

Почему каждая игра должна переустанавливать DirectX

Следовательно, каждая игра должна установить точную младшую версию библиотек DirectX, в которой она нуждается. Но если вы уже установили определенную версию библиотеки DirectX один раз, то, конечно, игре не нужно запускать установщик DirectX – правильно?

Неправильно! Для игр нет возможности легко проверить, установлены ли нужные библиотеки DirectX. Как отмечает сайт поддержки Steam, установщик Microsoft DirectX является единственным официально поддерживаемым способом проверки правильности установленных файлов DirectX. Игры запускают установщик DirectX часто в фоновом режиме, который устанавливает все необходимые библиотеки и устраняет любые проблемы в системе.

Конечно, не все игры должны запускать установщик DirectX при первом запуске. Для игр, которые используют OpenGL или Vulkan, а не Direct3D DirectX, его не нужно запускать. Некоторые игры также зависят только от основных версий DirectX, таких как DirectX 11, 10 или 9, и не нужно вызывать установщик DirectX, потому что они не используют ни одну из вспомогательных библиотек.

Можно ли удалить библиотеки DirectX

Вы не должны удалять любую из библиотек DirectX в папке System32 или SysWOW64. Если они присутствуют в вашей системе, это связано с тем, что игра или другое приложение, которое вы установили, нуждались в них. Если вы начнете удалять файлы библиотеки, приложения перестанут работать. Невозможно реально определить, какие файлы библиотеки DirectX необходимы для игр в вашей системе, поэтому нет способа узнать, какие из них безопасны для удаления.

Оставьте их! Существует причина, по которой не существует официального способа удаления этих файлов библиотеки. Они не будут вызывать никаких проблем в вашей системе и будут использоваться только теми приложениями, которые их требуют.

Если вы действительно отчаянно пытаетесь очистить эти старые библиотеки, вам лучше переустановить Windows, чтобы получить новую систему вместо случайного удаления файлов библиотек. Но они снова начнут появляться после установки игр. Не беспокойтесь об этом!

Что делать, если у меня проблемы с DirectX

Если при попытке запуска или установки игры появляется сообщение об ошибке, связанное с DirectX, возможно, установщик игры не запускает входящий в комплект дистрибутив DirectX. Однако, бесполезно загружать установщик DirectX с веб-сайта Microsoft, так как вам нужно запустить установщик, который требует сама игра.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector