Aký je rozdiel medzi 11 direct a 12. DX11 a DX12: je medzi nimi rozdiel? Testovací stojan, metodika testovania

  • 03.03.2020

Technológia patrí budúcnosti – do nového programovacieho rozhrania bolo zakomponovaných toľko vylepšení. Direct3D 12 (a jeho multiplatformový náprotivok Vulkan) umožňuje hernému enginu efektívnejšie spravovať zdroje GPU priamym riadením úloh, ktoré ovládač alebo samotné knižnice Direct3D vykonávali v predchádzajúcich iteráciách API. Moderné GPU plne podporujú funkcie vykresľovania Direct3D 12 a poskytujú efektívnu grafickú integráciu s univerzálnym výpočtovým systémom (nazývaným asynchrónne výpočty).

V praxi však API novej generácie ešte ani zďaleka neuplatňujú svoj plný potenciál. Nebudeme prikrášľovať obraz, ktorý bol odhalený v prvej časti testovania grafických kariet v Direct3D 12 a Vulkan. V skutočnosti iba dve z hier, ktoré dôsledne používame ako benchmarky GPU, ukázali, čo nový softvér dokáže s náležitou starostlivosťou – hovoríme o Ashes of the Singularity a DOOM. Vo zvyšných testoch možno pri zmene API očakávať prinajlepšom mierny nárast výkonu a potom s množstvom výhrad.

Medzi najnovšími generáciami grafických procesorov teda veľké sympatie k Direct3D 12 prejavili iba veľké čipy AMD - Hawaii (Radeon R9 390X), Fiji (Radeon R9 Fury X) a Vega (Radeon RX Vega 64). Výkon vlajkovej lode Grafická karta NVIDIA ( GeForce GTX 1080 Ti) v priemere softvérové ​​rozhranie nijako neovplyvňuje a zvyšok „zelených“ procesorov pod ňou funguje horšie ako pod tým starým. Nakoniec Microsoft nevedomky udelil čierny bod čipom s architektúrou Kepler a Maxwell, ktoré s najväčšou pravdepodobnosťou nikdy nenájdu plnú podporu v herných motoroch pre Direct3D 12.

Slabinou API novej generácie je odvrátená strana ich sily: „tenké“ knižnice Direct3D 12 dali vývojárom herných enginov veľa funkcií a implementácia potrebných programovacích techník v masovom softvéri sa oneskoruje. Nie je to prekvapujúce, pretože herné počítače majú stále veľa grafických kariet, ktoré sú v najlepšom prípade iba formálne kompatibilné s Direct3D 12 a Vulkan, takže výkonnú optimalizáciu hier pre nové API možno stále pozorovať iba v jednotlivých projektoch založených na ich vlastných motoroch. .

Grafické rozhrania API a závislosť procesora

Niektoré funkcie Direct3D 12 a Vulkan však nevyžadujú veľké úsilie zo strany vývojárov hier. Samotná štruktúra potrubia týchto rozhraní API vám umožňuje znížiť zaťaženie centrálneho procesora skrátením času prípravy volania žrebu, čo je obzvlášť dôležité, keď je na obrazovke veľa samostatných modelov. [poznámka: Call call – príkaz, ktorý vyžaduje vytvorenie jednej siete].

Prvýkrát na tento problém upozornili AMD a DICE, tvorcovia proprietárneho nízkoúrovňového rozhrania Mantle. Prvým titulom, ktorý podporoval Mantle, bol Battlefield 4, no ešte v roku 2014 nebola herná grafika geometricky dostatočne bohatá na to, aby CPU obmedzovalo snímkovú frekvenciu vo vyváženom systéme. Dokonca o rok neskôr sme dospeli k záveru (pozri naše testovanie závislosti procesorov), že každý moderný procesor Intel so štyrmi jadrami odomyká potenciál špičkových GPU tej doby.

Medzitým sa však situácia zmenila: hry sa stali zložitejšími a GPU získali mnohonásobne väčší výpočtový výkon. Na druhej strane CPU sa z hľadiska jednovláknového výkonu vyvíjajú dosť pomaly a piate, šieste, siedme atď. jadrá sa v hrách používajú len zriedka. Mnoho hráčov upgradovalo z dvojjadrového procesora na štvorjadrový s očakávaním, že sa to dlhé roky nezmení, takže teraz sa otázka závislosti procesora opäť stala aktuálnou.

Najvýraznejším, aj keď dosť exotickým príkladom je strategická hra Ashes of the Singularity. Jeho engine vďaka rýchlemu návratu draw call výrazne zvyšuje výkon pod Direct3D 12 a Vulkan, dokonca aj s výkonným centrálnym procesorom. Ale v našej metodológii sú aj iné hry s bohatou geometriou. Tentoraz budeme testovať na platforme so štyrmi jadrami a zníženou frekvenciou CPU a potom výsledky porovnáme s tým, čo bolo predtým dosiahnuté pomocou vysokovýkonného procesora.

V predchádzajúcej časti testovania procesor našej testovacej stolice Core i7-5960X bežal na konštantnej frekvencii 4 GHz s ôsmimi aktívnymi jadrami. Pre simuláciu slabšieho CPU sme vyradili polovicu jadier a nastavili takt na približne 2,5 GHz.

Úprimne povedané, toto nie je príliš realistická konfigurácia pre moderné procesory Intel (dokonca aj mladšie modely Core i5 generácií Caby Lake a Coffee Lake berú vyššie frekvencie, keď sú štyri jadrá plne zaťažené), ale je celkom konzistentná s niektorými modelmi. predchádzajúcich generácií. 1,5 GHz je vhodný rozdiel na to, aby sme jasne ukázali vzťah medzi verziou grafického API a závislosťou procesora a meranie snímkovej frekvencie naprieč celým spektrom moderných modelov CPU necháme úlohou pre ďalší diel našej série „Procesor závislosť“.

Na druhej strane sme nezašli tak ďaleko, aby sme nechali dve aktívne jadrá. V modernom domácom PC nie je pre takýto procesor miesto a niektoré hry jednoducho nebudú správne fungovať na dvoch jadrách.

Na základe výsledkov prvého testu sme od účastníkov diskvalifikovali niekoľko grafických kariet, predovšetkým GeForce GTX 970 a GTX 980 Ti, ktoré pre svoje architektonické vlastnosti nie sú vhodné pre hry pod Direct3D 12 a Vulkan. Okrem toho boli vylúčené lacné herné grafické karty Radeon RX 560 a GeForce GTX 1050 Ti - jednoducho nemajú výkonné GPU na optimalizáciu API, aby mohli hrať veľkú úlohu aj na slabej platforme.

Vo výsledkoch testov prvej časti článku sme napokon našli niekoľko chýb a všetky údaje (so silným aj slabým CPU) uvádzame v zhrnutých grafoch a tabuľkách. Aby sa zabezpečilo správne porovnanie, nové výsledky boli získané s rovnakými verziami ovládačov (Radeon Software Crimson Adrenalin Edition 18.1.1 a GeForce Game Ready Driver 390.65), ktoré sme použili naposledy. Ovládače sú pomerne staré, no ak by sme testy zopakovali na aktuálnych verziách, výsledky by to výrazne neovplyvnilo. Veď najčerstvejšie z vybraných hier vyšli ešte v septembri minulého roka a ovládače už obsahujú optimalizácie pre všetky. Odvtedy výrobcovia GPU nevykonali žiadne globálne zmeny v softvéri, ktoré by zvýšili celkový výkon.

Testovací stojan, metodika testovania

