Acasă
» JOCURI
»
DirectX 11 vs. DirectX 12: Care este mai bun pentru jocuri?
DirectX 11 vs. DirectX 12: Care este mai bun pentru jocuri?
Răspuns scurt: DirectX 12 poate oferi performanțe mai bune atunci când un joc este conceput să îl utilizeze eficient, mai ales când procesorul limitează rata de cadre pe secundă. DirectX 11 poate fi mai fluid sau mai fiabil într-un anumit joc sau pe un anumit PC. Niciunul dintre API-uri nu este automat mai rapid, mai frumos sau mai stabil. Dacă un joc oferă ambele opțiuni, comparați-le în jocul respectiv pe propriul hardware.
Direct3D 12 permite unui joc să înregistreze mai multe liste de comenzi simultan; această imagine conceptuală nu este un test hardware.
Ce schimbări se produc între DirectX 11 și DirectX 12?
În majoritatea discuțiilor despre jocuri, „DirectX 11” și „DirectX 12” se referă la API-urile grafice Direct3D pe care un joc le folosește pentru a trimite randarea prin Windows și driverul grafic către GPU. API-ul afectează modul în care este organizată această redare; nu stabilește o presetare universală a calității și nu face ca aceeași scenă de joc să arate mai bine de la sine.
Direct3D 11 are un model de programare de nivel superior. Runtime-ul și driverul gestionează mai multe detalii pentru joc, ceea ce poate facilita dezvoltatorilor suportul pentru o gamă largă de sisteme. DX11 nu este strict single-threaded: Microsoft documentează crearea de obiecte multithreaded și înregistrarea listei de comenzi în Direct3D 11.
Direct3D 12 oferă motorului de joc un control mai direct. Jocul poate înregistra mai multe liste de comenzi pe diferite fire de execuție ale procesorului, apoi le poate trimite către cozi de comenzi. De asemenea, își asumă o responsabilitate mai mare pentru stările resurselor și sincronizarea CPU/GPU. Acest lucru poate reduce suprasolicitarea procesorului și poate îmbunătăți scalarea, dar pune mai mult efort pe implementarea jocului.
Zonă
DirectX 11
DirectX 12
Depunerea lucrării
O mai mare parte a administrării este gestionată de runtime și driver.
Jocul înregistrează și trimite liste de comenzi cu un control mai explicit.
Scalarea procesorului
Acceptă multithreading, cu un model mai gestionat.
Poate distribui înregistrarea comenzilor mai direct între nucleele procesorului.
Rezultatul jucătorului
Adesea o soluție utilă pentru compatibilitate sau stabilitate.
Poate îmbunătăți performanța limitată de procesor atunci când jocul este optimizat pentru asta.
Când poate ajuta DX12 și când poate fi DX11 mai bun?
DX12 este cel mai probabil să ajute atunci când un joc este limitat la CPU: procesorul se chinuie să pregătească munca pentru GPU, în timp ce placa grafică are spațiu pentru a face mai mult. Un renderer DX12 bine optimizat poate utiliza mai multe nuclee CPU mai eficient și poate reduce o parte din supraîncărcarea driverelor. Aceste câștiguri depind de motorul jocului, de patch-ul său, de CPU, GPU și de driver.
Dacă GPU-ul este deja blocajul, schimbarea API-urilor ar putea avea prea puțin de făcut. De asemenea, DX12 nu adaugă automat ray tracing, mesh shadere, shading cu rată variabilă sau alte funcții grafice; jocul trebuie să implementeze o funcție, iar hardware-ul și driverul trebuie să o accepte. Chiar și un GPU care poate rula Direct3D 12 poate expune niveluri sau capacități diferite de funcții. Consultați ghidul Microsoft pentru nivelurile de funcții ale hardware-ului Direct3D pentru a afla de ce suportul API și suportul pentru funcții nu sunt același lucru.
DX11 este o alegere inteligentă dacă un joc nu oferă DX12, dacă dezvoltatorul recomandă DX11 pentru configurația dvs. sau dacă DX12 produce sacadare repetată, erori vizuale, blocări sau blocări. O placă grafică sau un driver mai vechi poate funcționa, de asemenea, mai fiabil cu calea DX11 a jocului. Tratați acest lucru ca o alegere pentru fiecare joc în parte, nu ca o regulă conform căreia fiecare PC mai vechi ar trebui să utilizeze DX11.
Folosește opțiunile de renderer oferite de joc; nu există o opțiune universală pentru Windows care să facă ca fiecare joc să utilizeze DX11 sau DX12.
Cum să le compari pe cele două într-un joc
Verifică opțiunile actuale ale jocului și notele de asistență. Unele jocuri oferă un singur program de redare; altele includ o opțiune DirectX în setările grafice sau în launser. Confirmă dacă GPU-ul, driverul și versiunea de Windows îndeplinesc cerințele jocului respectiv.
Mențineți testul consecvent. Folosiți aceeași salvare, reluare sau test de performanță încorporat, cu aceeași rezoluție, presetare grafică, număr maxim de cadre și aplicații de fundal. Lăsați scena să ruleze o dată mai întâi dacă jocul compilează sau stochează în cache shadere, apoi repetați testul.
Compară fluiditatea și stabilitatea, precum și media FPS-ului. Urmărește consecvența cadrelor pe zi, blocajele vizibile, blocările și erorile de imagine. Repetă fiecare rundă; un singur rezultat scurt poate fi înșelător. Alege modul care te face să te simți stabil în timpul tipului de joc pe care îl faci efectiv.
Randerul unui joc se poate comporta diferit după un patch major sau o actualizare de driver. Un rezultat raportat pentru Fortnite, Ready or Not sau Path of Exile descrie versiunea testată și PC-ul respectiv; nu este o recomandare universală. Verificați notele actuale ale dezvoltatorilor și retestați dacă jocul dvs. se modifică.
Pentru o comparație corectă, folosiți aceeași scenă și aceleași setări. Traseele de cadru-timp prezentate aici sunt ilustrative, nu rezultate măsurate.
Deci, pe care ar trebui să o folosești?
Începeți cu rendererul recomandat de joc. Încercați DX12 dacă este compatibil și doriți să vedeți dacă îmbunătățește performanța limitată de procesor. Treceți la DX11 dacă este mai fluid sau mai stabil pe sistemul dvs. Dacă jocul oferă o singură opțiune, utilizați calea acceptată în loc să încercați să forțați o altă API. Câștigătorul practic este modul care rulează jocul fără probleme și în mod fiabil pe PC.