Λεπτομέρειες της Microsoft DirectX Raytracing Tier 1.1, Νέες λειτουργίες του DirectX 12



Microsoft detailed feature additions to the DirectX 12 3D graphics API, and an expansion of its DirectX Ray-tracing (DXR) API to Tier 1.1. The updated APIs will be included with the Windows 10 major update that's scheduled for the first half of 2020 - the features are accessible already for developers in Windows Insider preview builds. DXR 1.1 is the first major update to the API since its Q4-2018 launch, and adds three major features. To begin with, it brings support for extra shaders to an existing ray-tracing PSO (pipeline-state object), increasing the efficiency of dynamic PSO additions. Next up, is ExecuteIndirect for Raytracing support, described by Microsoft as 'enabling adaptive algorithms where the number of rays is decided on the GPU execution timeline.' This could be a hint what to expect from NVIDIA's next-generation GPUs that are expected for next year. Lastly, the API introduces support for Inline Raytracing, which gives developers more control over ray traversal and scheduling.

Πάνω στο κύριο DirectX 12 API, η Microsoft εισάγει την υποστήριξη για το Mesh Shaders, το οποίο επιφέρει συστημικές αλλαγές στον αγωγό γραφικών. 'Οι shaders ματιών και τα shaders ενίσχυσης είναι η επόμενη γενιά της δυνατότητας επεξεργασίας γεωμετρίας GPU, αντικαθιστώντας το τρέχον συναρμολογητή εισόδου, shader κορυφής, shader κέλυφος, σάρωθρο, shader τομέα και σκηνικά shader γεωμετρίας». Η ανάδραση του DirectX Sampler συμβάλλει στη διαχείριση της μνήμης, επιτρέποντας στα παιχνίδια να κατανοούν καλύτερα ποια στοιχεία περιουσιακών στοιχείων της υφής είναι πιο συχνά προσβάσιμα και πρέπει να παραμείνουν μόνιμα.

Η Microsoft περιγράφει την επίδραση της απόκρισης του DirectX Sampler Feedback σε δύο βασικές λειτουργίες API: streaming textures και σκίαση χώρου υφής, ως εξής:

Ροή υφής
Πολλά παιχνίδια επόμενου γενιάς έχουν το ίδιο πρόβλημα: όταν δίνουμε μεγαλύτερους και μεγαλύτερους κόσμους με υψηλότερες και υψηλότερης ποιότητας υφές, τα παιχνίδια υποφέρουν από μεγαλύτερο χρόνο φόρτωσης, μεγαλύτερη πίεση μνήμης ή και τα δύο. Οι προγραμματιστές παιχνιδιών πρέπει να περιορίσουν την ποιότητα του ενεργητικού τους ή να φορτώσουν τις υφές κατά την εκτέλεση περισσότερο από ό, τι είναι απαραίτητο. Όταν στοχεύετε την ανάλυση 4k, ολόκληρο το MIP 0 μιας υψηλής ποιότητας υφής χρειάζεται πολύ χώρο! Είναι πολύ επιθυμητό να είναι δυνατή η φόρτωση μόνο των απαραίτητων τμημάτων των πιο λεπτομερών επιπέδων ΜΙΡ.

Μια λύση σε αυτό το πρόβλημα είναι η ροή υφής όπως περιγράφεται παρακάτω, όπου το Feedback του Sampler βελτιώνει σημαντικά την ακρίβεια με την οποία μπορούν να φορτωθούν τα σωστά δεδομένα στις κατάλληλες στιγμές.
  • Σκηνοθετήστε τη σκηνή και καταγράψτε τα επιθυμητά πλακάκια υφής χρησιμοποιώντας την ανατροφοδότηση του δειγματολήπτη.
  • Εάν τα πλακίδια υφής στα επιθυμητά επίπεδα MIP δεν είναι ακόμη κατοίκημα:
    o Τρέξτε το τρέχον πλαίσιο χρησιμοποιώντας χαμηλότερο επίπεδο MIP.
    o Υποβολή αιτήματος δίσκου IO για τη φόρτωση των επιθυμητών πλακιδίων υφής.
  • (Ασύγχρονη) Χαρτογράφηση των επιθυμητών πλακιδίων υφής σε δεσμευμένους πόρους όταν φορτώνονται.
Σκίαση χώρου-υφής
Ένα άλλο ενδιαφέρον σενάριο είναι η σκίαση χώρου υφής, όπου τα παιχνίδια υπολογίζουν δυναμικά και αποθηκεύουν τις ενδιάμεσες τιμές shader σε μια υφή, μειώνοντας τόσο την χωρική όσο και την προσωρινή αποδόμηση απόδοσης. Η ροή εργασίας μοιάζει με την ακόλουθη, όπου και πάλι, η ανατροφοδότηση Sampler βελτιώνει σημαντικά την αποτελεσματικότητα, αποφεύγοντας τα πλεονάζοντα τμήματα υπολογιστικής εργασίας μιας υφής που δεν χρειάζονταν πραγματικά.
  • Σχεδιάστε τη γεωμετρία με απλά shaders που καταγράφουν το Feedback του Sampler για να καθορίσετε ποια μέρη μιας υφής είναι απαραίτητα.
  • Υποβάλετε υπολογιστική εργασία για να συμπληρώσετε τις απαραίτητες υφές.
  • Σχεδιάστε ξανά τη γεωμετρία, αυτή τη φορά με πραγματικά shaders που εφαρμόζουν τα δεδομένα υφής που δημιουργούνται.
Αλλα χαρακτηριστικά
  • Υποστήριξη DRED για δείκτες PIX
  • Νέα API για αλληλεπίδραση με το στρώμα αντιστοίχισης D3D9on12
  • Η μορφή R11G11B10_FLOAT υποστηρίζεται για κοινόχρηστους πόρους
  • Νέες σημαίες κατανομής πόρων που επιτρέπουν τη δημιουργία πόρων D3D12 χωρίς επίσης να καταστούν μόνιμοι κάτοικοι στη μνήμη GPU ή χωρίς να αρχικοποιήσουν το μηδέν τους, γεγονός που μπορεί να βελτιώσει την απόδοση της δημιουργίας πόρων
  • D3DConfig: Ένα νέο εργαλείο για τη διαχείριση των ρυθμίσεων του πίνακα ελέγχου του DirectX
Υποστήριξη PIX
Η υποστήριξη PIX για αυτές τις νέες λειτουργίες του DirectX 12 έρχεται τους επόμενους μήνες. Θα παρέχουμε περισσότερες λεπτομέρειες κατά τη βαθιά κατάδυση σε κάθε λειτουργία τις προσεχείς εβδομάδες.
Source: Microsoft DirectX Developer Blog