Konfigurácia testovacieho zariadenia
CPU Intel Core i7-5960X (4 jadrá @ 2,5 GHz, konštantná frekvencia)
Intel Core i7-5960X (8 jadier @ 4,0 GHz, konštantná frekvencia)
Základná doska ASUS RAMPAGE V EXTREME
RAM Corsair Vengeance LPX 2133 MHz 4GB x 4GB
ROM Intel SSD 520 240 GB + Crucial M550 512 GB
Zdroj Corsair AX1200i 1200W
Systém chladenia CPU Thermalright Archon
Rám CoolerMaster Test Bench V1.0
Monitor NEC EA244UHD
Operačný systém Windows 10 Pro x64
Softvér AMD GPU
Všetky grafické karty Radeon Software Crimson Adrenalin Edition 18.1.1
Softvér GPU NVIDIA
Všetky grafické karty Ovládač GeForce Game Ready 390.65
Benchmarky: hry
Hra (v poradí podľa dátumu vydania) API Nastavenia, testovacia metóda Vyhladzovanie na celej obrazovke
1920 × 1080/2560 × 1440 3840 × 2160
Rise of the Tomb Raider DirectX 11/12 Max. kvalita, VXAO vypnuté. Vstavaný benchmark Vypnuté
Tom Clancy je divízia DirectX 11/12 Max. kvalita, HFTS vypnuté. Vstavaný benchmark SMAA 1x Ultra + TAA: Supervzorkovanie TAA: Stabilizácia
DOOM OpenGL 4.5 / Vulkan Max. kvalitu. Zlievárenská misia TSSAA 8TX Vypnuté
Deus Ex: Mankind Divided DirectX 11/12 Max. kvalitu. Vstavaný benchmark Vypnuté
Battlefield 1 DirectX 11/12 Max. kvalitu. OCAT, začiatok misie Over the Top TAA
Ashes of the Singularity: Eskalácia DirectX 11/12 / Vulkan Vypnuté
Total War: WARHAMMER II, vstavaný benchmark DirectX 11/12 Max. kvalitu. Vstavaný benchmark (Battle Benchmark) Vypnuté

Testovací klip obsahuje sedem hier vydaných v rokoch 2016-2017, z ktorých šesť podporuje Direct3D 12 API a dve podporujú Vulkan. Je s určitosťou známe, že všetky z nich tak či onak využívajú funkciu Multi-Engine ("asynchrónny výpočet"). A pár slov o DOOM. Táto hra využíva takzvané Shader Intrinsitc Functions - shadery, ktoré sa priamo spúšťajú na GPU vybranej architektúry, čím sa obchádza fáza kompilácie z kódu na vysokej úrovni. Iba Vulkan, na rozdiel od OpenGL a Direct3D akejkoľvek verzie, poskytuje takúto príležitosť a iba AMD vydala zodpovedajúce rozšírenie pre Vulkan. NVIDIA má tiež svoje vlastné Shader Intrinsics, ale sú dostupné iba cez proprietárne rozhranie NVAPI alebo knižnicu GameWorks. To je dôvod, prečo Vulkan v DOOM priniesol tak silné zvýšenie výkonu pre GPU AMD, hoci neurazí ani čipy NVIDIA.

Nová verzia DirectX 12, úprimne povedané, bola oneskorená. DirectX 11 bol predstavený v októbri 2009 - pred viac ako štyrmi rokmi. Pre porovnanie, cesta od DirectX 10 k DirectX 11 trvala približne tri roky. Okamžite poznamenávame: DirectX 12 na Game Developers Conference v San Franciscu bolo práve oznámené - prvé hry založené na DX 12 sa objavia až koncom roka 2015. V tomto čase môže byť Microsoft včas s vydaním Windows 9, bez ohľadu na názov, ktorý tento OS nakoniec dostane.

Vo všeobecnosti je otázka "Kde si môžem stiahnuť DirectX 12?" zatiaľ žiadna odpoveď. Existujú len určité pohľady na to, čo nová verzia API prinesie vývojárom a nám hráčom. Oznámenie DirectX 12 by sa medzitým malo považovať za signál, že aktívna práca na vývoji DirectX pokračuje. V minulosti nedostatok viditeľnej aktivity zo strany Microsoftu viedol k tomu, že niektorí už spochybňovali vydanie nových verzií DirectX. Toto je o minuloročnom rozhovore s Royom Taylorom, viceprezidentom Global Channel Sales, heise.de. Aj keď takéto vyjadrenia treba brať, ako sa hovorí, „s štipkou soli“, najmä vo svetle vlastnej iniciatívy AMD – Mantle (viac o tom v našej recenzii a testovaní AMD Mantle). Nech je to akokoľvek, Microsoft sa rozhodol pripomenúť DirectX a konať.

Na rozdiel od predchádzajúcich iterácií sa nové vydanie nezameriava na grafické efekty a podporu nových hardvérových funkcií GPU, ale na optimalizáciu softvérového balíka DirectX pre existujúci hardvér. AMD presvedčivo preukázalo, že v niektorých smeroch je DirectX 11 prekážkou, ktorá obmedzuje výkon systému. Konkrétne: DirectX 11 je neefektívny s množstvom remízových hovorov. Tento problém sme preskúmali v našej recenzii AMD Mantle, ktorá za týchto podmienok ukázala veľmi pôsobivé výsledky.

Očakáva sa, že DirectX 12 zvýši efektivitu CPU o 50 % oproti DX11. Aspoň tento výsledok bol získaný pomocou uzavretej verzie 3DMark 2011, portovanej na DX12. Microsoft uvádza niekoľko faktorov, ktoré to umožnili.

⇡ Viacvláknové vykonávanie pokynov ovládača

Výsledky profilovania toho istého benchmarku demonštrujú efektívnejšie rozdelenie zaťaženia CPU medzi niekoľko vlákien. Diagram ukazuje, že operácie nielen samotného programu 3DMark, ale aj ovládača grafickej karty sú teraz rozdelené do štyroch vlákien – hovoríme o komponente vykonávanom v Užívateľskom režime.

Okrem toho, ak sa pozriete pozorne na diagram, všimnete si, že pri použití DirectX 12 zmizne komponent grafického ovládača v režime jadra. Hovoríme o nízkoúrovňovom podsystéme Direct3D, ktorý obsahuje správcu video pamäte, plánovač GPU a ovládač miniportu, ktorý musí výrobca GPU poskytnúť pre priamy prístup k hardvérovým funkciám.

Celá kuchyňa Direct3D sa tak teraz úplne presunula do užívateľského režimu. Sám o sebe takýto krok negatívne ovplyvní výkon, ale teoreticky by mal byť kompenzovaný efektívnejším multithreadingom, ako aj absenciou zmeny kontextu medzi režimom používateľa a režimom jadra.

⇡ Stavové objekty potrubia

Okrem toho Microsoft priamo pracoval na probléme s losovaním, v ktorom je Mantle taký úspešný. To si vyžiadalo zásadné prepracovanie grafického potrubia Direct3D. Tu je potrebný malý vzdelávací program o tom, ako sa vykresľovanie vykonáva v Direct3D. Existuje niekoľko etáp potrubia, ktoré na abstraktnej úrovni predstavujú fázy prípravy obrazu. Dôležité je, že etapy, ako by sa mohlo zdať, neprebiehajú jedna za druhou v reálnom čase. Komponent DirectX runtime je potrebný na určenie stavu potrubia, čo je množina stavov každej z fáz, to znamená parametre operácií, ktoré GPU vykonáva počas procesu vykresľovania, a zdroje - údaje, o ktorých operácie budú (textúry, vrcholy atď. Ďalej). Až keď sa toto všetko spojí, uskutoční sa volanie draw – volanie, ktoré spustí vykreslenie objektu. A potom ovládač miniportu GPU preloží stav potrubia do súboru inštrukcií pre GPU v jazyku, ktorému rozumie (stav hardvéru).

Posledná fáza prispieva k celkovému času vykresľovania objektu (nezabudnite, že tento a všetky vyššie uvedené postupy sa stále vykonávajú na CPU). A ak je na obrazovke veľa objektov, potom nastáva notoricky známy problém s volaniami, keď sa výkon procesora stane prekážkou. AMD Mantle, ktoré je nízkoúrovňovým API, skracuje čas potrebný na prípravu potrubia na volanie draw jednoducho odstránením kroku prekladu. stav potrubia v stav hardvéru... Aj keď ktovie, aké ďalšie optimalizácie AMD do Mantle zahrnulo. Mantle SDK spolu s podrobnou dokumentáciou zatiaľ nie je verejne distribuovaný.

