Znalazłem zamulacza
Tak, już wiem co mi tak zamula. Jest to funkcyjka SDL_GL_SwapBuffers. Choć niezupełnie, bo ona tak naprawdę z tego co wyczaiłem z źródeł SDL'a wywołuje glXSwapBuffers. Od razu mówię, że vsync jest wyłączony. Jeżeli przed SDL_GL_SwapBuffers wywołam glFinish to SDL_GL_SwapBuffers już nie zamula, tylko właśnie glFinish. Wniosek - bardzo możliwe, że gdzieś tam jest właśnie glFinish wywoływany, jego wykonanie zajmuje około 0.04 sekundy!!! Zastanawiam się przez to nad przejściem z SDL do GLFW, co jest naprawdę dobrym pomysłem chociażby dlatego, że GLFW jest malutki i zapewnia praktycznie same przydatne mi rzeczy bez zbędnych dodatków. Muszę sprawdzić ten mój kod z SDL'em jeszcze na Windowsie i ogólnie GLFW.
3 komentarz(y):
Wyglada na to ze twoj framework zadaje duzo pracy karcie. Gdy wywolujesz funkcje zamieniajaca bufory lub funkcje ktora nakazuje karcie ukonczenia wszystkich operacji musisz liczyc sie z tym ze program zatrzyma sie na tej funkcji do mometu az karta przeliczy wszystko. Prawdopodobnie problem lezy w calkiem innym miejscu.
Jak nic nie renderuje, tylko robie clear'a, flush'a i swap'a to mam około 53 klatek :/ Więc coś jest nie tak...
zdecydowanie cos jest nie tak :)
Prześlij komentarz
« Główna