уроци

▷ Directx 12 срещу vulkan: борбата за най-добър графичен двигател?

Съдържание:

Anonim

В момента за компютърния свят има два първокласни графични API, които управляват пазара с авторитет. Поради тази причина ви представяме сравнението DirectX 12 Vs Vulkan.

И двамата имат дълга история зад гърба си и цяла орда от защитници и нарушители. Днес ще видим разликите, ключовете на всеки от тях и ще се опитаме да предложим малко светлина за тях.

Индекс на съдържанието

Графичен API и ниско ниво на драйвери

API означава „интерфейс за програмиране на приложения“ и представлява набор от подпрограми, които могат да бъдат използвани от разработчика, който включва и протоколи за комуникация и помощни програми, които улесняват разработването на софтуер. Можем да ги намерим за почти всичко и е обичайно всеки доставчик на услуги да разполага с този вид помощ, за да внедри своите системи по прост и достъпен начин.

API с ниско ниво се възползват по-добре от ресурсите на графичния процесор, облекчавайки процесора, но също така са в състояние да се възползват по-добре от многоядрените процесори, които имаме днес.

Както DirectX 12, така и Vulkan 1.1 са API, ориентирани към разработването на игри и приложения, които изискват съдействието на съвременните графични двигатели. В същото време те са API, поддържани от драйверите на най-важните дизайнери на графичен чипсет и следователно бърз и икономичен начин за достъп до техните функции, без да се налага да знаете дизайна им на много ниско ниво.

API на ниско ниво, като този, позволява работа с хардуера с много лек интерпретационен слой, което позволява на разработчика да се възползва по-добре от хардуера, постигайки по-добри резултати по отношение на производителност и ефективност, също така позволява на други подсистеми да бъдат освободени от допълнително натоварване. В света на компютъра или мобилните телефони той е по-малко зависим от общия процесор на системата.

Двата API, за които ще говорим днес, могат да се считат за API на ниско ниво и двете разработки доведоха до все по-малка зависимост от процесора на системата, като същевременно постигнаха по-добри резултати на ниво производителност и достъп до повече графични функции. предни постове. Те са два живи API, които получават актуализации годишно, за да ги поддържат в съответствие с това, което широката общественост и разработчиците очакват.

API на ниско ниво оказват пряк ефект върху друга изчислителна концепция, която ние познаваме като „водач над главата“, което, накратко, са вторичните ресурси, които са ни необходими за изпълнение на определени видове операции на компютър. В случая на графика се отнася до допълнителните ресурси, от които графичната карта се нуждае, за да свърши своята работа и в този случай това е основно централно време на процесора. API с ниско ниво, които ще опишем тук, намаляват тази зависимост и всъщност зависимостта има тенденция до 0.

Microsoft DirectX

DirectX възниква като необходимост от стандартизиране на различни мултимедийни подсистеми на Windows и е заместител на WinG за Windows 3.1. Приет е в Windows 95 като допълнителен пакет, а втората му версия DirectX 2.0 се превръща в основен компонент на Windows 95 OSR2.

В DirectX намираме множество независими API, като Direct3D, който наистина е въпросният, DirectDraw, DirectMusic, DirectPlay и DirectSound. DirectX беше начин да назовем общи подобрения във всички тези под-API. Това е API за Windows, но също така се използва за разработване на игри на конзолите му Xbox, така че можем да го считаме за мултиплатформен API, но не и безплатен, както е случаят с Vulkan.

Последната му версия DirectX 12 е с нас от 2014 г. и не стои неподвижно и преди няколко месеца получи важни подобрения като подпрограмата Direct Ray Tracing (DXR), която беше включена в 1809 октомврийската актуализирана версия на Windows 10.

API на ниско ниво като DirectX 12 имат основно предимство, което е намаляването на режийните разходи за водача. Сега програмистите са овластени да проектират как ще се държи графичният процесор в своите програми и могат по-добре да управляват ресурсите на GPU, особено като се възползват от паралелизация на процесите. Това включва по-добра поддръжка за множество графични процесори в една система и дори ако те не са от един и същи производител.

Те могат да изпълняват различни видове операции, обикновено "цяло число" или "плаваща точка", като се възползват от възможностите на съвместимата графика и също така разделят сложни операции на по-прости, като ги обработват паралелно на тези по-големи шини. Добър пример е как AMD или Nvidia вече могат да обработват 16-битови операции на своите 32-битови шини, което значително подобрява ефективността на графиката им.

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

В момента DirectX 12 се предлага изненадващо за Windows 7 и Windows 10 и въпреки че не е пряко съвместим с Xbox One, истината е, че практически 90% от неговата функционалност се използва за компютър, разликите са минимални и това е позволило разработчиците бързо адаптиране на своите компютърни игри за Xbox One и обратно.

Вулкан от Хронос