Direct3D 12 je stále API na vysokej úrovni, relatívne necitlivé na vykresľovací hardvér (GPU hlási iba funkcie, ktoré podporuje). Rieši problém iným spôsobom. Namiesto odovzdania celého stavu potrubia vodičovi v čase výzvy na žrebovanie sa stavy mnohých samostatných stupňov potrubia kombinujú do niekoľkých väčších objektov. - PSO (Pipeline State Objects), ktoré sa generujú nezávisle a okamžite sa poskytujú vodičovi. Ovládač teda bez čakania na výzvu draw môže PSO okamžite previesť na hardvérové ​​inštrukcie a tie takmer poslať do registrov GPU (tento bod nie je v zdroji na MSDN úplne jasný). Okrem toho zhrubnutie objektov, ktoré reprezentujú stavy fáz potrubia, umožňuje vodičovi rýchlejšie vyriešiť závislosti medzi týmito fázami. Ak sa v procese prípravy na výzvu na žreb zmenil ktorýkoľvek z PSO, je tiež potrebné prepočítať iba príslušné pokyny, nie celý stav hardvéru.

Nie je tiež celkom jasné, prečo by práve samostatné znázornenie stavu potrubia malo viesť k dramatickému skráteniu času prípravy na výzvu na žrebovanie. Tak či onak, prevod stavu potrubia do stavu hardvéru stále trvá procesoru. Snáď skorá príprava jednotlivých PSO nejako pomôže rýchlejšie vyriešiť závislosti pri príprave stavu hardvéru, ako o tom píšu na MSDN. Výhodu možno získame spustením komponentu Direct3D runtime a ovládača GPU na rôznych vláknach.

⇡ Zoznamy príkazov, zväzky

DirectX 12 tiež predstavuje nový model správy zaťaženia GPU pomocou zoznamov príkazov. Tento výraz už existuje v modeli DirectX 11. Rozhranie API poskytuje dva typy kontextu zariadenia: okamžitý kontext a odložený kontext. V prvom prípade sa príkazy odosielajú priamo ovládaču GPU, v druhom sa zapisujú zoznamy príkazov, ktoré je možné následne prehrať v bezprostrednom kontexte. Novinkou v DX12 je, že ovládač GPU v modeli Direct3D 11 dokáže vopred vykresliť inštrukcie nízkej úrovne na základe rôznych zoznamov inštrukcií.

Okrem zoznamov príkazov prináša Direct3D 12 ďalšiu entitu – zväzky. Bundle je súbor príkazov, ktoré možno vykonať viackrát v kombinácii s rôznymi zdrojmi – napríklad na vykreslenie rovnakých objektov s rôznymi textúrami. V tomto prípade je ovládač povinný pripraviť pokyny pre GPU iba raz.

⇡ Kompatibilita, závery

Na rozdiel od predchádzajúcich verzií DirectX 12 nestratí kompatibilitu s existujúcimi GPU, ktoré podporujú DirectX 11. NVIDIA už oznámila, že DX12 prevezmú procesory Fermi, Kepler a Maxwell. AMD garantuje kompatibilitu pre GPU založené na architektúre GCN, Intel pre grafiku Iris a Iris Pro v čipoch Haswell. Očakáva sa aj portovanie DirectX 12 na Xbox One.

Existujú však informácie o niektorých dodatočných funkciách DirectX 12, ktoré si stále vyžadujú hardvérové ​​úpravy GPU. Celkovo možno túto neistotu spolu s dlhými čakacími dobami na prvé hry DirectX 12 považovať za znak toho, že vývoj API je stále vo veľmi ranom štádiu. Tento predpoklad podporuje aj téma optimalizácie využitia procesora, ktorá spája DX12 a AMD Mantle, predstavená pomerne nedávno – vlani na jeseň.

Prirodzene, DirectX 12 vrhá tieň na budúcnosť iniciatívy AMD, ktorá odštartovala pomerne úspešne a naberá na obrátkach a získava podporu v populárnych herných engine (Frostbite 3, ďalšia verzia CryEngine). Možno to bolo AMD, kto motivoval Microsoft tým, že upozornil na nevýhody DirectX 11, ale Mantle o rok a pol alebo dva už nebude jediným API, vďaka ktorému je možné sa im vyhnúť. Zároveň sa kompatibilita DirectX 12 neobmedzuje len na grafické adaptéry založené na architektúre GCN. Napriek tomu je priskoro pochovať Mantle, keďže AMD má veľa času na získanie lojality vývojárov. Navyše neexistuje žiadna záruka, že DirectX 12 bude nakoniec rovnako účinný ako Mantle. Každopádne, DX12 stále nie je nízkoúrovňové API, na rozdiel od Mantle, ktoré mu automaticky dáva výkonnostnú výhodu. Je príliš skoro robiť predpoklady o tejto otázke, kým sa neobjavia prvé výsledky verejne dostupných benchmarkov.

Aplikačné programovacie rozhrania (API) sú už dlho najkonzervatívnejším komponentom 3D grafiky. Štandard Direct3D 11 bol predstavený už v roku 2008 a až doteraz ho väčšina nových hier na PC používa ako hlavné a vo väčšine prípadov jediné API. Tento ostrov stability v extrémne rýchlo rastúcom odvetví, ako sú počítačové hry, nevznikol kvôli tradicionalizmu vývojárov softvéru alebo výrobcov hardvéru. Naopak, jednotný štandard Microsoftu, ktorý z veľkej hry vytlačil kedysi silného rivala (OpenGL), umožnil všetkým účastníkom trhu sústrediť svoje úsilie na svoje priame úlohy bez potreby optimalizácie ovládačov, architektúry GPU a herných enginov. pre niekoľko API súčasne (ako za starých čias pod Glide a populárnym OpenGL).

Nedávne otrasy týkajúce sa DirectX 12 a Vulkanu sú v skutočnosti poháňané jedinou spoločnosťou AMD, ktorá v roku 2013 vydala svoje vlastné programovacie rozhranie v spolupráci s DICE, tvorcom série Battlefield. Momentálne sú práce na Mantle prerušené, ale obe univerzálne API novej generácie si požičali nápady od AMD a sledujú rovnaký cieľ – efektívnejšie využívať výpočtové zdroje, ktorými disponujú moderné GPU.

Napriek takej atraktívnej myšlienke Direct3D 12 (ďalej budeme hovoriť konkrétne o grafickej knižnici ako súčasti DirectX) a Vulkan, tempo implementácie nových API ponecháva veľa želania aj v porovnaní s Direct3D 11, ktorý si vyžiadal extrémne dlhý čas úplne nalákať vývojárov z Direct3D 9. A predsa tvorcovia značného množstva vysokoprofilových a vysokorozpočtových projektov za posledné dva roky implementovali podporu pre Direct3D 12 alebo Vulkan aspoň ako experimentálnu alebo vedľajšiu funkciu. Koniec koncov, metodika testovania GPU 3DNews už z veľkej časti pozostáva z hier, ktoré podporujú tieto API. Je vhodný čas urobiť prieskum a urobiť predbežné závery o tom, aké užitočné sú DirectX 12 a Vulkan pre výkon moderného hardvéru.

Nové funkcie Direct3D 12 a Vulkan

O princípoch Direct3D 12 a jeho rozdieloch oproti predchádzajúcej verzii Microsoft API sme hovorili v roku 2014, keď bol štandard v ranom štádiu vývoja a mnohé z jeho funkcií ešte neboli dokončené. Hlavná vec, ktorá sa odvtedy zmenila tvárou v tvár Direct3D 12, je súbor ďalších funkcií vykresľovania otvorených pre GPU s rôznymi hardvérovými schopnosťami.

Nechajme zo zákulisia štruktúru vykresľovacieho potrubia a niektoré funkcie programovania pre Direct3D 12, ktoré sú popísané v našom dlhotrvajúcom článku. Existuje len niekoľko charakteristických vlastností nového API, ktoré by mali zaujímať širokú verejnosť. Začnime recenziu univerzálne významnými bodmi a skončíme samotnou funkciou Direct3D 12 (a Vulkanu), ktorá na stránkach publikácií a fór vyvolala množstvo kontroverzií, nedorozumení a nadhodnotených očakávaní – asynchrónne počítanie.

