Closed Bug 950247 Opened 12 years ago Closed 11 years ago

Calculate FPS by tracking Frame Requests at the refresh driver to the compositor

Categories

(Core :: Graphics, defect, P2)

ARM
Gonk (Firefox OS)
defect

Tracking

()

RESOLVED WONTFIX
1.4 S5 (11apr)

People

(Reporter: mchang, Assigned: mchang)

Details

(Keywords: perf, Whiteboard: [c=automation p=3 s=2014.04.11 u=])

Attachments

(1 file, 1 obsolete file)

Instrument the point from when the refresh driver ticks for a new frame to when the compositor finishes a frame and delivers the output to the GPU. This should give us a more accurate picture of FPS for synchronous scrolling.
Summary: Calculate FPS by tracking Frame Requests at the refresh driver to teh compositor → Calculate FPS by tracking Frame Requests at the refresh driver to the compositor
Just a work in progress to see if I'm on the right track (Lots of prototype and ugly code). I still need to make sure we're doing it in less than 16.6 ms, but for now we calculate number of frames we finished per second. Just a few questions: 1) Is this the right place? We're measuring from the point we get a DispatchMessage the Parent to the point the Compositor backend finishes the frame and before we do SwapGL. Or should we instrument the places where the actual composite message is created and put on the message loop? 2) I see that a lot of places we instrument are close to the same places as COMPOSITOR_PERFORMANCE_WARNING. Why can we not use that information instead? Thanks!
Attachment #8347568 - Flags: feedback?(bgirard)
Component: Metrics → Graphics
Product: Datazilla → Core
Mason, will this be generally useful for measuring things like swipe transitions between home pages, etc, or is this specific to scrolling?
Geo, I think it should help with every frame that's being generated, so even things like swipe transitions should be measurable here.
This patch doesn't do what is described in the bug. This patch seems to calculate something that is roughly what the transaction FPS counter shows. How does this differ from it?
Attachment #8347568 - Flags: feedback?(bgirard)
OS: Mac OS X → Gonk (Firefox OS)
Hardware: x86 → ARM
Whiteboard: [c=automation p=5 s= u=] → [c=automation p=3 s= u=]
Target Milestone: --- → 1.4 S5 (11apr)
Attached patch fps.patchSplinter Review
Ok let's try again. Hopefully I understand the problem better this time :). The current patch counts the number of frames painted based on when nsRefreshDriver::Tick is called. Once ~1 second has passed, we print out the FPS. Is this a better approach and reflective of the bug name? Thanks! If so, I'll go clean it up a bit.
Attachment #8347568 - Attachment is obsolete: true
Flags: needinfo?(bgirard)
This is the transaction FPS. Let's discuss this in TPE next week since we're misunderstanding each other here.
Flags: needinfo?(bgirard)
After our discussion in TPE, this would only be valid on sync scrolling. For APZ, we will measure painting times + compositor FPS bug 990835. Resolving as wontfix.
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → WONTFIX
Whiteboard: [c=automation p=3 s= u=] → [c=automation p=3 s=2014.04.11 u=]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: