Jaki jest współczesny odpowiednik list wyświetlania?


9

Listy wyświetlania były funkcją OpenGL, która teoretycznie mogła przyspieszyć dowolną część interfejsu API, przechowując grupę poleceń do późniejszego wykorzystania. W moim rozumieniu ma to duży sens w związku z obecnymi wysiłkami zmierzającymi do zmniejszenia obciążenia kierowcy.

Listy wyświetlania były jednak przestarzałe w wersji 3.1. Czym jest współczesny odpowiednik API i czy DirectX udostępnia podobną funkcję? Jeśli nie ma już takiej funkcjonalności, jakie jest uzasadnienie?

Odpowiedzi:


12

Nvidia ma rozszerzenie do tworzenia buforów poleceń we współczesnym GL .

Powodem braku podobnej funkcjonalności jest fakt, że istnieje wiele stanów związanych z renderowaniem, a na listę wyświetlania wpływa wiele różnych stanów. Na przykład zmiana stanu mieszania wymaga łatania modułu cieniującego fragmenty na niektórych urządzeniach.

NVidia rozwiązała go, przechwytując cały stan i przywracając go do stanu po wysłaniu:

1) Co motywuje projekt?

Podstawowym celem jest możliwość ponownego użycia wstępnie sprawdzonych buforów poleceń. Inne interfejsy API i propozycje rozwiązały ten problem za pomocą różnych wcieleń list poleceń lub obiektów stanu, ale powtarzającym się problemem jest to, że interakcje między różnymi etapami potoku uniemożliwiają to prewalidację i ponowne użycie. Te interakcje są często specyficzne dla sprzętu (i różnią się od dostawcy do dostawcy, a nawet z pokolenia na pokolenie), a nowe interakcje są wprowadzane przez nowe funkcje, których nie wyobrażano, kiedy zaproponowano schemat prewalidacji.

Próbujemy rozwiązać ten problem, mając obiekt stanu monolitycznego, który obejmuje (prawie) cały stan potoku. Powinno to zapewnić wystarczającą ilość informacji dla wszystkich wdrożeń, aby przeprowadzić niezbędną weryfikację krzyżową. Staramy się tworzyć je w taki sposób, aby zminimalizować nowy ślad API - ponieważ chcemy WSZYSTKIEGO stanu (w tym każdego dodanego w przyszłości), po prostu przechwytujemy go z bieżącego stanu kontekstu.

[...]

23) W jakim stanie pozostaje stan, który jest modyfikowany przez tokeny, po wywołaniu wysyłki?

ROZWIĄZANE: stan jest resetowany.

(z tekstu rozszerzenia podanego powyżej)

Jednak prawdziwym następcą jest funkcja bufora poleceń w DX12 i Vulkan. Przechwycą także wszystkie stany renderowania w jednym obiekcie, który będzie używany podczas tworzenia i wypełniania bufora poleceń. Rozszerzenie NVidia opiera się na tej architekturze w wyniku zaangażowania NVidii w projekt Vulkan.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.