Najatraktívnejšou vlastnosťou Direct3D 12 a Vulkanu je rýchla príprava tzv. kresliť hovor. V čase, keď sa AMD snažilo popularizovať Mantle, mnohí ľudia, ktorí boli predtým ďaleko od programovania počítačovej grafiky, boli nútení sa s týmto pojmom oboznámiť. V 3D vykresľovaní je to názov príkazu, ktorý musíte vytvoriť jediný polygonálna sieť (mrež). V hrách je každý model postavy, jednotky a prakticky akéhokoľvek nezávislého objektu sieťou. V dôsledku toho, čím viac takýchto objektov je na obrazovke, tým viac volaní na kreslenie by mal centrálny procesor poskytnúť. Krátka príprava volania na kreslenie v Direct3D 12, pričom všetky ostatné veci sú rovnaké, znižuje využitie CPU, znižuje čas nečinnosti GPU a v dôsledku toho umožňuje vykreslenie väčšieho počtu objektov na obrazovku. Pomáha aj vyrovnávanie záťaže vo viacjadrovom systéme, ktoré je v Direct3D 12 efektívnejšie.

Viacjadrové procesory v Direct3D 12

Vo všeobecnosti sa vrstva API v softvérovom balíku, ktorý riadi grafický procesor, v porovnaní s Direct3D 11 zoštíhlila v dôsledku skutočnosti, že mnohé funkcie, ktoré sa v tej či onej miere vykonávajú automaticky v Direct3D 11 (napríklad správa pamäte, synchronizácia medzi pokynmi fronty, paralelnosť údržby záťaže na GPU atď.), teraz úplne patria k hernému enginu. Na jednej strane existuje dostatok príležitostí na optimalizáciu výkonu, ale na druhej strane musí programátor pamätať na vlastnosti architektúry rôznych GPU, aby sa vyhol zníženiu výkonu.

Direct3D 12 priniesol množstvo funkcií vykresľovania načrtnutých v úrovniach funkcií 12_0 a 12_1. Ale na rozdiel od predchádzajúcich iterácií Direct3D, verzia 12 nie je určená na to, aby ukázala svetu niečo dovtedy neslýchané (ako to bolo v prípade shaderov v Direct3D 8 a polygónovej teselácie v Direct3D 11). Niektoré funkcie úrovní funkcií 12_0 a 12_1 skutočne zlepšujú kvalitu určitých efektov (napríklad tých, ktoré súvisia s priehľadnými textúrami), zatiaľ čo iné sa používajú v pokročilých vykresľovacích algoritmoch (pozri popis VXGI v našom). Napriek tomu väčšina položiek na úrovniach funkcií 12_0 a 12_1 slúži na to, aby GPU vykonával rýchlejšie množstvo už známych úloh, ktoré inak zaťažujú priepustnosť jednotiek mapovania textúr, pamäťovej zbernice atď.

V podstate extra výpočtový výkon, ktorý nová verzia API uvoľňuje, umožňuje obohatiť hernú grafiku o detailnejšie textúry a objekty. Navyše v niektorých hrách pre Direct3D 12 a Vulkan je hrateľnosť úzko spätá s výberom API (ako v Ashes of the Singularity, ktoré kvôli množstvu jednotiek na obrazovke vytvára obrovské množstvo žrebov). Ale ak dáte otázku v znení "Bude hra vyzerať lepšie, ak do nej zapojíte Direct3D 12 alebo Vulkan?" Rozsah prijatia nových API je stále príliš malý a hardvér v rukách používateľov je príliš rôznorodý na to, aby vývojári hier otvorili exkluzívny prístup k značnej časti vizuálneho obsahu pre grafické karty, ktoré dobre fungujú pod Ditect3D 12 a Vulkan.

Zároveň sa nevyžaduje, aby GPU bolo kompatibilné s úrovňou funkcií 12_0 a 12_1, aby fungovalo pod Direct3D 12. V skutočnosti GPU s funkciami na úrovni funkcií 11_0 a 11_1, vytvorené v čase, keď Direct3D 12 ešte nebolo ani v dohľade (Femi a Kepler od NVIDIA a prvá generácia GCN od AMD) môžu naplno využiť runtime knižnicu Direct3D 12 a potenciálne ťažiť zo zvýšenia výkonu. AMD a NVIDIA podporujú Direct3D 12 v ovládači počnúc sériou Radeon HD 7000 a GeForce GTX 400, resp.

Asynchrónne výpočty v Direct3D 11 a Direct3D 12

Moderné GPU sa len zo zvyku nazývajú grafické procesory. Architektúra pozostávajúca z veľkého množstva exekučných jednotiek (ALU, stream procesory alebo CUDA jadrá, v terminológii rôznych výrobcov) je vhodná na spúšťanie akýchkoľvek programov, ktoré možno ľahko rozdeliť do nezávislých reťazcov operácií (GP-GPU, General Purpose GPU) - potom priemyselné úlohy, ťažba kryptomien, strojové učenie atď.

Techniky GP-GPU sa v hrách využívajú (aspoň od čias, keď NVIDIA kúpila spoločnosť - tvorcu "fyzického akcelerátora" Ageia a prispôsobila jej PhysX API na beh na GPU), ale tým sa nemôže pochváliť žiadna z komerčných hier ., ktorý odomkol potenciál negrafických výpočtov v rovnakej miere ako „ukážky“ PhysX, ktoré NVIDIA pravidelne predvádza. Dôvod leží na povrchu: ani tie najlepšie GPU nemajú nadbytočné zdroje, aby zabezpečili, že skutočne rozsiahle výpočty hernej fyziky nezničia snímkovú frekvenciu. Najmä v čase, keď sa vývojárom softvéru a hardvéru otvorili lákavejšie vyhliadky – ultravysoké rozlíšenie a VR.

Súčasné a potenciálne univerzálne počítačové funkcie v dnešných hrách sa však neobmedzujú len na fyziku. Ako metódy GP-GPU možno implementovať SSAO (Screen-Space Ambient Occlusion), Screen-Space Reflections, generovanie tieňovej mapy, rôzne modely globálneho osvetlenia atď. Je ľahké vidieť, že v tomto prípade neexistuje zásadná hranica medzi problémami dvoch typov. Existuje len na úrovni aplikačnej architektúry a API, keď grafika a výpočty sú samostatné rady inštrukcií. Je to simultánne vykonávanie viacerých radov inštrukcií, ktoré je základom toho, čo sa nazýva (nie úplne správne, ale o tom neskôr) asynchrónne počítanie.

Direct3D 11 má jedinú frontu inštrukcií na vykresľovanie grafiky. A bez ohľadu na to, ako starostlivo je architektúra GPU optimalizovaná, v procese vykresľovania sa „bubliny“ nevyhnutne objavujú, keď sú ALU shadera nečinné, zatiaľ čo ostatné komponenty procesora vykonávajú svoju prácu - jednotky mapovania textúr, ROP, pamäťová zbernica atď.

Na druhej strane, Direct3D 12 a Vulkan vám umožňujú vytvoriť dve samostatné fronty - pre grafiku a výpočty (nepočítajúc fronty na prenos údajov cez zbernicu PCI Express) a úloha distribúcie zdrojov GPU medzi nimi pripadá na samotný procesor. a jeho ovládač, ktoré sledujú vznik „bublín“ v tom či onom rade a efektívne ich uzatvárajú pokyny zo susedného radu. Vo všeobecnosti je tento prístup podobný funkcii Hyper-Threading centrálnych procesorových jednotiek.

Poznámka: n v skutočnosti v Direct3D 12 a Vulkan môžete vytvárať viaceré fronty všetkých troch typov – v závislosti od toho, koľko GPU podporuje.

