ΣΥΝΤΑΚΤΗΣ: Γιώργος Παύλου
Η αλήθεια είναι ότι από την αρχική ανακοίνωση της Microsoft για την ανακοίνωση του XBOX Scorpio ελάχιστες άλλες λεπτομέρειες έχουν έρθει στην επιφάνεια… Οι επιβεβαιωμένες πληροφορίες που είχαμε ήταν ότι το σύστημα θα έχει οχταπύρινη CPU, μια κτηνώδης GPU η όποια θα έχει απόδοση 6 Tflops (συγκριτικά η GPU του PS4 Pro βρίσκεται στα 4,2 Tflops) και, τέλος, 320GB/s bandwidth (μπορείτε να διαβάσετε το αναλυτικό μας άρθρο για τα πιθανά τεχνικά χαρακτηρίστηκα του Scorpio εδώ).
Κάποιες επιπλέον λεπτομέρειες, όμως, έχουν έρθει πλέον στην δημοσιότητα χάρη στο Eurogamer.net (ο ορισμός της εξαιρετικής δημοσιογραφίας)! Από ένα «non-paper»της Microsoft προς τους developers μαθαίνουμε μια σειρά από πολύ ενδιαφέροντα στοιχεία τόσο για το hardware του Scorpio όσο και για τις διαδικασίες ανάπτυξης τίτλων για αυτό.
Αντίο γλυκιά μου ESRAM…
Ξεκινάμε με το γεγονός ότι η ESRAM που υπάρχει στην APU του XBOX One δεν θα υπάρχει στο Scorpio (κάτι που είχαμε προβλέψει και στο αρχικό μας άρθρο για τα specs του Scorpio). Στις «οδηγίες» της η Microsoft τονίζει ότι η χρήση της ESRAM θα είναι απαραίτητη για την καλύτερη δυνατή ανάπτυξη τίτλων για το One, αλλά, η ύπαρξη της στο Scorpio είναι περιττή αφού η κεντρική μνήμη του συστήματος ήδη προσφέρει ένα τεράστιο bandwidth. Βέβαια, τα καλά νέα που προκύπτον εδώ είναι ότι οι τίτλοι θα πρέπει να υποστηρίζουν και τα δυο συστήματα (One & Scoprio) και δεν υπάρχει ο φόβος να «χαθεί» πρόωρα το One.
Η απόρριψη της ESRAΜ, περά από την «απελευθέρωση» χώρου πάνω στην APU, σημαίνει ακόμα ένα πράγμα: Την απλοποίηση της διαδικασίας ανάπτυξης για το Scorpio αφού οι developers δεν θα είναι αναγκασμένοι μεταφέρουν συνεχώς δεδομένα από την RAM του συστήματος στην ESRAM για να μεγιστοποίηση των επιδόσεων. Τώρα θα αναρωτιέστε τι θα γίνει με τους τίτλους που υπάρχουν ήδη για το ONE και κάνουν βάρια χρήση της ESRAM… Η προσωπική μου εκτίμηση είναι ότι δεν θα δούμε κάποιο patching, αλλά, το πιθανότερο είναι ότι θα «δεσμευτεί» ένα κομμάτι της RAM του Scorpio για την δημιουργία μιας Virtual ESRAM… Είναι ίσως η πιο απλή λύση και πιο ανέξοδη αφού μιλάμε για 32MB μνήμης.
Και αφού μιλάμε για μνήμη πάμε στη δεύτερη πληροφορία που έχει επιβεβαιωθεί για το Scorpio: H L2 Cache της CPU είναι τετραπλάσια από αυτή του ONE! Στο One υπάρχουν 2 τετραπύρηνοι Jaguar επεξεργαστές και ο καθένας έχει 2mb L2 Cache. Αυτό ουσιαστικά σημαίνει ότι η συνολική L2 Cache του Scorpio θα είναι 16mb! Αυτό που μένει να δούμε είναι αν και στην περίπτωση του Scorpio οι πυρήνες της CPU θα είναι χωρισμένοι πάλι σε 2 τετραπύρηνα clusters με 8mb L2 Cache το καθένα ή αν έχουμε ένα οχταπύρηνο cluster με ενοποιημένα τα 16mb.
Εδώ οι καλές συμβουλές!
Περνώντας στο κομμάτι των development tips τα πράγματα έχουν ιδιαίτερο ενδιαφέρον. Η Microsoft αναφέρει οτι οι developers δεν είναι υποχρεωμένοι να χρησιμοποιούν την επιπλέον δύναμη του Scorpio μόνο για την αύξηση της ανάλυσης στα 4Κ και ότι έχουν την επιλογή στην αναβάθμιση των ποιοτικών χαρακτηριστικών των γραφικών (το έγγραφο αναφέρει ως παράδειγμα την αύξηση στα shadows quality, reflections, texture filtering & μεγαλύτερα draw distances). Οπότε κάποιος developer έχει την δυνατότητα να επιλέξει να πάει το παιχνίδι του από τα 900p του One «μόνο» στα 1440p, αλλά, να αυξήσει κατακόρυφα την ποιότητα των γραφικών! Πάνω –κάτω ότι ισχύει για την ανάπτυξη τίτλων για το PS4 Pro…
Εδώ έρχεται όμως και μια μεγάλη διαφοροποίηση: Η Microsoft γνωστοποιεί στους developers ότι έχουν την δυνατότητα να κάνουν τη χρήση interpolation στο animation για να αυξήσει το frame rate ενός τίτλου από τα 30 στα 60fps. Τι σημαίνει, όμως, πρακτικά το interpolation και πότε το χρησιμοποιούμε; Αν έχετε παρακολουθήσει τα κείμενα μου καταλαβαίνετε ότι θα μπούμε σε λίγο πιο τεχνικά “χωράφια”. Το interpolation είναι επί της ουσίας μια τεχνική κατά την όποια διπλασιάζονται τα fps που παράγει η GPU, όπου ανάμεσα σε δυο frames «κατασκευάζεται» ένα επιπλέον frame κίνησης. Σε αυτή την περίπτωση τα «κανονικά» frames που παράγονται είναι 30 και «βλέπετε» 1 καρέ κίνησης ανά 33ms ενώ με την χρήση του interpolation ΑΝΑΜΕΣΑ στα 2 καρέ θα παράγετε ένα επιπλέον το οποίο θα το βλέπετε στα 16ms. Αυτό ουσιαστικά σημάνει ότι τελικό αποτέλεσμα είναι στα 60fps. Κατά λέξη η διατύπωση της Microsoft λέει:
“We acknowledge that developers may not wish to spend all of the additional GPU resource of Project Scorpio on resolution, and this is not mandated,” the paper says. “To make the best games possible, developers will inevitably spend GPU resource on other quality improvements such as higher fidelity shadows, reflections, texture filtering and lower draw distances. Another option developers might consider is frame-rate upscaling – running graphics at 60Hz but the CPU at 30Hz and interpolating animation.”
Γιατί, όμως, να γίνει αυτή η χρήση ή, αν το δούμε ανάποδα, γιατί δεν χρησιμοποιούν όλα τα παιχνίδια το interpolation ώστε να έχουμε συνέχεια 60fps; Η απάντηση είναι ταυτόχρονα «απλή» αλλά και δυσνόητη (τα «καλά» των τεχνικών θεμάτων). Με το Interpolation η GPU δεν «κλέβει» και αυτό που εννοώ είναι ότι πραγματικά παράγονται 60fps… Οπότε αν μια GPU δεν είναι ικανή να «παράγει» 60fps σε ένα παιχνίδι, με το interpolation δεν γίνεται να αλλάξει κάτι , αφού για κάθε ένα frame η GPU πρέπει να παράγει κανονικά τα πάντα (πολύγωνα, εφέ, rendering, κτλ). Αυτός που πραγματικά «κλέβει» με το interpolation είναι η CPU! Θέτοντας το πολύ απλά, σε κανονικές συνθήκες η GPU περιμένει από την CPU να τις πει τι θα σχεδιάσει. Όταν όμως έχουμε χρήση του Interpolation η CPU στέλνει πληροφορίες στην GPU για τον σχεδιασμό 30fps και η GPU πρέπει να σχεδιάσει τα αλλά 30 frames κάνοντας sampling από το προηγούμενο και το επόμενο frame! Ουσιαστικά η τεχνική χρησιμοποιείται όταν η CPU δεν επαρκεί για να ακολουθήσει την GPU στην παραγωγή των frames.
Στο Eurogamer κάνουν μια ενδιαφέρουσα υπόθεση εργασίας για το κομμάτι της CPU στηριζόμενη στις “οδηγίες” της Microsoft για το interpolation: Ότι η CPU του Scorpio θα δημιουργεί bottleneck και δεν θα έχει τόσο δραστική αναβάθμιση όσο η GPU. Κατά συνέπεια, τα σενάρια που ήθελαν να δούμε τη νέα ΖΕΝ CPU της AMD δεν φαίνονται πλέον τόσο πιθανά και δεν είναι απίθανο να ξαναδούμε τους πυρήνες Jaguar, αλλά, με διάφορα tweaks (περά από την αύξηση της L2 Cache που αναφέραμε πιο πάνω) τα οποία θα σπρώξουν τη CPU στα άκρα από άποψη απόδοσης. Η αλήθεια είναι ότι σαν υπόθεση εργασίας “στέκει”, αλλά, δεν είναι πολλά αυτά που δεν γνωρίζουμε για τo Scorpio (π.χ. τις multimedia δυνατότητες του συστήματος).
Οι “οδηγίες-συμβουλές” της Microsoft έχουν να κάνουν με μια σειρά από tweaks στο κομμάτι της ανάλυσης έτσι ώστε να επιτευχθεί ο στόχος των 4K. Έτσι, για να κάνουν οικονομία δυνάμεων στο Scorpio θα έχουν τη δυνατότητα να κάνουν rendering μια σειρά από στοιχεία στην μισή ανάλυση (1080p). Σε αυτά συμπεριλαμβάνονται transparencies, screen-space effects, global illumination, δευτερεύοντα local lights και shadow accumulation (εδώ πρέπει να παραδεχτώ ότι ειλικρινά δεν ξέρω τι ακριβώς είναι αυτό… Όσο και να έχω ψάξει σε development forums δεν έχω βρει κάποια ξεκάθαρη απάντηση. Αν κάποιος από τους φίλους που διαβάζει το άρθρο γνωρίζει κάτι παραπάνω θα το εκτιμούσα βαθύτατα αν θα μπορέσει να με διαφωτίσει στα σχόλια του post).
Τέλος, προτείνεται στους developers η χρήση του dynamic resolution scaling (την αυξομείωση της ανάλυσης ανάλογα με τον “φόρτο” εργασίας του συστήματος, μια λύση που είχαμε δει στο Halo 5: Guardians), αλλά, και μια τεχνική που είδαμε σε πολλούς τίτλους του PS4 Pro: Το Checkerboard Rendering (αν και η Microsoft το ονομάζει “sparse rendering). Ουσιαστικά μιλάμε για μια τεχνική με την οποία γίνεται rendering στα μισά pixels της οθόνης όπου αυτά χωρίζονται σε tiles τεσσάρων pixels (2×2) και κάθε επόμενο tile επί της ουσίας δημιουργείται κατά προσέγγιση, βάση των tiles που έχουν παραχθεί κανονικά από την GPU (νομίζω ότι τα έκανα χειρότερα τα πράγματα…)
Από τα παραπάνω φαίνεται ότι ακόμα και το εντυπωσιακό, έστω στα χαρτιά, XBOX Scorpio, δεν θα έχει την απόλυτη άνεση στο 4K Gaming και μια σειρά από συμβιβασμούς θα μπορούν να γίνουν από την πλευρά των developers τόσο στο κομμάτι της ποιότητας της εικόνας οσο και στο θέμα τις απόδοσης. Φυσικά αναμένουμε για τις επόμενες πληροφορίες του συστήματος!