Ποιες είναι οι διαφορές και ποιες πρέπει να χρησιμοποιήσετε;

Το DirectX 12 κυκλοφόρησε παράλληλα με τα Windows 10 το 2015. Με την κυκλοφορία του, το DirectX 12 της Microsoft εγκαινίασε μια νέα εποχή για παίκτες και προγραμματιστές παιχνιδιών. Με τη δυνατότητα να μειώνει το κόστος της CPU ενώ ενισχύει την απόδοση της GPU, το DirectX 12 έκανε γρήγορα όνομα.

Ωστόσο, η αύξηση της απόδοσής σας είναι πραγματικά τόσο απλή όσο η μετάβαση από το DirectX 11 στο DirectX 12; Ας μάθουμε εξετάζοντας τις διαφορές μεταξύ του DirectX 11 και του 12.

Τι είναι το DirectX της Microsoft;

Όπως εξηγείται στην επισκόπηση του Microsoft DirectX, το DirectX είναι μια συλλογή διεπαφών προγραμματισμού εφαρμογών (API) που χρησιμοποιούνται για το χειρισμό εργασιών που σχετίζονται με πολυμέσα. Αυτό περιλαμβάνει προγραμματισμό παιχνιδιών σε πλατφόρμες που βασίζονται στη Microsoft, όπως τα Windows και το Xbox. Για να παρέχουμε κάποιο πλαίσιο, ας μιλήσουμε εν συντομία για τα API.

Ένα API καθιστά δυνατή την επικοινωνία δύο ή περισσότερων προγραμμάτων υπολογιστή μεταξύ τους, κάτι που συζητάμε στην επισκόπηση των API. Σκεφτείτε το σαν ένα τηλέφωνο. Εάν η μαμά σας σας στείλει ένα μήνυμα με μια λίστα με είδη παντοπωλείου, το τηλέφωνό σας θα λάβει αυτά τα δεδομένα και θα τα εμφανίσει για εσάς. Αυτό είναι βασικά ένα API.

Ποιες είναι οι διαφορές μεταξύ του DirectX 11 και του DirectX 12;

Λοιπόν, ποιες είναι οι διαφορές μεταξύ του DirectX 11 και του DirectX 12; Με απλά λόγια, το DirectX 12 είναι η πιο πρόσφατη έκδοση του DirectX. Μία από τις πιο αξιοσημείωτες διαφορές είναι ο τρόπος με τον οποίο αλληλεπιδρούν με το υλικό σας. Τα περισσότερα παιχνίδια που αναπτύχθηκαν με το DirectX 11 χρησιμοποιούν μόνο δύο έως τέσσερις πυρήνες CPU. Ένας από αυτούς τους πυρήνες συνήθως λέει στην GPU τι να κάνει.

Στη συνέχεια, το παιχνίδι χρησιμοποιεί τους εναπομείναντες πυρήνες για να χειριστεί διάφορες ρυθμίσεις έντασης CPU, όπως τα σωματίδια ενός παιχνιδιού ή την απόσταση τραβήγματος. Από την άλλη πλευρά, το DirectX 12 κατανέμει το φόρτο εργασίας μιας CPU σε πολλούς πυρήνες και επιτρέπει σε κάθε πυρήνα να συνομιλεί με τη GPU ταυτόχρονα.

  Τι είναι το LinkedIn Premium και αξίζει τον κόπο;

Το DirectX 12 έρχεται επίσης με μερικά φανταχτερά κουδούνια και σφυρίχτρες. Αυτό περιλαμβάνει ασύγχρονους υπολογισμούς και αντικείμενα κατάστασης αγωγών (PSO). Ο ασύγχρονος υπολογισμός αυξάνει τη χρήση της GPU επιτρέποντας σε πολλαπλούς φόρτους εργασίας να λειτουργούν παράλληλα. Αυτό ουσιαστικά ξεκλειδώνει το πλήρες δυναμικό της GPU σας.

Εκτός από την απόδοση γραφικών, η GPU σας χειρίζεται ένα ευρύ φάσμα άλλων εργασιών, όπως η εκτέλεση αλγορίθμων μηχανικής εκμάθησης. Με το DirectX 11, η GPU μπορεί να εκτελέσει μόνο μία από αυτές τις εργασίες κάθε φορά και με συγκεκριμένη σειρά. Η απόδοση χτυπά όταν συμβαίνει αυτό επειδή οι πόροι της GPU δεν χρησιμοποιούνται αποτελεσματικά.

Σκεφτείτε το σαν σερβιτόρος σε εστιατόριο. Όταν ένας σερβιτόρος παίρνει την παραγγελία σας, σας ρωτάει τι θέλετε να πιείτε πρώτα. Μόλις παραλάβετε τα ποτά σας, σας ρωτούν τι θέλετε για το κυρίως πιάτο. Η παραγγελία σας πραγματοποιείται σταδιακά. Ο σερβιτόρος δεν πρόκειται να σας ρωτήσει τι θα θέλατε για επιδόρπιο πριν φάτε το κύριο πιάτο σας. Αν και αυτό είναι αποτελεσματικό, δεν είναι τόσο αποτελεσματικό όσο θα μπορούσε να είναι.

