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

Re: [Public WebGL] In defense of older hardware



On 1/15/2010 11:51 AM, stephen white wrote:
On 16/01/2010, at 5:51 AM, Patrick Baggett wrote:
It just isn't within the scope of the WebGL spec to handle any generic piece of hardware that can do perspective correct texture mapping. You're looking for OpenGL 1.1+, which no spec. has been written for the Web. You'll have to be content running native code, or drafting a different GL standard that matches OpenGL 1.1+.


I'm arguing more along the lines that WebGL is going to have to handle deprecated APIs anyway, as time moves on and ES 2.0 is replaced with ES 3.0 or CL or some future specification.

GL 1.1 vs 2.0 is a vastly different beast than 2.0 vs. future. Entire swaths of API are removed in ES 2.0 and desktop GL, to be entirely replaced by shaders and related functionality. That's what we're looking for; should such a drastic change be needed again in the future, I'm sure we'll end up wit WebGL 2.0 right there along with it -- but any such hardware will almost certainly support WebGL 1.0 as well. But for now, supporting non-ES-2.0 capable hardware is an extremely difficult proposition because of the legacy API burden.


So if there is a deprecated API section in WebGL that has the absolute minimum to enable access to older hardware, then a much greater number of users would be able to see why WebGL is something they want to care about.

This doesn't amount to a great deal, only a few extra constants to allow:

    gl.enable(GL_TEXTURE_RECTANGLE_ARB);

gl.bindTexture(GL_TEXTURE_RECTANGLE_EXT, m_texture);

No, that's incorrect -- supporting TEXTURE_RECTANGLE means supporting it *everywhere*, and TEXTURE_RECTANGLE doesn't exist on mobile GPUs. One of WebGL's goals is to be portable between mobile and desktop GPUs. Yes, we might (will likely) have an extension mechanism, but this isn't really extension territory, it's more core functionality territory.



There may even be no obligation to hide the difference between shaders and fixed pipelines, and it will be the programmer's problem to handle the normalised co-ordinates versus rectangle texture co-ordinates.


As long as the WebGL spec has a "deprecated API" section where the extra bits can be found, then the programmer has the option of reaching those extra devices, and there's a lot of them because the hardware ain't that old.

At the expense of not being able to reach today's mainstream devices, which will be considered "older" by the time WebGL gets significant traction. Also at the expense of significant programmer investment to code and test multiple code paths. That's not a good tradeoff, IMO.


This Macbook Pro 17" laptop of mine is only 3 years old. The Web is all about cross-platform and widest reach. WebGL has to hold its nose and just do what it takes to be cross-platform.

Cross-platform and widest reach does not mean "the union of all functionality, exposed piecemeal", which is essentially what you're proposing. One of the web's strengths is that content written on one platform/browser/whatever that supports a particular API can run on any other that supports that functionality; we're trying very hard to hold to that (even if it's not possible to do it 100%).


    - Vlad

-----------------------------------------------------------
You are currently subscribe to public_webgl@khronos.org.
To unsubscribe, send an email to majordomo@khronos.org with
the following command in the body of your email: