New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 673307 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Google Pixel: no WEBGL HALF_FLOAT renderable framebuffer

Reported by p...@sketchfab.com, Dec 12 2016

Issue description

Steps to reproduce the problem:
1. request a webgl half float render texture
2. render inside
3. see that it stays black

What is the expected behavior?
As per hardware and openlg es3.0, Half float texture framebuffer renderable 
(https://play.google.com/store/apps/details?id=com.realtechvr.glview&hl=en says GL_EXT_color_buffer_half_float is here)

What went wrong?
Half float rendertexture is not renderable

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 55.0.2883.87  Channel: stable
OS Version: 10.0
Flash Version: Shockwave Flash 23.0 r0

We end up using Float texture instead; it hurts performance a lot
 

Comment 1 by zmo@chromium.org, Dec 12 2016

What format did you use?  If RGB16F, you will need to request  EXT_color_buffer_half_float; all other half float formats, you will need to request  EXT_color_buffer_float.  Were you able to successfully request the extension?

Comment 2 by zmo@chromium.org, Dec 12 2016

Cc: kbr@chromium.org zmo@chromium.org kainino@chromium.org

Comment 3 by kbr@chromium.org, Dec 13 2016

Owner: kainino@chromium.org
Status: Assigned (was: Unconfirmed)
Argh. I do see that https://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/oes-texture-half-float.html passes on the Pixel, but that it reports that the half-float textures aren't renderable.

Sorry. I think this was an oversight in our exposure of the renderable floating-point formats in WebGL 1.0.

feature_info.cc looks like it only contains code which exposes the FP32 formats as color-renderable in WebGL 1.0 contexts.

https://cs.chromium.org/chromium/src/gpu/command_buffer/service/feature_info.cc?q=feature_info.cc&sq=package:chromium&dr&l=293

The nastiness involved here:

 - There's no such thing as a sized internal format for HALF_FLOAT_OES, which is how this functionality would be exposed to ES 2.0. So this would really be for ES 3.0 devices and above. We would expose RBGA16F and RGB16F as legal sized internal formats internally, and translate HALF_FLOAT_OES appropriately to these.

Kai, could you help investigate this? It probably won't be that much code to implement this, but the side-effects might be far-reaching.

Submitter: please investigate adding a WebGL 2.0 backend to your site. WebGL 2.0 solves these problems conclusively.

Sign in to add a comment