Qt 5使用EGL后端用于XCB

3

我发现使用XCB后嵌入的Qt 5存在一些撕裂问题。我意识到可能是因为它默认使用了GLX,而我听说使用EGL可以更好地消除撕裂。我知道Qt对于XCB有一个EGL后端,但我不知道如何在两者之间切换。有哪些配置或运行时标志可以强制它使用其中一个而不是另一个呢?

1个回答

4

QT_XCB_GL_INTEGRATION环境变量设置为xcb_egl

我不明白这样做如何消除撕裂,通常是由于缺少垂直同步而导致的,但问题就在这里...


好的,这没有任何影响。我认为因为eglfs显然解决了许多在X11上的egl垂直同步问题,所以它可能会有所帮助。您认为使用X11后端的eglfs会有所不同吗?另外,我该如何确认XCB是否编译了egl支持,并且确实在使用它? - Gerharddc
EGLFS 是完全不使用 X11 的另一种东西(Qt 打开 /dev/fb0 或类似设备,并使用 EGL 在其上创建 OpenGL 上下文)。为确保发生了什么,请为 qt.xcb.glintegration 类别启用一些调试日志记录(也就是设置 QT_LOGGING_RULES="qt.xcb.*=true" 并运行您的应用程序)。 - peppe
嗨,我知道EGLFS非常不同,但我知道它有一个X11后端,而不是标准的KMS后端,尽管它主要用于开发,但我无法让它工作。我没有看到任何日志输出,它是否被写入文件中,或者我需要设置其他东西才能看到它? - Gerharddc
好的,EGLFS上的X11后端表现相同。我猜EGL不是解决方案... - Gerharddc
你是否启用了垂直同步?这是个大问题。 - peppe
是的,我相信我是这样,因为现在我有EGLFS,我可以强制它关闭,这使事情变得更糟。但我不确定是否有xorg设置可以解决它。只有当我在qml中同时动画化多个项目时才会出现撕裂。我猜这可能是qml垂直同步问题? - Gerharddc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接