0

even though the google nexus 6P isn't classified as "Daydream-Ready" it can be used as a development platform for Daydream. Has anyone tested Async Reprojection on the Nexus 6P and can confirm that it supports Front-Buffer bzw. Single-Buffer rendering, or supports the EGL_MUTABLE_RENDER_BUFFER_BIT_KHR Extension on Android 7 ?

Constantin Geier
  • 303
  • 4
  • 13

3 Answers3

1

confirmed it on 6P. the Async Reprojection is the Front-buffer rendering feature. the latency is about 20ms compare to 80+ms without it.

it will render with Timewrapping on a new thread.

Wang
  • 11
  • 4
0

I found this Site http://opengles.gpuinfo.org/gles_generatereport.php?reportID=932 which lists EGL extensions for most Phones. According to the Specs, EGL_MUTABLE_RENDER_BUFFER_BIT_KHR btw. EGL_KHR_mutable_render_buffer is supported on the Nexus 6P. The other Phones that support "Front Buffer Rendering" and so would be capable of "Async Reprojection" are: Nexus6P, Nexus 5X and Google Pixel. Surprisingly these are the only few Phones, even though as of 28.11.2016 the Moto Z is advertised as "daydream-ready". Probably the data base for the Moto Z hasn't been updated yet. So the HW of the Nexus6P is capable of async reprojection (and so sub-20ms-Motion to Photon Latency) and probably supports daydream async reprojection, even though not classified as daydream-ready.

Constantin Geier
  • 303
  • 4
  • 13
0

I can now also confirm that both on the Nexus5X and Nexus6P it is possible to create a valid EGL Config that allows rendering to the front buffer. Ether by adding

EGL_SURFACE_TYPE,EGL_MUTABLE_RENDER_BUFFER_BIT_KHR

to the context attribute list and then toggeling between front and back buffer, or by simply adding

EGL_RENDER_BUFFER,EGL_SINGLE_BUFFER to the surfaceAttribs list.

This will create a surface that only works in single buffer mode,and may also work on all Android 7 devices, even devices without the "mutable" extension. But I couldn't test the second approach on phones with android 7 but without "mutable" extension.

Of course, since google decided not to classify the Nexus5X as "Daydream-ready", Async reprojection is only working on the Nexus6P (and various other daydream-ready phones).

But achieving sub-20ms motion-to-photon latency by drawing directly into the front buffer and syncing the rendering of each eye with the display scan-out is also possible on the Nexus5X, as I figured out when I developed a method called "eye-alternating front buffer rendering with vertex displacement distortion correction".

Constantin Geier
  • 303
  • 4
  • 13
  • I have tested the second method from above (creating a only single buffered gl surface on android) also on a Phone that doesn't have the "Mutable" extension, but Android 7, and it worked. – Constantin Geier May 14 '17 at 08:40