Vulkan е еволюцията към API на ниско ниво на OpenGL и се поддържа от Khronos Corporation. В света на PC те имат второстепенна роля спрямо DirectX 12, но различните му адаптации към различни платформи, като Android, го направиха еталон в графиката за мобилност. Той е съвместим и с това, че Linux е чудесната алтернатива на играта в безплатните системи.

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

Историята на Vulkan датира от година след DirectX 12 и Khronos, която е нестопанска компания, я поддържа толкова често или по-често, отколкото Microsoft със собствен API. Той се базира на мантията на API, която AMD разработва за своята GCN архитектура и това е друг API за ниско ниво за намален „главен драйвер“. AMD дари разработките си на Khronos и това са основите на един от най-добрите графични API на пазара.

В допълнение към превъзходната паралелизация, този дизайн също така позволява да се елиминира предварителната компилация на засенчващите операции на графичния процесор, да може да има повече ефекти и на екрана с по-висока скорост на зареждане, в допълнение към по-подробно коригиране на начина на работа на хардуерните процеси или на това как имаме достъп до наличен е буфер за рамки. Със сигурност API за PC е най-близо до самия хардуер, дори по-добър от DirectX 12.

Vulkan представя и подобрения в API на ниско ниво на Android и други платформи.

Последната му версия Vulkan 1.1, представена в края на 2018 г., добавя важни подобрения като поддръжка на HLSL, което е алтернативата на DirectX 12 за управление на операции на шейдър без предварителна компилация, по-добра съвместимост с DirectX 12 (към многобройните му подпрограми освен графиката), изрична поддръжка за Multi-GPU системи независимо от производителя и, разбира се, поддръжка за RayTracing.

Силни и слаби страни на DirectX 12 срещу Vulkan

В допълнение към вече описаните общи функции, като по-добро използване на хардуер, повече контрол над него и по-добро използване на паралелизация както на графичния процесор, така и на процесора, тези два API също добавят възможност за извършване на общи изчислителни операции с графични чипове с които са съвместими. Това дава възможност на съвместими графични двигатели, вече няколко поколения, да могат да извършват сложни математически операции, които могат да бъдат експлоатирани от програми от всякакъв вид, включително тези без графични компоненти.

В игрите те могат да се използват и за все по-важни вторични операции като изчисляване на реалистична физика, изкуствен интелект, позиционни звукови ефекти и др.

И двата API имат голяма подкрепа от великите графики, и AMD, и Nvidia се стремят да предложат на тези API подходящите драйвери, за да постигнат и двете предлагат на своите потребители най-новите подобрения и да засилят производителността и стабилността на игрите, които използват такава или друг API.

„Драйверът на главата“ и на двете е много нисък, всъщност, както ще видите в нашите тестове, почти няма разлики между тях, което също е знак за важната оптимизация на драйверите и на двамата производители.

Ограничихме рамката на 120FPS за демонстрация на Driver Overhead. В Dota 2 потреблението на процесор значително намалява със същия FPS.

Единствената по-очевидна разлика е, че Vulkan има малко по-малка зависимост от процесора, с по-ниско средно потребление и че също така е много по-отворен към различни платформи, включително Windows и Linux и неговата хомогенизация с OpenGL ES, която е неговата мобилна версия, той е на път допълнително да обедини платформите, по които се движи.

DirectX 12 има в своя полза голямото приемане от разработчиците, които изглежда намират в този API перфектната екосистема, за да намалят разходите си, тъй като дори има голяма интеграция в толкова широко разпространени рамки, колкото и.NET Framework, където се интегрира с хиляда чудеса. с малка загуба на производителност.

Разлики в производителността в игри с двоен API

Тъй като движението се демонстрира чрез ходене, проведохме някои тестове за производителност в различни игри и бенчмарки, които имат възможността да използват тези два API за изпълнение.

Надземен тест на драйвер 3DMark. Резултати в милиони заявки, повече е по-добре.

Пепел от сингълността Резултати във FPS, повече е по-добре.

Странна бригада. Резултати във FPS, повече е по-добре.

Обобщаваме най-добрите хардуерни ръководства, които би трябвало да ви интересуват:

  • Най-добрите процесори на пазара Най-добрите дънни платки на пазара Най-добрата RAM памет на пазара Най-добрите графични карти на пазара Най-добрите SSD дискове на пазара По-добри корпуси на шаси или компютър По-добри захранвания По-добри радиатори и течни охладители

Както можете да видите, резултатите са равномерни и виждаме разлики между програмите за и срещу едни и други. Това ни оставя с въпроса кое е по-добро и отговорът е ясен, зависи от програмата и от това как нейният разработчик знае или иска да се възползва от предимствата му. Остава да мислим, че във всяка игра разработчиците ще използват точно API, който най-добре се възползва от предимствата на нашата графика, въпреки че е ясно, че и двете опции изглеждат повече от компетентни. Какво мислите за нашата статия за Directx 12 срещу Vulkan ? Искаме да знаем вашето мнение!

уроци

Избор на редакторите

Back to top button