Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

DirectX 12 беше пуснат заедно с Windows 10 през 2015 г. С пускането си DirectX 12 на Microsoft постави началото на нова ера за геймърите и разработчиците на игри. Способен да намали натоварването на процесора, като същевременно увеличи производителността на графичния процесор, DirectX 12 бързо си направи име.

Дали обаче увеличаването на вашата производителност наистина е толкова просто, колкото преминаването от DirectX 11 към DirectX 12? Нека разберем, като разгледаме разликите между DirectX 11 и 12.

Какво представлява DirectX на Microsoft?

Както е обяснено в нашия преглед на Microsoft DirectX, DirectX е колекция от API, използвани за обработка на задачи, свързани с мултимедия. Това включва програмиране на игри на базирани на Microsoft платформи като Windows и Xbox. За да предоставим малко контекст, нека поговорим накратко за API.

Интерфейсът за програмиране на приложения (API) прави възможно две или повече компютърни програми да комуникират помежду си, което обсъждаме в

instagram viewer
нашия преглед на API. Мислете за това като за телефон. Ако майка ви ви изпрати текстово съобщение със списък с хранителни стоки, телефонът ви ще получи тези данни и ще ви ги покаже. Това е основно API.

Какви са разликите между DirectX 11 и DirectX 12?

И така, какви са разликите между DirectX 11 и DirectX 12? Казано просто, DirectX 12 е най-новата версия на DirectX. Една от най-забележимите разлики между двете е как взаимодействат с вашия хардуер. Повечето игри, разработени с DirectX 11, използват само между две и четири процесорни ядра. Едно от тези ядра обикновено е предназначено да казва на GPU какво да прави.

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

DirectX 12 също идва с някои фантастични звънци и свирки. Това включва асинхронни изчисления и обекти за състояние на конвейер (PSO). Асинхронните изчисления увеличават използването на GPU, като позволяват паралелна работа на множество работни натоварвания. Това по същество отключва пълния потенциал на вашия GPU.

Освен рендирането на графики, вашият графичен процесор отговаря за обработката на широк набор от други задачи, като например изпълнение на алгоритми за машинно обучение. С DirectX 11 графичният процесор може да изпълнява само една от тези задачи наведнъж и в определен ред. Когато това се случи, производителността се влошава, тъй като всичките ви GPU ресурси не се използват.

Мислете за това като сервитьор в ресторант. Когато сервитьор за първи път вземе поръчката ви, той ви пита какво искате да пиете първо. След като получите напитките си, те ви питат какво искате за основното ястие. Вашата поръчка се изпълнява на стъпки. Сервитьорът няма да ви попита какво искате за десерт, преди да сте изяли основното ястие. Въпреки че това е ефективно, не е толкова ефективно, колкото би могло да бъде.

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

DirectX 12 също представи PSO. С DirectX 11, когато геометрията на играта се изпраща на GPU за бъде изобразен, различни хардуерни настройки са отговорни за тълкуването и изобразяването на това данни. Това се нарича графичен тръбопровод и е потокът от входни и изходни данни, които се появяват, когато вашият GPU изобразява кадри. Графичният тръбопровод на DirectX 11 обаче не е перфектен.

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

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

Това значително намалява натоварването на процесора, установено в DirectX 11, и подобрява производителността. И така, как всъщност изглежда тази разлика? Е, според Microsoft, DirectX 12 намалява натоварването на процесора с до 50 процента и подобрява производителността на графичния процесор с цели 20 процента. Въпреки че това са някои съществени подобрения, това не означава, че ще видите същите резултати.

Защо преминаването от DirextX 11 към DirectX 12 не е лесно

DirectX 11 беше пуснат за първи път за Windows Vista на 27 октомври 2009 г. И така, с DirectX 12, който следва през 2015 г., това е шестгодишна разлика между DirectX 11 и DirectX 12. През това време са разработени хиляди игри, използващи DirectX 11. За съжаление, преминаването от DirectX 11 към DirectX 12 е всичко друго, но не и лесно.

DirectX 11 е това, което се нарича API от високо ниво. Казано по-просто, API-тата на високо ниво са по-лесни за работа от разработчиците. Резултатът е стабилни, полирани и годни за игра игри. От друга страна, DirectX 12 е API от ниско ниво и е различен звяр в сравнение с DirectX 11. Въпреки че позволява на разработчиците да прецизират оптимизацията на детайлно ниво, тя също така изисква обширни познания за използване.

Като се има предвид това, игра, разработена в DirectX 12, може да завърши с по-лоша производителност в зависимост от познанията на разработчика за API. Има подобрения, които идват с DirectX 12, но всъщност се свежда до това колко добре един разработчик може да го внедри. Поради тази причина много разработчици избират да се придържат към API от високо ниво като DirectX 11.

Трябва ли да изберете DirectX 11 или DirectX 12?

Отговорът зависи от няколко неща, като каква игра се опитвате да стартирате. Например, Guild Wars 2 работи на DirectX 11. Дори ако вашата операционна система и хардуер използват DirectX 12, няма да имате възможност да изберете DirectX 11 в Guild Wars 2, защото играта не го поддържа. Това е изцяло решение на разработчика ArenaNet.

Кредит за изображение: Мартин Керщайн/Guild Wars 2

Вярвате или не, отне девет години на ArenaNet да премине от DirectX 9 към DirectX 11. Има обаче някои игри, които поддържат както DirectX 11, така и DirectX 12. Fortnite (прочетете нашият лист за измама Fortnite), например. Чрез настройките на играта потребителите могат да превключват между двете версии. За да обобщим, не всяка игра поддържа едновременно DirectX 11 и DirectX 12. За тези, които го правят, превключете между двете и сами определете кое се представя по-добре на вашия компютър.

Дали можете да избирате между DirectX 11 и DirectX 12 също ще зависи от вашия хардуер. Почти всеки модерен GPU ще поддържа DirectX 12, но същото не може да се каже за по-старите GPU като Radeon HD 4870. Издаден през 2008 г., този GPU поддържа само до DirectX 10. Това означава, че няма да може да стартира повечето съвременни игри, които работят с DirectX 11 и DirectX 12.

Дали DirectX 12 е правилният избор за вас?

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