Moja aplikacja .Net Winforms tworzy w moim głównym oknie trzy konteksty renderowania OpenGL, a następnie pozwala użytkownikowi na wyskakiwanie innych okien, w których każde okno ma dwa dodatkowe konteksty renderowania (za pomocą splittera). W około 26 kontekście renderowania, rzeczy zaczynają NAPRAWDĘ powolne. Zamiast poświęcić kilka milisekund na renderowanie ramki, nowy kontekst renderowania zajmuje od 5 do 10 sekund. Nadal działa, po prostu NAPRAWDĘ SLOW! A OpenGL NIE zwraca żadnych błędów (glGetError).Czy istnieje ograniczenie liczby kontekstów renderowania OpenGL, które można jednocześnie utworzyć?
Pozostałe okna działają poprawnie. Tylko nowe konteksty renderowania po zwolnieniu określonej liczby. Jeśli zamykam te okna, wszystko jest w porządku - dopóki nie otworzę wystarczająco dużo okien, aby przekroczyć limit. Każdy kontekst renderowania ma własny wątek, a każdy używa prostego modułu cieniującego. Zwolnienie wydaje się mieć miejsce, gdy przesyłam teksturę. Ale rozmiar tekstury nie ma wpływu na to, ile kontekstów mogę utworzyć, ani na rozmiar okna OpenGL.
Używam kart nVidia i widzę to na różnych procesorach graficznych z różnymi ilościami pamięci i różnymi wersjami sterowników. O co chodzi? Czy istnieje ograniczenie liczby kontekstów renderowania, które aplikacja może utworzyć?
Czy ktoś jeszcze ma aplikację z wieloma kontekstami renderowania działającymi w tym samym czasie?
Zobacz także https://community.amd.com/thread/184325 dla odniesienie o AMD, mam wrażenie, że hrabia AMD jest niski (+/- 20 ctx?) –