Echipa de dezvoltare Microsoft a lansat recent un pachet software foarte important, Agility SDK 1.613. Noua versiune aduce o serie de caracteristici noi pentru a ajuta dezvoltatorii de jocuri, inclusiv suport pentru Shader Model 6.8 și API-ul Work Graphs. Acesta din urmă este important, deoarece permite procesorului și GPU să lucreze împreună mai eficient, iar GPU poate crea sarcini pe cont propriu, totul în timp real. Echipa de dezvoltare al EPIC a considerat această capacitate foarte utilă și a solicitat ca ea să fie disponibilă în viitorul apropiat.
Pentru a înțelege beneficiile API Work Graphs, merită mai întâi să aruncăm o privire asupra modului în care a funcționat până acum distribuția sarcinilor. Unele dintre sarcinile necesare pentru redarea cadrelor au fost efectuate de procesor, iar altele de procesorul grafic. Această metodă nu este adesea ideală, deoarece procesorul petrece uneori prea mult timp pentru a decide ce sarcină trebuie să facă în continuare placa video. Această situație este ajutată de API Work Graphs, care permite procesorului să compileze o listă de sarcini pentru GPU cu mult timp înainte.
În loc să aștepte ca fiecare bloc să fie finalizat, GPU poate genera o listă de sarcini la care să lucreze până când CPU generează o nouă listă. Foarte simplu spus, această metodă permite o colaborare mai eficientă și o gestionare mai rapidă a memoriei, ceea ce duce la o execuție mai ușoară a sarcinilor complexe. În general, resursele vor fi utilizate mai eficient, ceea ce poate avea, un impact pozitiv asupra performanței.
Cealaltă noutate majoră este lansarea Shader Model 6.8, care introduce o mulțime de funcționalități noi. Printre acestea se numără Start Vertex și Instance Location, care permit parametrizarea shaderilor chiar din apelul API, ceea ce poate fi util în multe cazuri, cum ar fi calculele de adrese personalizate care sunt independente de datele funcțiilor fixe. O altă caracteristică nouă și interesantă este Wave Size Range, care permite dezvoltatorilor să specifice dimensiunea preferată a valurilor în shaderi, reducând dimensiunea necesară a shaderului și chiar evitând utilizarea unora.
De asemenea, în repertoriu se regăsește și funcția Expanded Comparison Sampling, care poate contribui la îmbunătățirea suportului de shader cross-platform. O altă caracteristică nouă este funcția GPU Upload Heaps, care permite transferul rapid de date între CPU și GPU. Această inovație se bazează pe caracteristica ResizableBAR, prin intermediul căreia CPU poate scrie direct în VRAM cu latență redusă - nu mai este nevoie să se transfere date din VRAM în CPU prin intermediul bus-ului PCI, ceea ce duce la pierderi de timp și performanță și are un impact negativ asupra latenței.
Noul SDK este deja disponibil pentru unii dezvoltatori, dar necesită GPU-urile Nvidia Ampere (GeForce RTX 30) sau Ada Lovelace (GeForce RTX 40), în timp ce domeniul AMD suportă în prezent doar plăci grafice bazate pe RDNA 3 (seria Radeon RX 7000) - ambii furnizori au lansat deja drivere pentru a activa funcțiile menționate mai sus. Echipa Intel nu a lansat încă drivere compatibile, dar acest lucru s-ar putea schimba în câteva zile.
Cel mai recent SDK poate fi descărcat de aici.