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?

Julien Guertault
źródło

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.

maniak zapadkowy
źródło