With http://people.mozilla.org/~jmuizelaar/fishie/fishie-fast.html I can get up to 30fps with 60000 fish with the method jit disabled. If I re-enable the methodjit it drops down to 13fps.
So what's weird is that the behavior here is identical whether I enable profiling or not. And the profiler output says that all the loops of interest (in particular, the swim loop) are being trace-jitted. And I see us trace that loop, and run it a bit.... then stop. We seem to stop right about when I switch to the large number of fish, for some reason, but only when methodjit is enabled. What tracer heuristics does that affect that I should be logging here?
(In reply to comment #1) > What tracer heuristics does that affect that I should be logging here? There's a heuristic that says that if a trace is run for too few iterations in a given trace execution, then it will be blacklisted. This only happens when the methodjit is enabled. You can log this with TMFLAGS=minimal. On this demo, I see one loop blacklisted for this reason, at line 310. I'm not sure if this is actually the problem, though. It's slow for me either way. Maybe it's because I'm in Linux and hardware acceleration isn't working?
Bill, the only loop that matters for this benchmark is line 431. Line 310 is the loop that sets up the fish; line 431 is what makes them swim. And yes, on Linux there's a good chance you're not getting GL goodness.
Jeff, how do things look for you with JM+TI?
Mmh, this test is broken for some reason. Instead of fish, I see black rectangles, not quite swimming, more like awkwardly jerking around the screen. That's probably caused by: Error: WebGL: texImage2D: the maximum texture size for level 0 is 8191 @ http://people.mozilla.org/~jmuizelaar/fishie/fishie-fast.html:119 Error: WebGL: generateMipmap: Level zero of texture is not defined. @ http://people.mozilla.org/~jmuizelaar/fishie/fishie-fast.html:124 Also, I get frame rates between 12 and 15 for any amount of black-squares-of-the-abyss below 25k. Above that, it goes down, as far as below 6fps for 60k. All of this on OS X, though.
On Windows 7 with HWA ON, there is no black rectangle. On my hardware, I get 60fps with 500 fishes. After that, fps goes down.
Even on Linux with HWA, I get 17fps with 60k.
/s/with/without/ ! And also no black rectangles.
On my (new) OS X machine, black rectangles show up, but it doesn't even have a chance to animate before the whole thing crashes (and with no crash report). Going to file a new bug for that unless there's further insight here.
Please do file a new bug in the core/Graphics component. Ideally with the output of the Graphics section in about:support. Thanks!
Okay, now that the crash is resolved, it seems to work at full speed (60 fps with 60,000 fishes at 2880x1735) smoothly after an initial ~3 s of lag on my OS X (10.8.4) with HWA (GeForce GT 650M), but with black rectangles.