繁体   English   中英

Android在OpenGL ES下闪烁黑屏

[英]Flashing black screen in Android under OpenGL ES

在某些android测试设备中,在opengl 2.0 ES中进行渲染时,屏幕会闪烁。 我能够在调用“ eglSwapBuffers”时将问题跟踪到GLSurfaceView类,因此在每次迭代中都会产生闪烁,其中一个屏幕变为黑色,下一个屏幕具有我绘制的图像。 因此,它表明eglSwapBuffers不会在每次调用时都保留后台缓冲区,从而产生这种闪烁的行为。

无论如何,有保留后备缓冲区的内容吗? 我发现也许我可以使用EGL_SWAP_BEHAVIOR_PRESERVED_BIT标志,但是我不知道如何将其放置在android中,也无法弄清楚如何在姜饼等旧API中使用它。

谢谢

您无需修改​​GLSurfaceView。 您的问题更有可能是由系统的驱动程序或配置引起的。 我会尝试使用具有不同图形驱动程序的其他测试设备。 在AVD上运行时会发生什么?

可能是您的测试设备没有为底层linux帧缓冲设备提供足够的内存来获取正常的三重缓冲。 在这种情况下,大多数系统将退回到单一缓冲。 我建议您检查这些fb设备参数。 对于使用的显示模式,virtual_size应该足够大,可以容纳2个或3个缓冲区:

cat /sys/class/graphics/fb0/mode
  U:1024x768p-60
cat /sys/class/graphics/fb0/virtual_size
  800,1440

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM