Stabilize FPS more #29

Closed
taisel opened this Issue Feb 7, 2016 · 5 comments

Comments

Projects
None yet
1 participant
@taisel
Owner

taisel commented Feb 7, 2016

It seems some code re-arranging the last few weeks de-stabilized the fps. I verified it's not the offthread rendering dropping frames, but it's just possibly all the added extra noise causing the drops between cross thread comms. Goal here will be to remove any timers on the main thread when offthread cpu/gpu is used, and to rework the graphics stack slightly.

@taisel

This comment has been minimized.

Show comment
Hide comment
@taisel

taisel Feb 7, 2016

Owner

I'm getting 1 frame dropped every second in Firefox. That pattern of frame drop seems a bit too predictable to be overhead noise. Investigate further and plot eventing timelines to validate.

Owner

taisel commented Feb 7, 2016

I'm getting 1 frame dropped every second in Firefox. That pattern of frame drop seems a bit too predictable to be overhead noise. Investigate further and plot eventing timelines to validate.

@taisel

This comment has been minimized.

Show comment
Hide comment
@taisel

taisel Mar 21, 2016

Owner

6ee5efa

We temporarily killed the workaround for iOS, to clean up the code and reduce jank on main thread. The issue for iOS being if the emulator runs in single thread mode AND eats up 100% of a CPU core on an iPhone, then iOS safari refuses to issue requestAnimationFrame calls at all, not even at 1 fps.

Owner

taisel commented Mar 21, 2016

6ee5efa

We temporarily killed the workaround for iOS, to clean up the code and reduce jank on main thread. The issue for iOS being if the emulator runs in single thread mode AND eats up 100% of a CPU core on an iPhone, then iOS safari refuses to issue requestAnimationFrame calls at all, not even at 1 fps.

@taisel taisel closed this Mar 21, 2016

@taisel

This comment has been minimized.

Show comment
Hide comment
@taisel

taisel Mar 21, 2016

Owner

That workaround killing not being the root cause though. The root cause was drawing after every frame copy rather than drawing once per vsync outside of the user callback, and this was a regression.

Owner

taisel commented Mar 21, 2016

That workaround killing not being the root cause though. The root cause was drawing after every frame copy rather than drawing once per vsync outside of the user callback, and this was a regression.

@taisel

This comment has been minimized.

Show comment
Hide comment
@taisel

taisel Mar 21, 2016

Owner

Hopefully by the time Apple adds shared memory support to iOS Safari's JavaScript VM, they'll have fixed the iOS 8+ JSC crasher/regression. It's why removing that workaround for the time being is non-consequential for the time being, outside of testing and building ahead of such.

Owner

taisel commented Mar 21, 2016

Hopefully by the time Apple adds shared memory support to iOS Safari's JavaScript VM, they'll have fixed the iOS 8+ JSC crasher/regression. It's why removing that workaround for the time being is non-consequential for the time being, outside of testing and building ahead of such.

@taisel

This comment has been minimized.

Show comment
Hide comment
@taisel

taisel Mar 21, 2016

Owner

iOS safari should be using its own "glue code" anyhow for tighter integration, the UI code here anyhow is reference implementation type bare bones.

Owner

taisel commented Mar 21, 2016

iOS safari should be using its own "glue code" anyhow for tighter integration, the UI code here anyhow is reference implementation type bare bones.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment