Η Epic Games δημοσίευσε νέο οδηγό για την Unreal Engine 5.8, ο οποίος δείχνει στους developers πώς να προετοιμάσουν τα παιχνίδια τους για το DirectX Advanced Shader Delivery (ASD), μια λειτουργία που μεταφέρει το compilation των shaders από τον υπολογιστή του παίκτη στο κατάστημα από το οποίο κατεβάζει το παιχνίδι.
Σε ένα παιχνίδι DirectX 12 που ανοίγει για πρώτη φορά, ο driver της κάρτας γραφικών μεταγλωττίζει τα shaders σε κώδικα για τη συγκεκριμένη GPU, κάτι που φέρνει μεγάλους χρόνους φόρτωσης και τα γνωστά stutters. Με το ASD τα shaders έχουν ήδη μεταγλωττιστεί για κάθε οικογένεια GPU και έκδοση driver, ενώ το κατάστημα κατεβάζει το σωστό αποτέλεσμα μαζί με το παιχνίδι.
Για τον σκοπό αυτό η Unreal Engine 5.8 περιλαμβάνει το ASD Tool, ένα αυτόνομο εργαλείο γραμμής εντολών που διαβάζει το τελικό build και δημιουργεί ένα αρχείο State Object Database (SODB) με τα shaders και τα Pipeline State Objects του παιχνιδιού. Ο developer ανεβάζει το αρχείο στο κατάστημα, το οποίο το μετατρέπει σε Precompiled Shader Databases (PSDB) για κάθε υποστηριζόμενη κάρτα γραφικών και στέλνει στον παίκτη αυτό που ταιριάζει στο σύστημά του. Στο SODB αποθηκεύονται επίσης το όνομα του παιχνιδιού, το εκτελέσιμο αρχείο και η μηχανή, ώστε οι drivers να μπορούν να εφαρμόσουν βελτιστοποιήσεις ειδικά για κάθε τίτλο. Το εργαλείο δεν διατίθεται σε έτοιμη μορφή, οπότε οι ομάδες θα πρέπει να το κάνουν build από τον πηγαίο κώδικα της μηχανής.
Η υποστήριξη αφορά μόνο παιχνίδια Windows με DirectX 12 και Shader Model 6, ενώ τα PSOs του ray tracing μένουν εκτός. Τα καταστήματα δίνουν PSDB μόνο για συγκεκριμένες οικογένειες GPU και για λίγους πρόσφατους drivers, οπότε σε παλαιότερες κάρτες ή σε συστήματα με παλιούς drivers η μεταγλώττιση θα συνεχίσει να γίνεται όπως μέχρι σήμερα. Γι’ αυτό η Epic προτείνει να μείνουν ενεργά το PSO precaching και τα bundled PSO caches, που καλύπτουν όσα shaders λείπουν από τη βάση και περιορίζουν τα μικρά hitches όταν τα προμεταγλωττισμένα shaders φορτώνουν από τον δίσκο.
Κάθε φορά που αλλάζουν τα shaders ενός παιχνιδιού χρειάζεται νέο SODB, ενώ αν ένα update δεν τα αγγίζει, το προηγούμενο αρχείο μπορεί να ξαναχρησιμοποιηθεί. Οι developers μπορούν να ελέγξουν το αποτέλεσμα τοπικά πριν από την κυκλοφορία, αφού το ASD Tool μεταγλωττίζει και καταχωρεί τα PSDB στον υπολογιστή τους με τον ίδιο τρόπο που θα το έκανε το κατάστημα.
Τα SODB υποβάλλονται προς το παρόν στο Microsoft Store, ενώ η υποστήριξη του Advanced Shader Delivery στο Epic Games Store αναμένεται στις αρχές του 2027.
