[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] EXT_shader_texture_lod in WebGL2?



It's very difficult to emulate some of these older ES 2.0 extensions on ES 3.0. Taking EXT_draw_buffers / WEBGL_draw_buffers as an example: this extension only works against ESSL 1.00 shaders. When using ESSL 3.00, it's explicitly disallowed in the spec to write to gl_FragData[i] where i > 0. This means that in order to continue to expose these extensions on top of an ES 3.0 context, the browser will have to translate ESSL 1.00 to ESSL 3.00, and rename the user's variables during API calls like getUniformLocation.

WebGL 2.0 represents a large feature upgrade which unifies the behavior among many types of devices. We expect that it will roll out quickly to most browsers and operating systems. At the present time we would like to focus our efforts on getting it widely deployed (i.e., into Edge and Safari) and getting the conformance suite to pass 100% on all GPU types.

-Ken


On Mon, Jan 23, 2017 at 9:18 AM, Zhenyao Mo <zmo@chromium.org> wrote:
It's not abandoning WebGL1 and we understand the importance of WebGL1 to developers.

EXT_shader_texture_lod is an extension that's not even exposed in ES3.

In theory we can expose all ES3 functionalities to WebGL1 through emulation etc, and one can always argue the benefit of exposing this and that. I just don't see that as a good way of spending our limited engineering resources.


On Sat, Jan 21, 2017 at 1:17 AM, Florian Bösch <pyalot@gmail.com> wrote:
Writing multiple renderpaths for multiple versions, that take full advantage of the capabilities of each version is very time-consuming and difficult.

The easiest way to for developers to take full advantage of WebGL2 for the time being, would be to be able to "polyfill" features they'd like to use into WebGL1 that are found in WebGL2.

By abandoning WebGL1, with a very fragmentary capability coverage to WebGL2, you're ensuring that WebGL2 adoption will be much slower than we all wish. That's because there's no easy way to "polyfill" the enticing features of WebGL2 into WebGL1. Although I don't think this should prompt a mass backporting effort, I do think this warrants continued effort to improve the existing WebGL1 capabilities across all UAs and maybe introduce more WebGL1 extensions for particularly sore spots (like 3D textures).