Zostáva objasniť, prečo výraz „asynchrónny“ najlepšie nevystihuje, čo sa deje počas procesu vykresľovania s dvoma frontami inštrukcií, ktoré sme opatrne nazvali oddelené, ale nie nezávislé. Správny (a oficiálny pre Direct3D 12) výraz je Multi-Engine. Faktom je, že tie procedúry, ktoré sa vykonávajú v „grafických“ a „výpočtových“ frontoch Direct3D 12 alebo Vulkan, spravidla obsahujú vzájomné dátové závislosti: vykonávanie pokynov v jednom fronte sa musí zastaviť, kým sa nedosiahne určitý výsledok. je prijatá inštrukcia od iného.

V tomto prípade môžeme hovoriť len o simultánnom (súbežnom), ale nie asynchrónnom (v čase dokončenia nezávislom) vykonávaní. Príkladom skutočnej asynchrónie je proces na pozadí s nízkou prioritou, ktorý sa vyskytuje súčasne s vykresľovaním snímky, ako je dekompresia zdrojov, aktualizácia tieňových máp v modeloch globálneho osvetlenia atď. (pozri snímku AMD vyššie). Pojem „asynchrónny výpočet“ je teda použiteľný pre úzky okruh úloh, pričom pojem Multi-Engine popisuje súčasné vykonávanie niekoľkých radov výpočtových inštrukcií bez ohľadu na štruktúru závislostí medzi nimi.

Multi-Engine na GPU rôznych architektúr: AMD GCN

Zamyslime sa nad pálčivou otázkou praktickej implementácie Multi-Engine. Populárny názor je, že a) GPU AMD ťažia z použitia Multi-Engine, zatiaľ čo čipy NVIDIA (vrátane Pascalu) ho nedokážu využiť tak efektívne kvôli architektonickým obmedzeniam, b) Spomedzi architektúr NVIDIA podporuje Multi-Engine iba Pascal ... Ako sa presvedčíme, obe tvrdenia sú vo všeobecnosti správne, no úplný obraz zďaleka nie je taký jednoznačný.

Najjednoduchším prípadom na analýzu je architektúra GCN (Graphics Core Next), na ktorej sú založené všetky GPU AMD v posledných rokoch, od Tahiti (/) po Vega 10 (/). Výhody aj nevýhody čipov AMD v skutočnosti uprednostňujú použitie Multi-Engine. GCN sa v zásade zameriava na výpočty GP-GPU rovnako ako na vykresľovanie grafiky a je navrhnutý tak, aby veľká časť úlohy nasýtenia GPU paralelizmom bola vyriešená na hardvérovej úrovni a nie na ovládači alebo aplikácii. . Dokonca aj najstaršie čipy GCN poskytujú simultánne vykonávanie niekoľkých radov "výpočtových" príkazov súčasne s radom vykresľovania grafiky prostredníctvom dvoch typov príkazových procesorov - GCP (Graphics Command Processor) a ACE (Advanced Compute Engine). A počnúc architektúrou tretej generácie (čipy a), GCN obsahuje aj samostatné plánovače pre shader a "výpočtové" inštrukcie. Vďaka tomu môže procesor dynamicky prenášať výpočtové zdroje jednotlivých CU (Compute Units - blok obsahujúci 64 ALU) medzi niekoľkými frontami inštrukcií.

Okrem toho GCN umožňuje relatívne bezbolestnú zmenu kontextu CU. Zmena kontextu v tomto prípade znamená, že CU, ktorá čaká na dáta z dlhej operácie, ktorú robia iné GPU jednotky, dostane inú prácu od príkazového procesora, pričom obsah svojich registrov uloží do nejakého externého úložiska. V GCN je toto úložisko vysokorýchlostná integrovaná vyrovnávacia pamäť a procesor môže celkom voľne využívať zmeny kontextu.

Logika riadenia GCN je teda schopná efektívne načítať jednotky vykonávania GPU pomocou inštrukcií zo samostatných frontov, čím sa vypĺňajú aj relatívne malé „bubliny“ potrubia. Výsledné zvýšenie výkonu závisí od toho, ako často sa bubliny objavujú v režime jedného frontu. Je ale pravdou, že AMD GPU sú vo väčšine hier v porovnaní s čipmi NVIDIA výrazne podvyťažené a s každou ďalšou generáciou sa situácia zhoršuje. Stačí sa pozrieť na Radeon RX Vega 64, ktorý aspoň nie je horší v úlohách GP-GPU, no v hrách si s ním sotva poradí. GCN je „široká“ architektúra vyžadujúca vysokú súbežnosť pre plné zaťaženie. Takže áno, schopnosti viacerých motorov, ktoré otvárajú moderné API, môžu byť pre AMD veľkou pomocou – s veľkou výhradou, že vývojári hier ich začnú aktívne využívať.

Multi-Engine na GPU rôznych architektúr: NVIDIA Kepler, Maxwell a Pascal

Situácia s podporou Multi-Engine v GPU NVIDIA nie je ani zďaleka taká jasná ako v prípade AMD. Verejne dostupné materiály NVIDIA neposkytujú jednoznačnú odpoveď na všetky otázky. Môžeme len s úplnou istotou povedať, ktoré z architektúr GPU Kepler, Maxwell a Pascal majú vo všeobecnosti povolené riešiť zmiešané pracovné zaťaženie (grafika / výpočty) v rámci Direct3D 12 a Vulkan. A naša myšlienka, prečo je to tak a nie inak, je založená väčšinou na zdrojoch tretích strán a netvrdí, že je to konečná pravda. Čo robiť, to je politika tejto spoločnosti, najmä pokiaľ ide o nedostatky ich produktov.

Na rozdiel od AMD sa NVIDIA rozhodla rozdeliť svoje GPU na prevažne spotrebiteľské alebo profesionálne modely, počnúc architektúrou Kepler. Prvým z nich spočiatku chýba množstvo výpočtových funkcií, ktoré sú v herných úlohách nepoužiteľné (napríklad rýchle vykonávanie výpočtov s dvojnásobnou presnosťou). Navyše, na ceste od architektúry Fermi (GeForce 400/500) ku Keplerovi a následne k Maxwellu, vývojári dôsledne redukovali logiku ovládania GPU a presunuli niektoré funkcie na ovládač.

Napriek tomu sa podpora pre zmiešané pracovné zaťaženie, dokonca aj v bežných čipoch NVIDIA, od čias Keplera výrazne rozšírila. „Malé“ čipy architektúry Kepler (GK10X, GeForce GTX 680 a nižšie, ako aj GeForce GTX 770) sú schopné pracovať s jednou frontou príkazov, či už ide o grafiku alebo čisto výpočtovú úlohu (o žiadnom Viacmotorový). Vo "veľkých" čipoch Kepler (GK110 / 210, / a) a prvej generácii čipov Maxwell (GK107, GeForce GTX 750 /) bola zavedená samostatná jednotka na príjem "výpočtových" front Hyper-Q, ale samostatná "výpočtová" načítanie súčasne s grafikou je možné len pod proprietárnym CUDA API. Okrem toho môže „výpočtový“ front využívať jeden a len jeden z 32 slotov bloku CWD (CUDA Work Distributor), ktorý rozdeľuje reťazce operácií medzi jednotlivé SM.

Dynamická distribúcia energie medzi grafikou a „výpočtovými“ frontami sa objavila iba v druhej generácii Maxwell (séria GeForce 900), ale existuje kritické obmedzenie: prerozdelenie nastáva iba na hranici volania ťahu, čo znamená, že vodič musí vybrať skupinu SM. potrebné pre konkrétnu úlohu (Streaming Multiprocessor, blok, v ktorom sú organizované jadrá CUDA) vopred. To predstavuje chyby plánovania, ktoré sa nedajú opraviť za chodu, a dokonca aj pri dokonalej predikcii heuristiky ovládač Maxwell preskočí malé bubliny v potrubí. Okrem toho Maxwell utrpel veľké straty v dôsledku zmeny kontextu, pretože medziproduktové výpočtové výsledky sú uložené v RAM (s relatívne vysokou latenciou), zatiaľ čo vyrovnávacia pamäť L1 a zdieľaná pamäť GPU sú úplne vymazané. Výkonu v takýchto podmienkach až tak neškodí skôr krátka doba nečinnosti jednotlivých SM, ako zmena kontextu.

