Czy istnieje maksymalna liczba instrukcji asemblerowych, które należy załadować do jednostki programu fragmentów? Mam algorytm na port z procesora do gpu i najwyraźniej nie pasuje do gpu.Maksymalna liczba instrukcji GLSL
13
A
Odpowiedz
2
Istnieje ograniczenie maksymalnej liczby instrukcji, które może mieć moduł cieniujący. O ile mi wiadomo, różni się to od GPU do GPU. Jeśli twój moduł cieniujący jest zbyt duży, kompilacja wygeneruje błąd.
34
Istnieje kilka twardych i miękkich ograniczeń, z których niektóre nie są oczywiste:
- gniazda Instrukcja: Łączna liczba instrukcji, że sprzęt może pomieścić w pamięci lokalnej.
- Zrealizowane instrukcje: Maksymalna liczba instrukcji, które będzie wykonywał (łącznie z instrukcjami, które działają kilka razy w pętli)
- Pojedyncza instrukcja GLSL można mapować do kilkunastu instrukcji
- Kilka instrukcje GLSL można mapować do pojedyncza instrukcja w zależności od jakości optymalizatora (np. multiply-add, dot, lerp)
- Rejestry z ograniczonym tempem (tylko 32) mogą wymagać więcej instrukcji niż jest to konieczne na sprzęcie pre-SM4 (brak problemu z 4096).
- Swizzling zazwyczaj nie kosztuje dodatkowe instrukcje w dzisiejszych czasach, ale robi na jakimś starszym sprzęcie i może w niektórych sytuacjach na niektórych urządzeniach (zwł. Gl_FragColor jest taki kandydat)
- Niezależnie od rzeczywistych instrukcji, OpenGL 2.0 kompatybilny sprzęt jest ograniczona do 8 zależnych pobiera tekstur (nieograniczony na sprzęt, który może zrobić OpenGL 2.1 lub lepsza)
Trzeba te gwarantowane minima (większość kart ma więcej):
- 512 slotów instruktażu dla vertex oraz pixel shaderów na OpenGL 2.x (SM3) zdolny sprzętu
- 65536 wykonywane instrukcje
- 4096 i 65536 wierzchołków pixel shader szczeliny instruktażowe na 3.x (SM4) sprzętu
- 65536 wykonywane instrukcje vertex shader, nieograniczone pixel instrukcje
- przynajmniej 24 oddziałów dynamiczne możliwych shader na 2.x (SM3) sprzętu
- pełni dynamiczny rozgałęzienie (bez limitów) na sprzęcie SM4
- Tylko warunkowy ruch dostępny na SM2.x, wszystko musi być zakwaterowani kodem powielania i odwijanie pętli, lub zawieść
+8
To jest świetna odpowiedź, ale byłoby lepiej z niektórymi odniesieniami. – Kaganar
Powiązane problemy
- 1. SQL DELETE - Maksymalna liczba wierszy
- 2. Maksymalna liczba argumentów Bash! = Maksymalna liczba argumentów cp?
- 3. Maksymalna liczba wątków ThreadPool
- 4. Maksymalna liczba prób wysłania
- 5. Parametry funkcji maksymalna liczba
- 6. Maksymalna liczba równoczesnych HttpWebRequests
- 7. Maksymalna liczba elementów wyliczających w języku Java
- 8. Funkcje PHP - Maksymalna liczba argumentów
- 9. Jenkins - maksymalna liczba równoczesnych zadań
- 10. Maksymalna liczba procesów zarejestrowanych globalnie
- 11. Maksymalna liczba połączeń w ChannelFactory
- 12. SELECT id HAVING maksymalna liczba id
- 13. Maksymalna liczba obiektów w obszarze roboczym
- 14. Maksymalna liczba połączeń na hoście z twisted.web.client.Agent
- 15. Jaka jest maksymalna liczba plików na słoik?
- 16. Maksymalna liczba wymiarów w tablicy Javy
- 17. Maksymalna liczba zmiennych lokalnych w metodzie Java
- 18. . Maksymalna liczba równoczesnych wątków z timerem
- 19. Jaka jest maksymalna liczba ponumerowanych wyrażeń regularnych?
- 20. Maksymalna liczba wierszy w tabeli sqlite?
- 21. Czy istnieje maksymalna liczba zapasów git?
- 22. Maksymalna liczba oczekujących elementów w ThreadPool.QueueUserWorkItem
- 23. Studio Android maksymalna liczba linii logcat
- 24. Maksymalna liczba urządzeń peryferyjnych w CoreBluetooth?
- 25. Maksymalna liczba zapytań SQL na stronę
- 26. Maksymalna liczba kolumn w tabeli MySQL
- 27. Maksymalna liczba znaków w znaczniku div/akapitu
- 28. Maksymalna liczba definicji var/funkcji w JavaScript?
- 29. Błąd: Maksymalna liczba bibliotek DLL osiągniętych
- 30. Maksymalna liczba instancji modułu roboczego Apache
ja nic o shaderów wiedzieć, ale domyślam się, że nie mają nieskończonej przestrzeni dyskowej. –