ПрограммированиеФорумГрафика

OpenGL 3.0 рывки (stuttering)

#0
11:05, 18 апр 2023

Всем привет!

Борюсь с микро-рывками скроллинга в своем "движке" (проявляются даже при v-sync on). GameLoop всяко-разно перекраивал - вроде дело не в нём.

Vsync на 60 hz.

Посмотрел тайминги glSwapBuffers - плавают.
В меньшую сторону еще объяснимо (часть времени отъедает геймлогика и системщина), но бывает, что тайминг превышает 16.667мс.
Проскакивают и 17 и 18 мс  - есть подозрение, что что-то не так в render pipeline.

+ Показать

Есть ли инструмент диагностики OpenGL 3.0 приложения под Windows, который может дать раскладку по таймингам gl-комманд и показать gl error-ы?

Аналогичное приложение на DX8 работает существенно плавнее и микро-рывки очень очень редко возникают.

#1
12:37, 18 апр 2023

Vitorio
если в кадре не происходят ни каких изменений при этом то явно проблема в твоем gameloop'e.

+ Показать
#2
13:50, 18 апр 2023

Vitorio
Попробуй фиксированный dt в 16мс.

#3
17:26, 18 апр 2023

Aroch
> если в кадре не происходят ни каких изменений при этом то явно проблема в твоем
> gameloop'e
Да, сцена более менее стабильная. Dx8 приложение с таким же геймлупом работает почти без рывков. Возможно в opengl я где то накосячил с подготовкой каких нибудь буфферов или биндингом объектов, вот и хотелось бы через стороннее приложение провести диагностику.

HolyDel
> Попробуй фиксированный dt в 16мс.
С ним получше, но все равно хуже, чем в референсном dx8 приложении.

#4
18:39, 18 апр 2023

Vitorio
> вот и хотелось бы через стороннее приложение провести диагностику.
стороннее приложение будет так или иначе влиять на результат.
> с таким же геймлупом работает почти без рывков
так как он выглядит? Давай уже код.

#5
21:04, 18 апр 2023

Vitorio
WGL_DOUBLE_BUFFER_ARB в true стоит?

#6
0:01, 19 апр 2023

Vitorio

Можно пойти проверенным способом - закомментировать все кроме SwapBuffers, если ок, то поочередно раскомментировать части game loop и смотреть, где происходит лаг.
Или профайлер: https://github.com/bombomby/optick

#7
15:31, 1 мая 2023

Спасибо всем за рекомендации!

Для поиска источника проблемы пошел от обратного. Создал минимальное приложение на glfw и выяснил, что это мой ноут такой дерганый на отрисовке через opengl. Direct3d работает стабильнее.

#8
21:43, 1 мая 2023

Vitorio
попробуй повысить приоритет и посмотреть как повлияет, возможно винда под капотом как раз делает это для d3d приложений и вытаскивает их в очередь выше других точно с таким же приоритетом, а для opengl наоборот топит вниз :)

#9
13:41, 24 мая 2023

Aroch
> попробуй повысить приоритет и посмотреть как повлияет
Хах!:) И правда влияет. С повышенным приоритетом delta time более стабилен. Ох уж этот windows :)

ПрограммированиеФорумГрафика

Тема в архиве.