Στους υπολογιστές, ένας διαφορετικός πόρος GPU θα χειριζόταν καθεμία από τις εργασίες του σερβιτόρου. Μέχρι να παραλάβετε το ποτό σας, οι πόροι της GPU που απαιτούνται για την παραγγελία του κύριου πιάτου σας θα είναι αδρανείς. Με τον ασύγχρονο υπολογισμό του DirectX 12, ο σερβιτόρος θα μπορεί να λάβει την παραγγελία σας ταυτόχρονα, όπως σε μια αλυσίδα γρήγορου φαγητού. Αυτό μεγιστοποιεί τη χρήση της GPU και βελτιώνει την απόδοση του παιχνιδιού σας.

Το DirectX 12 εισήγαγε επίσης αντικείμενα κατάστασης διοχέτευσης (PSO). Με το DirectX 11, όταν η γεωμετρία ενός παιχνιδιού υποβάλλεται στην GPU για απόδοση, διάφορες ρυθμίσεις υλικού είναι υπεύθυνες για την ερμηνεία και την απόδοση αυτών των δεδομένων. Αυτό ονομάζεται διοχέτευση γραφικών και η ροή των εισόδων και εξόδων δεδομένων που εμφανίζονται καθώς η GPU σας αποδίδει καρέ. Ωστόσο, η σειρά γραφικών του DirectX 11 δεν είναι τέλεια.

Αυτός ο αγωγός περιέχει μια συλλογή διαφορετικών καταστάσεων, συμπεριλαμβανομένης της κατάστασης ραστεροποίησης, της κατάστασης ανάμειξης και της κατάστασης στένσιλ βάθους, μεταξύ άλλων στοιχείων. Στο DirectX 11, υπάρχουν εξαρτήσεις μεταξύ αυτών των διαφορετικών καταστάσεων. Ως αποτέλεσμα, μια κατάσταση δεν μπορεί να ολοκληρωθεί μέχρι να οριστεί η προηγούμενη κατάσταση. Αυτό μειώνει τη χρήση της GPU και αυξάνει την επιβάρυνση της CPU με το κόστος της απόδοσης.

  Πώς να επαναφέρετε εύκολα το HomePod mini

Για να ξεπεραστεί αυτό, το DirectX 12 εισήγαγε τα PSO, αντικείμενα που περιγράφουν την κατάσταση ολόκληρης της γραμμής γραφικών. Τα PSO είναι σαν ένα μπουκάλι που περιέχει τις διάφορες καταστάσεις και τα συστατικά που απαιτούνται για τη δημιουργία μιας εικόνας. Αυτό επιτρέπει στη GPU να προεπεξεργάζεται κάθε εξαρτημένη κατάσταση αντί να επανυπολογίζει συνεχώς καταστάσεις με βάση την τρέχουσα διοχέτευση γραφικών.

Αυτό μειώνει σημαντικά την επιβάρυνση της CPU που βρίσκεται στο DirectX 11 και βελτιώνει την απόδοση. Λοιπόν, πώς φαίνεται αυτή η διαφορά; Λοιπόν, σύμφωνα με τη Microsoft, το DirectX 12 μειώνει την επιβάρυνση της CPU έως και 50 τοις εκατό και βελτιώνει την απόδοση της GPU έως και 20 τοις εκατό. Αν και αυτές είναι μερικές ουσιαστικές βελτιώσεις, αυτό δεν σημαίνει ότι θα δείτε τα ίδια αποτελέσματα.

Γιατί η εναλλαγή από το DirectX 11 στο DirectX 12 δεν είναι απλή

Το DirectX 11 κυκλοφόρησε για πρώτη φορά για Windows Vista στις 27 Οκτωβρίου 2009. Έτσι, με το DirectX 12 να ακολουθεί το 2015, υπάρχει ένα κενό έξι ετών μεταξύ του DirectX 11 και του DirectX 12. Κατά τη διάρκεια αυτής της περιόδου, χιλιάδες παιχνίδια έχουν αναπτυχθεί χρησιμοποιώντας το DirectX 11. Δυστυχώς, η μετάβαση από το DirectX 11 στο DirectX 12 κάθε άλλο παρά εύκολη είναι.

Το DirectX 11 είναι αυτό που ονομάζεται API υψηλού επιπέδου. Με απλά λόγια, τα API υψηλού επιπέδου είναι πιο εύκολο για τους προγραμματιστές να συνεργαστούν. Το αποτέλεσμα είναι σταθερά, γυαλισμένα και παιχνίδια που μπορούν να παιχτούν. Από την άλλη πλευρά, το DirectX 12 είναι ένα API χαμηλού επιπέδου και ένα διαφορετικό θηρίο από το DirectX 11. Ενώ επιτρέπει στους προγραμματιστές να βελτιστοποιήσουν τη βελτιστοποίηση σε λεπτομερές επίπεδο, απαιτεί επίσης εκτεταμένη γνώση για χρήση.

