Czy istnieje jakiś tryb debugowania, w którym można uruchomić OpenGL w miejscu, w którym wysyła on informacje do konsoli? Mam aplikację dobrze działającą na wielu maszynach, ale niestety nie działa ona na jednym komputerze, który naprawdę ma znaczenie. Nie mam bezpośredniego dostępu do tego komputera, więc staram się dowiedzieć, jak to się nie udaje. Obecnie nie widzę żadnych danych wyjściowych w konsoli. Zauważ, że aplikacja była pierwotnie aplikacją Windows bez konsoli i zmieniłem ją na konsolę za pośrednictwem właściwości projektu. Także, jeśli ma znaczenie, niektóre obiekty nie wyświetlają się, a inne są zablokowane i nie animują - co nie ma dla mnie żadnego sensu.Debugowanie OpenGL lub szczegółowe informacje na konsolę
Odpowiedz
Nie, niezupełnie. Musiałbyś napisać hak OpenGL i nagrać wszystkie wywołania, jakie robi (czyli takie narzędzia jak gDEBugger), jeśli naprawdę chcesz mieć jakieś szczegółowe wyniki, ale to wymaga sporo pracy (możesz użyć czegoś takiego jak GLIntercept).) Z własnego doświadczenia: Najprościej będzie uzyskać dostęp do danej maszyny i uruchomić gDEBugger ... lub uzyskać odpowiednik maszyny, aby móc odtworzyć błąd z dołączonym debugerem graficznym.
Alternatywnie można spróbować użyć rozszerzenia ARB_debug_output
, które - teoretycznie - powinno dostarczyć więcej wyników. W praktyce wszystko, co otrzymujesz, to wywołanie glGetError
po każdym wywołaniu OpenGL API, które może być wystarczająco dobre dla twojego przypadku użycia (tzn. Po prostu zrobić coś, co łamie stan GL). Aby użyć rozszerzenia wyjścia debugowania, musisz zmodyfikować Twoja aplikacja do utworzenia kontekstu debugowania.
- 1. Szczegółowe informacje na temat formatu wielostrumieniowego Microsoft:
- 2. Uzyskaj szczegółowe informacje na temat intencji Oczekujących
- 3. Uzyskaj szczegółowe informacje dotyczące uprawnień
- 4. szczegółowe informacje na temat punktu poi w MKMapview
- 5. Uzyskaj szczegółowe informacje o dostawcy członkostwa
- 6. jinja2 drukowanie na konsolę lub rejestrowanie
- 7. Jak uzyskać szczegółowe informacje na temat wyjątku NullPointerException w JSP?
- 8. OpenGL lub OpenGL ES
- 9. Usługa Angular 2 http. Uzyskaj szczegółowe informacje o błędzie
- 10. Jak uzyskać szczegółowe informacje o urządzeniu w wersji szybkiej
- 11. Uzyskaj szczegółowe informacje o dacie (dzień, miesiąc, rok) w GWT
- 12. Jak uzyskać szczegółowe informacje o błędach z JAXB Validator?
- 13. : szczegółowe informacje o błędzie aplikacji z powodu bycia wyświetlanym zdalnie
- 14. Zapis na szynach konsolę
- 15. Jak uzyskać szczegółowe informacje o procesie z jego pid
- 16. Data wydruku na konsolę
- 17. OpenGL ES 1.1 lub 2.0 na iPhonie
- 18. Asp.net 4.0: Jak uzyskać szczegółowe informacje o wyjątku na stronie błędów niestandardowych?
- 19. Jak uzyskać szczegółowe informacje na temat wybranych przedmiotów za pomocą QTreeView?
- 20. Jak uzyskać bardziej szczegółowe informacje o błędzie na zabitym zleceniu w Oozie
- 21. Debugowanie osadzone Lua
- 22. putStrLn nie drukuje na konsolę
- 23. Prowadź dziennik pm2 na konsolę
- 24. Jak zainstalować NodeBox na konsolę
- 25. Jak wyprowadzać LogCat na konsolę?
- 26. Jak szybko jest metoda rejestrowania log4net (debugowanie, informacje itp.)?
- 27. Bufor wzorcowy OpenGL LUB operacja?
- 28. Windows Phone: Zaloguj się na konsolę
- 29. Gdzie mogę znaleźć szczegółowe informacje o interakcji AWT z natywnym systemem operacyjnym?
- 30. Wybierz OpenGL ES 1.1 lub OpenGL ES 2.0?
Użyteczność ARB_debug_output zależy od implementacji OpenGL. NVIDIA w zasadzie robi wersję 'glGetError', ale wersja AMD jest raczej pomocna. Nie zwraca się po prostu "GL_INVALID_OPERATION"; generalnie mówi przydatne informacje, takie jak funkcja, która spowodowała to i tak dalej. Widziałem, że specjalnie rozpoznaje przestarzałe wywołania funkcji w rdzennym kontekście. Podczas kompilacji shadera i błędów łączenia zrzucane są odpowiednie dzienniki po awarii. I tak dalej. –
'ARG_debug_ouput' jest częścią specyfikacji Core od wersji' 4.3'. –