尽管google nexus 6P并未归类为" Daydream-Ready"它可以用作Daydream的开发平台。有人在Nexus 6P上测试了Async Reprojection并且可以确认它支持Front-Buffer bzw。单缓冲区渲染,还是支持Android 7上的EGL_MUTABLE_RENDER_BUFFER_BIT_KHR扩展?
答案 0 :(得分:1)
在6P确认了。 Async Reprojection是前缓冲区渲染功能。延迟时间约为20毫秒,而没有它的时间为80 + ms。
它将使用Timewrapping在新线程上呈现。
答案 1 :(得分:0)
我发现此网站http://opengles.gpuinfo.org/gles_generatereport.php?reportID=932列出了大多数手机的EGL扩展程序。根据规格,EGL_MUTABLE_RENDER_BUFFER_BIT_KHR顺便说一句。 Nexus 6P支持EGL_KHR_mutable_render_buffer。支持“前缓冲区渲染”的其他手机将能够进行“异步重投影”:Nexus6P,Nexus 5X和Google Pixel。令人惊讶的是,这些是唯一的少数手机,尽管截至2016年11月28日,Moto Z被宣传为“做白日梦”。可能还没有更新Moto Z的数据库。因此,Nexus6P的硬件能够进行异步重投影(以及20ms以下 - 动态到光子延迟)并且可能支持白日梦异步重投影,即使没有被归类为白日梦准备就绪。
答案 2 :(得分:0)
我现在还可以确认,在Nexus5X和Nexus6P上都可以创建一个有效的EGL配置,允许渲染到前端缓冲区。以太加入
EGL_SURFACE_TYPE,EGL_MUTABLE_RENDER_BUFFER_BIT_KHR
到上下文属性列表,然后在前后缓冲区之间进行标记,或者只需添加
EGL_RENDER_BUFFER,EGL_SINGLE_BUFFER到surfaceAttribs列表。
这将创建一个仅在单缓冲模式下工作的表面,也可以在所有Android 7设备上运行,甚至可以在没有“可变”扩展名的设备上运行。 但我无法在安装了Android 7的手机上测试第二种方法,但没有“可变”的扩展。
当然,由于谷歌决定不将Nexus5X归类为“Daydream-ready”,因此Async重新投影仅适用于Nexus6P(以及其他各种白日梦手机)。
但是在Nexus5X上也可以通过直接绘制到前缓冲区并将每只眼睛的渲染与显示扫描同步来实现低于20ms的运动到光子延迟,正如我在开发方法时所想到的那样称为“眼顶交替前缓冲渲染与顶点位移畸变校正”。