Почему eglswapinterval не может отключить v-syn c? - PullRequest
0 голосов
/ 19 июня 2020

Моя среда:

qt.scenegraph.general: QSG: basic render loop
qt.scenegraph.general: Using sg animation driver
qt.scenegraph.general: texture atlas dimensions: 2048x2048
qt.scenegraph.general: R/G/B/A Buffers:   8 8 8 0
qt.scenegraph.general: Depth Buffer:      24
qt.scenegraph.general: Stencil Buffer:    8
qt.scenegraph.general: Samples:           0
qt.scenegraph.general: GL_VENDOR:         Imagination Technologies
qt.scenegraph.general: GL_RENDERER:       PowerVR Rogue GE7800
qt.scenegraph.general: GL_VERSION:        OpenGL ES 3.2 build 1.10@5187610

Я запускаю программу Hello world QML и настраиваю, как указано выше.

QT_QPA_EGLFS_SWAPINTERVAL=0
QT_QPA_UPDATE_IDLE_TIME=0
QSG_RENDER_LOOP=basic

Я тестирую QT_QPA_EGLFS_SWAPINTERVAL через PVRTrace https://www.imgtec.com/developers/powervr-sdk-tools/pvrtrace/

enter image description here

это показывает, что eglSwapInterval установлен правильно, как указано выше. Но проблема в том, что программа зависла на 60FPS. Почему я не могу отключить V-Syn c.

1 Ответ

1 голос
/ 20 июня 2020

Короткий ответ: поведение vsyn c полностью зависит от платформы. На самом деле eglSwapInterval() - это просто намек, и это зависит от реализации, делает ли он что-нибудь на самом деле. На большинстве платформ это не так - например, на Android вы не можете ни отключить его, ни исправить FPS на 30. Предложите поднять это с поставщиком платформы.

...