Zdá sa, že práve tieto architektonické obmedzenia prinútili NVIDIA zablokovať Multi-Engine v ovládači pre Keplera a Maxwella. Aplikácia môže vytvoriť toľko „výpočtových“ frontov, koľko chce, ale ovládač ich aj tak skombinuje s grafickým frontom. Ako doteraz, jedinou medzerou pre vývojárov je použitie CUDA, aj keď situácia s alokáciou zdrojov a zmenou kontextu API nie je nijako ovplyvnená.

Spomedzi „zelených“ GPU má iba rodina Pascal povolenú funkciu Multi-Engine v Direct3D 12 a Vulkan, pretože Pascal je na rozdiel od Maxwellu schopný dynamicky prenášať SM zdroje medzi grafikou a výpočtovými frontami, bez čakania na volanie. dokončiť. Zároveň náklady na zmenu kontextu zostali vysoké (až 0,1 ms alebo 170 tisíc cyklov GPU v prípade / 1080!), čo znamená, že Pascal je stále obmedzený vo flexibilite pri práci s viacerými príkazovými frontami v porovnaní s GCN. .

V dôsledku toho NVIDIA dosť skomplikovala život vývojárom aplikácií, ktorí chcú používať Multi-Engine. GCN je nenáročný a predvídateľný z hľadiska zmiešanej záťaže, no akcelerátory Radeon sú na trhu v menšine. Na druhej strane, GPU NVIDIA sa nachádzajú v mnohých herných počítačoch a navyše pochádzajú z niekoľkých generácií s rôznymi úrovňami podpory Multi-Engine a toho, ako ju používať. Ale, našťastie pre NVIDIA, jej produktom aj tak nechýba výkon. V porovnaní s GCN procesormi zodpovedajúcej triedy majú čipy Maxwell a Pascal „užšiu“ architektúru s menším počtom shader ALU, čo znamená, že nevyžadujú rovnako vysoký paralelizmus pre plné zaťaženie.

Grafika + výpočty, max. N fronty Výpočty, max. N fronty Zmiešaný režim CU / SM distribúcia
AMD GCN 1.4 (Vega) 1 + Dynamický
AMD GCN 1.3 (Polaris) 1 + Dynamický
AMD GCN 1.2 (Tonga, Fidži) 1 + Dynamický
AMD GCN 1.1 (Havaj) 1 + 64 64 Dynamický
AMD GCN 1.1 (Bonaire) 1 + 16 16 Dynamický
AMD GCN 1.0 (Kapverdy, Bonaire, Pitcair, Tahiti) 1 + 8 2 Dynamický
NVIDIA Pascal (GP10X) 1 + 31 32 Dynamický
NVIDIA Maxwell 2 (GM20X) 1 + 31 (CUDA) 32 Statické
NVIDIA Maxwell 1 (GM107) 1 + 31 (CUDA) 32 Statické
NVIDIA Kepler (GK110) 1 + 31 (CUDA) 32 Statické
NVIDIA Kepler (GK10X) 1 1 -

V roku 2015 Microsoft predstavil nové grafické API (nástroj na integráciu aplikácií) – DirectX 12 pre Windows 10. Ako si mnohí používatelia všimli, nový Direct X je oveľa lepší a rýchlejší ako predchádzajúci. V jeho práci sú však určité nedostatky. Našťastie nie je také ťažké ich odstrániť.

Čo je DirectX 12

DirectX 12 je komponent rozhrania, ktorý je potrebný pre správnu činnosť aplikácií, ktoré využívajú zdroje grafickej karty. Inými slovami, DirectX 12 poskytuje rozhranie medzi operačným systémom a hardvérom na maximálne využitie vášho počítača.

Prečo DirectX 12 v systéme Windows 10

Ako každé iné grafické API, aj DirectX 12 je potrebné hlavne pre správny chod počítačových hier s kvalitnou grafikou. Umožňuje vám využiť všetky zdroje vášho počítača na dosiahnutie najlepšieho výkonu a získania „krásneho obrazu“.


Môžete vidieť, že druhý obrázok je lepšie vykreslený: nedochádza k rozmazaniu stromov a vzdialených objektov.

Využíva tiež výkon viacjadrových procesorov a podporuje nové grafické akcelerátory. To znamená, že ak je váš počítač vybavený jednou z nových vysokovýkonných grafických kariet, potom vám DirectX 12 na rozdiel od predchádzajúcich verzií umožní využiť všetky svoje možnosti na maximum.

Ako sa DirectX 12 líši od predchádzajúcich verzií

