Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Не включается VSync в OpenGL

Не включается VSync в OpenGL

Страницы: 1 2 Следующая »
DENПостоялецwww11 июля 201814:33#0
Видяха: https://www.techpowerup.com/gpudb/b2755/sapphire-tri-x-r9-290
Драйвер: 18.5.1
Radeon Software Edition: Adrenalin (хз важно ли)
Windows 7 64

Вызов wglSwapIntervalEXT(1) ничего не дает. Настройка "Wait for Vertical Refresh" в AMD Settings - "On, unless application specifies" / "Off, unless application specifies" / "Always on" / "Enhanced Sync" - ничего не дает. В приложении простая сцена всегда грузит ядро на 100% и выдает 3-4к FPS. Что я делаю не так?

Daniil PetrovПостоялецwww11 июля 201814:49#1
DEN
> Вызов wglSwapIntervalEXT(1) ничего не дает.
У меня тоже такое было, переставил в другое место, заработало. Так и не понял, до / после каких функций не работает.
DENПостоялецwww11 июля 201815:19#2
Daniil Petrov
А не помнишь, были ли какие-то ошибки (glGetError или что там еще), когда вызов был в "неправильном" месте?
Daniil PetrovПостоялецwww11 июля 201816:34#3
DEN
Я почти никогда не проверяю на ошибки :) стараюсь допирать своим умом.
DENПостоялецwww11 июля 201818:26#4
Ах да, забыл уточнить: windowed mode. Это нормально что в нашем 2к18 дела обстоят вот так: https://stackoverflow.com/questions/45676892/reliable-windowed-vs… gl-on-windows ?
gamedevforПостоялецwww11 июля 201818:27#5
DEN
> В приложении простая сцена всегда грузит ядро на 100% и выдает 3-4к FPS. Что я
> делаю не так?

Можно и самому вручную ограничить FPS.

DENПостоялецwww11 июля 201818:31#6
gamedevfor
Можно, но вопрос не об этом.
gkv311Постоялецwww11 июля 201822:09#7
> Вызов wglSwapIntervalEXT(1) ничего не дает.
А где вызываешь то?
Код в студию!
Daniil PetrovПостоялецwww11 июля 201822:44#8
gkv311
> А где вызываешь то?
> Код в студию!
Вот с этого и надо было начинать :)
DENПостоялецwww12 июля 201813:35#9
gkv311
Daniil Petrov
> А где вызываешь то?
Сразу же после инициализации  GLRC и установки его текущим:
rc = wglCreateContext(dc);
wglMakeCurrent(dc, rc);
glInitExtensions(); // Простыня из wglGetProcAddress
wglSwapIntervalEXT(1);

Но я уже куда только его не засовывал, результат не изменился.

barnesПостоялецwww12 июля 201813:54#10
Лол. Усе тут понятно. Естественно работать не будет
Daniil PetrovПостоялецwww12 июля 201814:00#11
barnes
> Лол. Усе тут понятно. Естественно работать не будет
Хех :) а почему? Мне даже любопытно стало )))
У меня собственно wglSwapIntervalEXT() также идёт сразу после glewInit().
И вызывается в любое нужное время для смены синхронизации.

Правка: 12 июля 2018 14:01

DENПостоялецwww12 июля 201814:09#12
barnes
> Лол. Усе тут понятно. Естественно работать не будет
Подробности будут?
AsaqПользовательwww12 июля 201814:38#13
Любопытны подробности от barnes. Пользуюсь методом из GLFW.
gkv311Постоялецwww12 июля 201816:31#14
DEN
Но я уже куда только его не засовывал, результат не изменился.

Где код свопа кадра?
Страницы: 1 2 Следующая »

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

2001—2018 © GameDev.ru — Разработка игр