Τούτου λεχθέντος, ένα παιχνίδι που αναπτύχθηκε στο DirectX 12 θα μπορούσε να καταλήξει με χειρότερη απόδοση ανάλογα με τις γνώσεις του προγραμματιστή για το API. Ορισμένες βελτιώσεις έρχονται με το DirectX 12, αλλά στην πραγματικότητα εξαρτάται από το πόσο καλά μπορεί να το εφαρμόσει ένας προγραμματιστής. Για αυτόν τον λόγο, πολλοί προγραμματιστές επιλέγουν να παραμείνουν σε API υψηλού επιπέδου όπως το DirectX 11.

DX 11 εναντίον DX 12: Ποιο να επιλέξετε;

Η απάντηση εξαρτάται από μερικά πράγματα, όπως το παιχνίδι που προσπαθείτε να εκτελέσετε. Για παράδειγμα, το Guild Wars 2 εκτελείται σε DirectX 11. Ακόμα κι αν το λειτουργικό σύστημα και το υλικό σας μπορούν να χρησιμοποιήσουν το DirectX 12, δεν θα έχετε την επιλογή να επιλέξετε το DirectX 11 στο Guild Wars 2, επειδή το παιχνίδι δεν το υποστηρίζει. Αυτή είναι εξ ολοκλήρου απόφαση του προγραμματιστή, ArenaNet.

  Πόσο ιδιωτικό και ασφαλές είναι το δίκτυο Tor;

Πίστωση εικόνας: Martin Kerstein/Guild Wars 2

Είτε το πιστεύετε είτε όχι, χρειάστηκαν εννέα χρόνια για να αλλάξει η ArenaNet από το DirectX 9 στο DirectX 11. Ωστόσο, ορισμένα παιχνίδια υποστηρίζουν τόσο το DirectX 11 όσο και το DirectX 12, συμπεριλαμβανομένων των Fortnite (διαβάστε το φύλλο εξαπάτησης του Fortnite), Battlefield 5, Shadow of το Tomb Raider και πολλά άλλα. Οι χρήστες μπορούν να κάνουν εναλλαγή μεταξύ του DirectX 11 και του DirectX 12 στις ρυθμίσεις του παιχνιδιού.

Τώρα, το γεγονός ότι ορισμένα παιχνίδια υποστηρίζουν τόσο το DirectX 11 όσο και το 12 πιθανότατα σας έχει κάνει να αναρωτιέστε για την απόδοση εντός του παιχνιδιού. Η επιλογή του DX 11 ή του DX 12 προσφέρει καλύτερη απόδοση εντός του παιχνιδιού; Το παρακάτω βίντεο απεικονίζει τις διαφορές μεταξύ του DirectX 11 και του DirectX 12 σε μια σειρά παιχνιδιών, παρουσιάζοντας ζωτικής σημασίας προδιαγραφές όπως τα μέσα καρέ ανά δευτερόλεπτο, τη χρήση CPU, τη χρήση GPU και άλλα, χρησιμοποιώντας ένα AMD Ryzen 3600, Nvidia GeForce RTX 3060 Ti και 16 GB DDR4 RAM.

Τα αποτελέσματα εκπλήσσουν από πολλές απόψεις, με μικρή οπτική διαφορά μερικές φορές μεταξύ των DX 11 και DX 12, παρά τα πολλά χρόνια διαφοράς μεταξύ των λανσαρισμάτων τους. Μπορεί επίσης να έχετε παρατηρήσει τις διαφορές στα φορτία GPU και CPU μεταξύ των δύο εκδόσεων DirectX, με τις εκδόσεις DX 12 κάθε παιχνιδιού να απαιτούν συνήθως λιγότερους πόρους από το παλαιότερο DX 11.

Εκτός από την υποστήριξη εντός του παιχνιδιού, η επιλογή μεταξύ του DirectX 11 και του DirectX 12 θα εξαρτηθεί επίσης από το υλικό σας. Σχεδόν κάθε σύγχρονη GPU θα υποστηρίζει DirectX 12, αλλά δεν μπορούμε να πούμε το ίδιο για παλαιότερες GPU όπως η Radeon HD 4870. Αυτή η GPU που κυκλοφόρησε το 2008 υποστηρίζει μόνο έως το DirectX 10. Αυτό σημαίνει ότι δεν θα μπορούσε να τρέξει τις πιο σύγχρονες παιχνίδια, τα οποία τρέχουν χρησιμοποιώντας DirectX 11 και DirectX 12.

Είναι το DirectX 12 η σωστή επιλογή για εσάς;

Συνολικά, η εναλλαγή από το DirectX 11 στο DirectX 12 δεν είναι τόσο ασπρόμαυρη όσο ακούγεται. Εξαρτάται από διάφορους παράγοντες, όπως το υλικό, το λογισμικό, το λειτουργικό σύστημα και το αν ένα παιχνίδι υποστηρίζει και τα δύο καθόλου. Όλα αυτά πρέπει να ληφθούν υπόψη πριν ληφθεί μια απόφαση, και αυτό πιθανότατα θα ισχύει και για τις μελλοντικές γενιές του DirectX.