Zacięcia podczas gry i długie czasy ładowania to problemy, które od lat frustrują graczy. W wielu przypadkach winne temu są shadery, a konkretnie sposób ich kompilacji. Microsoft zapowiada jednak zmianę. Najnowsza wersja DirectX Agility SDK wprowadza funkcję o nazwie Advanced Shader Delivery, która ma rozwiązać ten problem u jego źródła.
W ostatnich latach optymalizacja gier na PC pozostawia sporo do życzenia. Coraz więcej tytułów ma problemy z wydajnością, szczególnie na sprzęcie, który nie należy do absolutnej czołówki. Nawet topowe konfiguracje nie zawsze gwarantują stabilne działanie – szczególnie w grach opartych na Unreal Engine 5.
Zacięcia związane z kompilacją shaderów stały się powszechnym problemem, a poprawki zwykle pojawiają się długo po premierach poszczególnych tytułów. Część deweloperów radzi sobie z tym lepiej, część gorzej, ale problem leży głębiej – w samej technologii.
Nowa wersja Agility SDK (1.618) oferuje podejście, które może zmienić sposób, w jaki gry radzą sobie z shaderami. Advanced Shader Delivery umożliwia dostarczanie prekompilowanych shaderów jeszcze przed uruchomieniem gry, już na etapie pobierania. Oznacza to, że gracz nie będzie musiał czekać na ładowanie ich podczas startu gry ani znosić mikroprzycięć w trakcie rozgrywki. Takie rozwiązanie od lat działa na konsolach.
Pierwszym sprzętem, który skorzysta z tej technologii, będzie ROG Ally. To przenośna konsola działająca na systemie operacyjnym Windows. Od 16 października wybrane gry pobierane przez aplikację Xbox na tym urządzeniu będą zawierały gotowe shadery. Dzięki temu uruchomią się szybciej i będą działały płynniej od samego początku.
Ale to dopiero początek. Microsoft planuje udostępnić tę technologię wszystkim twórcom gier i platformom dystrybucji, w tym Steamowi czy Epic Games Store. Cała infrastruktura jest już wbudowana w Windows 11 i DirectX, więc nie są potrzebne żadne dodatkowe komponenty systemowe. Każdy sklep będzie mógł zbudować bazę prekompilowanych shaderów (Precompiled Shader Database, PSDB) na podstawie danych dostarczonych przez deweloperów i dołączać je do paczki z grą.
Jak to działa od strony technicznej? Deweloperzy mogą przechwycić dane z obiektów stanu potoku (Pipeline State Objects) w trakcie budowania gry. Te dane są następnie zapisywane w bazie nazwanej State Object Database (SODB). W odróżnieniu od wcześniejszych, ręcznych metod, nowy sposób pozwala zebrać niemal wszystkie potrzebne shadery, co przekłada się na maksymalne wykorzystanie cache’u. SODB może być potem dołączona do gry, dodatku lub aktualizacji, a system operacyjny i sklep dystrybucji zajmą się resztą.
Microsoft przygotował także narzędzia do kompilacji shaderów offline, bez użycia lokalnego GPU. Kilku producentów sprzętu (tzw. IHV, Independent Hardware Vendors) dostarczyło już gotowe kompilatory, które da się zintegrować z pipeline’em produkcyjnym gry.
W praktyce oznacza to, że przyszłe gry na PC – przynajmniej te korzystające z DirectX 12 – mogą startować szybciej, działać płynniej i nie męczyć użytkowników. Wymaga to jednak współpracy studiów z nowymi narzędziami Microsoftu. Technologia jest gotowa, lecz wszystko zależy od tego, jak szeroko i jak chętnie zostanie zaadaptowana przez deweloperów.
Niemniej dla posiadaczy komputerów PC to dobra wiadomość. Microsoft nie tylko zauważył problem, ale przygotował konkretne rozwiązanie. Teraz piłka jest po stronie twórców gier. Jeśli pójdą za ciosem, Advanced Shader Delivery może stać się jednym z większych kroków naprzód w poprawie doświadczenia grania na Windowsie od lat.