尽管谷歌nexus6P没有被归类为“白日梦就绪”,但它可以作为白日梦的开发平台。有没有人在Nexus6P上测试过异步重投影,可以确认它支持Front-Buffer BZW.Single-Buffer渲染,或者支持Android7上的EGL_MUTABLE_RENDER_BUFFER_BIT_KHR扩展?
发布于 2017-05-02 10:31:00
已在6P上确认。异步重投影是前端缓冲区渲染功能。与没有它的80+ms相比,延迟大约是20ms。
它将在一个新线程上使用Timewrapping进行渲染。
发布于 2016-11-29 02:01:43
我找到了这个网站http://opengles.gpuinfo.org/gles_generatereport.php?reportID=932,它列出了大多数手机的EGL扩展。根据说明书,EGL_MUTABLE_RENDER_BUFFER_BIT_KHR btw.Nexus 6P支持EGL_KHR_mutable_render_buffer。其他手机支持“前端缓冲渲染”,因此将能够“异步重投影”是: Nexus6P,Nexus5X和谷歌像素。令人惊讶的是,这是仅有的几款手机,尽管截至2016年11月28日,Moto Z被宣传为“白日梦就绪”。可能Moto Z的数据库还没有更新。因此,Nexus6P的硬件能够进行异步重投影(因此低于20ms-运动到光子的延迟),并可能支持白日梦异步重投影,即使不属于白日梦准备就绪。
发布于 2017-05-05 21:27:33
我现在还可以确认,在Nexus5X和Nexus6P上都可以创建一个有效的EGL Config,它允许渲染到前台缓冲区。乙醚通过添加
EGL_SURFACE_TYPE,EGL_MUTABLE_RENDER_BUFFER_BIT_KHR
添加到上下文属性列表中,然后在前台和后台缓冲区之间切换,或者简单地添加
EGL_RENDER_BUFFER,EGL_SINGLE_BUFFER到surfaceAttribs列表。
这将创建一个只能在单缓冲区模式下工作的界面,也可以在所有Android 7设备上工作,甚至是没有“可变”扩展的设备。但我无法在安装了Android7但没有“可变”扩展的手机上测试第二种方法。
当然,由于谷歌决定不将Nexus5X归类为“白日梦就绪”,异步重投影只适用于Nexus6P (以及其他各种白日梦就绪的手机)。
但是,通过直接绘制到前端缓冲区并将每只眼睛的渲染与显示扫描输出同步来实现低于20ms的运动到光子延迟也可以在Nexus5X上实现,正如我在开发一种名为“眼睛交替的前端缓冲区渲染与顶点位移失真校正”的方法时所发现的那样。
https://stackoverflow.com/questions/40831559
复制相似问题