Už počas vývoja DirectX 12 výrobcovia hlásili, že je vyvíjaný pre lepšiu interakciu s moderným hardvérom. V porovnaní s predchádzajúcimi verziami je možné zaznamenať tieto rozdiely:

  • technológie Tiled Resources, Typed UAV a Bind, ktoré sú súčasťou nového API, efektívnejšie prideľujú pamäťové zdroje medzi procesy a uľahčujú používanie jadier procesorov;
  • nové režimy prelínania a konzervatívna rasterizácia urýchľujú výpočet tieňov a MSAA (metóda celoobrazovkového antialiasingu, ktorá mierne zhoršuje kvalitu obrazu, ale prináša obrovské úspory na výkone spracovania);
  • schopnosť kombinovať grafické karty od rôznych výrobcov do jedného grafického subsystému;
  • zníženie úrovne abstrakcie hardvéru, čo umožňuje vývojárom lepší prístup k využívaniu možností grafického čipu;
  • podpora pre objekty stavu potrubia a tabuľky deskriptorov, čo zlepšuje výkon v algoritmoch na detekciu kolízií, výpočet transparentnosti a vytváranie geometrického modelu terénu.
  • Vyššie uvedené výhody sú relevantné pre vývojárov hier a programátorov. Ak hovoríme o priemernom používateľovi PC, potom je pre neho hlavným rozdielom medzi DirectX 12 a predchádzajúcimi verziami lepší výkon pri šetrení pamäťových zdrojov.

    Video: Porovnanie DirectX 11 a 12

    Je možné použiť DirectX 11.2 namiesto DirectX 12

    DirectX 12 je súčasťou systému Windows 10: všetky potrebné knižnice sú už v počítači k dispozícii po inštalácii operačného systému alebo jeho aktualizácii na verziu 10. Inými slovami, ak ste nainštalovali Windows 10, DirectX 12 je už tiež nainštalovaný. Nie všetky grafické karty to však podporujú, takže niekedy, dokonca aj s najnovším systémom Windows, sa používa DirectX 11.2. Dnes to už nemá zásadný vplyv na výkon počítača, keďže DirectX 12 je stále dosť surový produkt. Namiesto verzie 12 môžete použiť DirectX 11.2.

    Prečo má Windows 10 nainštalovaný DirectX 11.2 a nie DirectX 12

    Nainštalovali ste Windows 10, ale namiesto DirectX 12 sa používa verzia 11.2. Prečo sa to deje? Existujú dva dôvody:

  • Grafický adaptér nepodporuje DirectX 12 (dočasne, kým výrobcovia neuvoľnia nové ovládače);
  • ovládače grafickej karty sú zastarané (možno ich aktualizovať na oficiálnych stránkach NVIDIA, AMD alebo Intel).
  • Majte na pamäti, že výrobcovia nevydajú ovládače pre staršie grafické karty, takže možno budete musieť zmeniť grafický adaptér alebo použiť predchádzajúce verzie DirectX.

    Ako zistiť verziu nainštalovaného DirectX

  • Súčasne stlačte klávesy Win + R. Otvorí sa okno Spustiť.
    Upozorňujeme, že na diagnostiku systému sú potrebné práva správcu.
  • Do riadka pre text zadajte dxdiag. Kliknite na tlačidlo OK.
    Príkaz Dxdiag otvorí "DirectX Diagnostic Tool"
  • Nájdite položku Verzia DirectX na karte Systém.
    Ak máte Windows 10, verzia DirectX je buď 11.2 alebo 12
  • Video: ako zistiť verziu DirectX

    Ako nainštalovať DirectX 12 na Windows 10

    Ak chcete nainštalovať DirectX 12 na Windows 10 od začiatku, potrebujete inštalačný program. Môžete si ho stiahnuť z oficiálnej webovej stránky spoločnosti Microsoft:

  • Prejdite na stránku na stiahnutie DirectX 12 na lokalite Microsoft.
    Súbor sa stiahne automaticky a zobrazí sa správa o začatí sťahovania
  • Počkajte, kým sa spustí automatické sťahovanie inštalačného programu.
    Stiahnete si inštalačný súbor DirectX 12
  • Spustite stiahnutý súbor.
    Spustite stiahnutý súbor a spustite inštaláciu
  • Potvrďte, že súhlasíte s podmienkami používateľskej zmluvy. Kliknite na tlačidlo Ďalej.
    Po prijatí podmienok zmluvy budete môcť vybrať tlačidlo „Ďalej“.
  • Zrušte začiarknutie políčka „Predvoľby panela Bing“ (nie je potrebné pre DirectX 12).
    Voliteľne môžete nainštalovať "Bing Bar"
  • Kliknutím na Ďalej spustíte inštaláciu.
    Počkajte, kým sa DirectX nainštaluje do počítača
  • Kliknutím na tlačidlo Dokončiť dokončite inštaláciu.
    Kliknutím na tlačidlo "Dokončiť" dokončíte inštaláciu
  • Ako aktualizovať nainštalované rozhranie DirectX na verziu 12

    Ak už máte v počítači nainštalované rozhranie DirectX, môžete ho jednoducho aktualizovať na verziu 12:

  • Vyberte ikonu Windows v ľavom dolnom rohu obrazovky. Rolujte kolieskom myši a nájdite "Možnosti"
  • Nájdite a vyberte Možnosti.
    Vyberte "Aktualizácia a zabezpečenie"
  • Vyberte položku Aktualizácia a zabezpečenie. Dostanete sa na Windows Update. Systém začne automaticky sťahovať aktualizácie, ktoré sú vhodné pre počítač, vrátane DirectX 12, ak je tento komponent podporovaný grafickou kartou.
    Windows si sám stiahne dostupné aktualizácie
  • Počkajte, kým sa stiahnu všetky aktualizácie. Uplatnia sa po reštarte systému Windows.
    Dokončite inštaláciu výberom možnosti „Reštartovať teraz“
  • Upozorňujeme, že inovácia na DirectX 12 je možná len vtedy, ak vaša grafická karta podporuje túto verziu.

    Musím nakonfigurovať DirectX 12

    DirectX 12 nie je používateľský program v obvyklom zmysle: nie je potrebné ho spúšťať (beží stále) ani konfigurovať.

    Keď nainštalujete alebo aktualizujete DirectX 12, všetky nastavenia, ktoré sú potrebné na jeho fungovanie, sú štandardne nastavené. V skutočnosti je DirectX prostriedkom komunikácie medzi hardvérom a počítačovými programami, ku ktorému nemáte prístup.

    Všetky vaše kroky na nastavenie DirectX sú obmedzené na inštaláciu alebo aktualizáciu programu.

    Problémy a riešenia inštalácie DirectX 12

    Pri práci s DirectX 12 môžu nastať dva typy problémov:

  • vnútorná chyba systému (počas procesu inštalácie);
  • neustále poruchy už nainštalovaného programu.
  • Čo robiť, ak sa vyskytne interná systémová chyba

    Najzrejmejším dôvodom neúspešnej inštalácie je poškodený inštalačný súbor. Aby ste tomu zabránili, sťahujte aktualizácie iba z oficiálnej webovej stránky spoločnosti Microsoft.

    Interná systémová chyba počas procesu inštalácie DirectX 12

    Ak ste si stiahli DirectX od spoločnosti Microsoft a vyskytne sa chyba, musíte skontrolovať pevný disk:

  • Stlačením klávesov Win + R otvorte príkazový riadok.
    Na prácu s príkazmi sa vždy používa klávesová skratka Win + R
  • Do textového poľa napíšte chkdsk a kliknite na tlačidlo OK.
    Príkaz chkdsk spustí pomôcku, ktorá skontroluje chyby systému súborov na pevnom disku
  • Počkajte na koniec kontroly pevného disku bez zatvorenia okna. Zaujíma nás prítomnosť poškodených súborov.
    Pozrite sa na riadok "Spracovanie poškodených súborov" a zistite ich prítomnosť
  • Ak nie sú žiadne poškodené súbory, prejdite na ďalšiu inštrukciu. Ak áno, musíte nástroj znova použiť. Otvorte "Príkazový riadok" stlačením Win + R a napíšte príkaz chkdsk / F. Tento nástroj opraví chyby systému súborov.
    Príkaz Chkdsk / F spustí nástroj, ktorý opraví poškodené súbory
  • Počkajte, kým sa okno „Príkazový riadok“ automaticky zatvorí. Oprava chýb môže chvíľu trvať.
  • Otvorte príkazový riadok pomocou kombinácie klávesov Win + R. Zadajte príkaz sfc / scannow a kliknite na tlačidlo OK.
    Nástroj naskenuje a obnoví systémové súbory
  • Počkajte na dokončenie pomôcky.
    Nástroj našiel a obnovil poškodené súbory
  • Reštartujte počítač.
  • Je možné, že kontrola pevného disku nepomohla vyriešiť problém. V tomto prípade musíte skontrolovať kompatibilitu DirectX 12 s vaším systémom:

  • Otvorte priečinok v počítači, do ktorého ste si stiahli inštalačný program DirectX 12. Kliknite pravým tlačidlom myši na názov súboru a vyberte „Opraviť problémy s kompatibilitou“.
    Tlačidlo "Opraviť problémy s kompatibilitou" otvorí diagnostický režim, ktorý potrebujeme
  • V okne Poradca pri riešení problémov s kompatibilitou vyberte možnosť Použiť odporúčané nastavenia.
    Vyberte prvú položku, aby sa možnosti rozhrania DirectX zhodovali s možnosťami vášho počítača
  • Počkajte na dokončenie vyhľadávania parametrov. Kliknutím na Skontrolovať program spustíte inštaláciu DirectX. Po inštalácii kliknite na tlačidlo Ďalej.
    Pomocou tlačidla "Skontrolovať program" nainštalujete DirectX 12 do počítača
  • Vyberte „Áno, ponechať tieto nastavenia pre program“.
    Ponechajte zvolené parametre, aby DirectX v budúcnosti fungoval stabilne
  • Video: Oprava systémovej chyby počas inštalácie DirectX 12

    Čo robiť, ak DirectX 12 nefunguje správne

    DirectX bol nainštalovaný v počítači, ale stále padá. Ak sa okno s upozornením na chybu DirectX objavuje pomerne často, môžete:

  • aktualizujte DirectX 12 v "Windows Update" (postupnosť krokov je popísaná v časti "Ako aktualizovať nainštalované DirectX na verziu 12"). Aktualizácia je nakonfigurovaná tak, že chýbajúce súbory sa jednoducho nahrajú do existujúceho balíka knižnice vo vašom počítači. Systém hlási chyby, pretože mu chýbajú niektoré súbory pre stabilnú prevádzku a aktualizácia DirectX to opraví;
  • odinštalujte DirectX 12 a nainštalujte ho od začiatku (podrobné pokyny sú popísané v častiach „Ako úplne odinštalovať DirectX 12“ a „Ako nainštalovať DirectX 12 v systéme Windows 10“). Táto možnosť by sa mala použiť iba v prípade, že aktualizácia DirectX nepomohla, pretože budete musieť pracovať so systémovými súbormi.
  • Ako vrátiť DirectX 12 na predchádzajúcu verziu

    DirectX 12 nie je možné vrátiť späť, pretože je navrhnuté kumulatívne. Inými slovami, DirectX 12 obsahuje knižnice zo všetkých predchádzajúcich verzií.

    Nepomôže ani úplné odstránenie DirectX 12 a inštalácia jednej z predchádzajúcich verzií, pretože v systéme Windows 10 nemôžete vypnúť aktualizácie systému. Aj keď manuálne nainštalujete napríklad DirectX 11, automaticky sa aktualizuje na verziu 12.

    Ak sa vám zdá, že počítač začal pracovať horšie s DirectX 12, musíte vyriešiť problémy s kompatibilitou (postup je popísaný v treťom návode v odseku „Čo robiť, ak dôjde k internej systémovej chybe“). Nebojte sa, že niektoré hry vyžadujú predchádzajúce verzie DirectX: knižnice predchádzajúcich verzií sa aktualizujú počas inštalácie všetkých aktualizácií pre Windows 10.

    Ako úplne odinštalovať DirectX 12

    DirectX 12 je zabudovaný do systému Windows 10, čo znamená, že ho nemožno odinštalovať bežným spôsobom. Aby správne fungoval, musíte mať tento program na svojom počítači, takže vývojári Windowsu odstránili možnosť odinštalovať ho. Sú však chvíle, kedy je potrebné preinštalovať DirectX z dôvodu neustáleho zlyhania jeho práce. Ak to chcete urobiť, budete musieť použiť programy tretích strán. Ak je možné vyhnúť sa odinštalovaniu DirectX (problém je napríklad vyriešený jednoduchou aktualizáciou systému), potom je lepšie ho použiť. Pred odinštalovaním DirectX sa uistite, že ste vytvorili bod obnovenia systému, aby ste v prípade nesprávneho odstránenia mohli obnoviť všetky údaje.

    Obnovenie systému

    Funkcia Obnovovanie systému je potrebná na vrátenie systému Windows 10 do funkčného stavu a opravu chýb, ktoré sa vyskytli pri odinštalovaní alebo inštalácii nových programov.

    Ako vytvoriť bod obnovenia v systéme Windows 10

  • Kliknite na ikonu vyhľadávania v ľavom dolnom rohu obrazovky.
    Kliknite na vyhľadávacie pole a zadajte text
  • Napíšte „Ovládací panel“. Otvor to. "Ovládací panel" vám umožňuje vykonávať základné kroky na konfiguráciu systému
  • Vyberte časť „Systém a zabezpečenie“.
    Časť „Systém a zabezpečenie“ vám umožňuje sledovať stav počítača a obnoviť systém
  • Vyberte podsekciu "Systém".
    Časť „Systém“ vám umožňuje spravovať počítač
  • Vyberte "Ochrana systému".
    Položka „Ochrana systému“ otvorí okno „Vlastnosti systému“.
  • Kliknutím na tlačidlo Konfigurovať povolíte ochranu disku C. Kliknutím na „Konfigurovať“ otvoríte okno na konfiguráciu ochrany disku
  • Zvoľte "Zapnúť ochranu systému", množstvo miesta na disku a kliknite na "Použiť". Kliknutím na tlačidlo Použiť sa vrátite do okna Vlastnosti systému
  • Kliknutím na „Vytvoriť“ vytvorte bod obnovenia systému. Tlačidlo "Vytvoriť" sa stalo aktívnym, odkedy ste povolili ochranu jednotky C
  • Zadajte dátum. Kliknite na Vytvoriť.
    Bod obnovenia uloží všetky programy a stav vášho počítača k danému dátumu
  • Počkajte na správu o dokončení procesu a kliknite na „Zavrieť“.
  • Teraz môžete obnoviť systém, ak odstránenie DirectX zlyhá alebo sa váš počítač zhorší.

    Video: ako vytvoriť bod obnovenia systému

    Ako obnoviť systém

  • Postupujte podľa krokov 1 až 5 pokynov „Ako vytvoriť bod obnovenia v systéme Windows 10“ a otvorte okno „Vlastnosti systému“. Kliknite na "Obnoviť". Počítač môžete kedykoľvek obnoviť do predchádzajúceho stavu
  • Kliknite na „Ďalej“ v okne Obnovovanie systému.
    Upozorňujeme, že sa obnovia iba systémové súbory a parametre
  • Vyberte bod obnovenia systému s požadovaným dátumom, ktorý ste zadali pri vytváraní. Kliknite na tlačidlo Ďalej.
    Typ bodu obnovenia bude „Manuálny“, keďže ste ho vytvorili, nie Windows
  • Potvrďte výber bodu obnovenia.
    Kliknutím na tlačidlo Dokončiť spustite obnovenie systému
  • Súhlaste so spustením procesu obnovy.
    Majte na pamäti, že nebudete môcť pracovať na počítači, kým sa nedokončí obnovenie systému.
  • Počkajte na dokončenie obnovy systému.
  • Video: Ako opraviť Windows 10

    Odstránenie DirectX 12

    Keďže odstránenie DirectX v systéme Windows 10 nie je k dispozícii, budete musieť použiť softvér tretej strany. DirectX Happy Uninstall je pomerne bežný nástroj, ktorý vám pomôže úplne odstrániť všetky knižnice DirectX z vášho počítača.

    DirectX Happy Uninstall nie je oficiálny softvér. Stiahnite si ho iba z dôveryhodných stránok.

    Ak chcete správne odinštalovať DirectX, použite nasledujúce tipy:

  • Vytvorte bod obnovenia.
  • Stiahnite si inštalačný program DirectX od spoločnosti Microsoft.
  • Stiahnite si a nainštalujte DirectX Happy Uninstall.
  • Odpojte internet, aby ste zabránili systému v automatickom sťahovaní a inštalácii DirectX.
  • Zakázať ochranu systémových súborov:
  • Teraz môžete začať odinštalovať DirectX 12:

  • Spustite DirectX Happy Uninstall. Vytvorte bod obnovenia systému na karte "Záloha". V prípade potreby môžete pomocou neho získať späť odstránené rozhranie DirectX.
    Kliknutím na „Spustiť zálohovanie“ vytvorte bod obnovenia
  • Ak chcete program odinštalovať, vyberte kartu „Odinštalovať“.
    Kliknutím na „Odinštalovať“ spustíte odinštalovanie DirectX
  • Počkajte na dokončenie odinštalovania a zatvorte program.
  • Video: ako odinštalovať DirectX

    Windows 10 sám stiahne a nainštaluje potrebné aktualizácie vrátane aktualizácií pre DirectX. Väčšinu problémov, ktoré sa vyskytnú počas spustenia tohto programu, možno vyriešiť manuálnym spustením aktualizácie systému. Pokúste sa úplne neodstrániť DirectX, ak je to možné, pretože budete musieť použiť softvérové ​​produkty tretích strán.

    Zoznam hier, ktoré podporujú DirectX 12, sa výrazne rozrástol. V tomto príspevku sa pozrieme na HITMAN, Rise of the Tomb Raider a Ashes of the Singularity. Tieto hry podporujú DirectX 11 aj DirectX 12. Dve z nich boli vydané pomerne nedávno. Ashes of the Singularity je stále v beta testovaní. Remastrovaná verzia ikonického Gears of War bola vydaná exkluzívne pre Windows 10. AAA hry prídu čoskoro: Deus Ex: Mankind Divided, Forza Motorsport 6 Apex a Quantum Break. Len na poslednej výstave GDC bol predstavený engine CryEngine V. Odteraz budú všetky exkluzivity pre Xbox vychádzať aj na PC. Ale len exkluzívne pre Windows 10. Vďaka novej stratégii Microsoftu.

    kvalita

    Ako som už povedal, DirectX 12 je navrhnutý pre lepšiu optimalizáciu pre moderný hardvér. Technológie Tiled Resources, Typed UAV a Bind, ktoré sú súčasťou tohto API, výrazne (papierovo) šetria zdroje videopamäte a orientujú API na využitie väčšieho počtu jadier CPU. Princíp konzervatívnej rasterizácie urýchľuje výpočet tieňov a MSAA filtra. Je logické, že optimalizácia povedie aj k zlepšeniu kvality grafiky, no najdôležitejšie je stále zvýšenie stability a výkonu.

    Porovnajme grafiku DirectX 11 a DirectX 12 v HITMAN a Rise of the Tomb Raider. Nižšie je niekoľko snímok obrazovky v rozlíšení Ultra HD (pozor, každý súbor váži 8-10 MB!). Nastavenia kvality -.