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

Re: [Public WebGL] Re: Long shader compiles




On 4/12/11 3:40 AM, Steve Baker wrote:
On 04/11/2011 07:58 PM, John Davis wrote:
Win7, Chrome 10.0.648.204, Angle

What was the fix?  With complex shaders, I'm not sure there is any
getting away from this one.  A friend of mine told me that at Lucas
Arts it would take ~12hrs to build the optimized shaders for xbox.  As
long as the DirectX optimizer is on, I'm afraid we'll have this issue.
On a large-scale game title, there will be many hundreds of shaders -
each one compiled half a dozen different ways for depth pass, beauty
pass, shadow pass, etc.  When we were doing cross-platform work on an
"open city" game using the UnrealEngine, we built for Xbox, PC and PS-3
platforms at once - it could take 20 minutes to an hour do the lot.  12
hours seems like an awful lot...but it's not utterly impossible.

However, it's unlikely that a game written in JavaScript and downloaded
over the web is going to come close to that degree of complexity.

There is a fundamental problem though - the only way to cope with games
of that complexity is to store shaders in a pre-compiled form - but
AFAIK, that's not supported in OpenGL-ES or even desktop OpenGL.   So no
matter whether the time is 12 hours or 12 minutes (or even 1 minute),
you just hit a technological limit.  You just can't build things that
complicated.

However, for relatively small games that don't take a week to download
over HTTP and stand a chance of running on things like netbooks and pads
- you just have to lower your sights and shoot for something a little
less grandiose.   Heck, the game market is heading in the $1.99 end of
the scale anyway - you're not going to be able to fund a multi-million
dollar development that way.  The kind of game that produces enough
shaders to require more than a few seconds to compile is the kind of
game that consumes the efforts of 100 artists and another 100
programmers and designers for several years and sells for $60 in
WalMart.  That's not the kind of thing you use WebGL for.  We're talking
"Angry Birds" and "Farmville" - not "Halo" and "GTA IV".  A handful of
shaders in a couple of versions.
I sure hope the bar for the WebGL use-case will be a bit higher than pushing clip space quads for 2d-games :)
JIT is really starting to kick some ass and just the other day a colleague showed me some performance comparisons of a javascript implementation vs the same in C++ and the difference was less than a factor 10. What's a factor 10 slower than what we're running today? A P4?
I'm expecting us to be blown away by what we'll see done in WebGL on "that P4" when the big game companies really get stuck into it.
We should try to understand why looped texture lookups are unreasonably
slow - but I don't think that's a major concern.  Just unwrap the loop
yourself for chrissakes.

   -- Steve

-----------------------------------------------------------
You are currently subscribed to public_webgl@khronos.org.
To unsubscribe, send an email to majordomo@khronos.org with
the following command in the body of your email:
unsubscribe public_webgl
-----------------------------------------------------------
--
Erik Möller
Core Developer
Opera Software
twitter.com/erikjmoller

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