[Public WebGL] In defense of older hardware

Vladimir Vukicevic [email protected]
Fri Jan 15 12:08:04 PST 2010

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 [email protected]
To unsubscribe, send an email to [email protected] with
the following command in the body of your email:

More information about the public_webgl mailing list