Closed Bug 708308 Opened 8 years ago Closed 8 years ago

Quake 3 map loader broken in Firefox

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set

Tracking

()

RESOLVED DUPLICATE of bug 711388

People

(Reporter: humph, Unassigned)

References

()

Details

This Quake 3 demo is misbehaving in Firefox.  Part of the code deals with maps in a worker.  It's dying in 10 and 11, but works on Chrome.  From IRC:  

12:44 < Toji> I narrowed the issue down to a particular loop that I'm doing.
12:44 < Toji> On Aurora, I get through 153 iterations of the loop before it halts
12:44 < Toji> On the nightly, I get through 186 iterations
12:44 < Toji> consistently in both cases
12:48 < Toji> More interesting facts: I've narrowed it down to a tesselation function, which in recursive. Maybe there's a recursion limit?
12:51 < Toji> If I kick the tesselation code down to it's lowest level, the level displays successfully

I've cc'ed Brendon (Toji) on the bug for more details.  I'm not sure if this is workers or js.
The issue appears to be a result of either a stack overflow from recursion or (more likely) running into a memory limit.

I've uploaded a new version of the demo to my public server and included a query string argument to play with the geometry tessellation levels, which is the easiest way to reproduce the issue.

http://media.tojicode.com/q3bsp/?tesselate=5

The default tessellation level is 5, and I wouldn't recommend going much higher than that. Chrome, Opera and Safari seem to handle this level fine, but Firefox will lock up at that level. setting the tesselate option to 3 will allow it to fully render. (To see the effect this option has pay attention to the arches as you lower the level. at 1 they're triangular, at around 3 or 4 they become nice curves.)
Looks awesome in tonight's nightly :)

Fixed in bug 711388.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 711388
Indeed, it's running great! Thank you!
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.