Open Bug 1093454 Opened 10 years ago Updated 2 years ago

IE11 delta time is markedly better aligned with vsync than Firefox 33 (Windows only?)

Categories

(Core :: Graphics, defect)

33 Branch
x86_64
Windows 8.1
defect

Tracking

()

People

(Reporter: just1morego, Unassigned)

References

Details

Attachments

(2 files)

User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36

Steps to reproduce:

Visit this link and run the delta time data gathering test for at least 30 secs; the results will displayed in a graph of dt against hit rate.

https://dl.dropboxusercontent.com/u/184657779/C2_demos/GPUload/index.html



Actual results:

See the attached file.  It appears that Firefox is poorly optimized to align its delta time with the screen vsync refresh rate.  Any dt above the vsync value will likely cause a frame to be dropped by the browser. 


Expected results:

This test creates and destroys one object per tick.  It also scrolls a background image - tasks that should not be demanding on 'average' or even 'low average' hardware.  For a game to be consistently playable on different hardware, the browser should consistently achieve a delta time refresh rate that is aligned with the display's vsync.

The IE11 image can be viewed using the following link.  You will see that the target delta time rate is more consistently achieved than in Firefox.

https://dl.dropboxusercontent.com/u/184657779/Browser%20dt%20problems%20Nov%2014/IE%20v%2011.png
Can you paste your about:support details here? This is probably tied to what graphics card is in use, and what add-ons are present, etc.

(the graph on this machine looks like the IE one)
Flags: needinfo?(just1morego)
Product: Firefox → Core
(In reply to :Gijs Kruitbosch from comment #1)
> Can you paste your about:support details here? This is probably tied to what
> graphics card is in use, and what add-ons are present, etc.
> 
> (the graph on this machine looks like the IE one)

Sure thing.  Text copied and pasted below.  It's worth mentioning that a thread on the Scirra forum has been discussing these results with numerous users finding that the Firefox delta time is not aligned with their monitors' vsync rates - it might be worth testing on a couple of other machines because it seems that this problem is 'out there' and missing game play frames is common knowledge for users of Firefox.

Thank you for your interest in this bug.  Here is my browser data:

Application Basics
------------------

Name: Firefox
Version: 33.0.2
User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Multiprocess Windows: 0/1

Crash Reports for the Last 3 Days
---------------------------------

All Crash Reports

Extensions
----------

Name: 1-Click YouTube Video Downloader
Version: 2.3.7
Enabled: true
ID: YoutubeDownloader@PeterOlayev.com

Name: DownloadHelper
Version: 4.9.24
Enabled: false
ID: {b9db16a4-6edc-47ec-a1f4-b86292ed211d}

Graphics
--------

Adapter Description: Intel(R) HD Graphics 4600
Adapter Description (GPU #2): NVIDIA GeForce GTX 870M
Adapter Drivers: igdumdim64 igd10iumd64 igd10iumd64 igdumdim32 igd10iumd32 igd10iumd32
Adapter Drivers (GPU #2): nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Adapter RAM: Unknown
Adapter RAM (GPU #2): 4095
Device ID: 0x0416
Device ID (GPU #2): 0x1199
Direct2D Enabled: true
DirectWrite Enabled: true (6.3.9600.17111)
Driver Date: 1-29-2014
Driver Date (GPU #2): 10-16-2014
Driver Version: 10.18.10.3412
Driver Version (GPU #2): 9.18.13.4448
GPU #2 Active: false
GPU Accelerated Windows: 1/1 Direct3D 11 (OMTC)
Vendor ID: 0x8086
Vendor ID (GPU #2): 0x10de
WebGL Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics 4600 Direct3D9Ex vs_3_0 ps_3_0)
windowLayerManagerRemote: true
AzureCanvasBackend: direct2d
AzureContentBackend: direct2d
AzureFallbackCanvasBackend: cairo
AzureSkiaAccelerated: 0

Important Modified Preferences
------------------------------

browser.cache.disk.capacity: 358400
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.smart_size.use_old_max: false
browser.cache.frecency_experiment: 3
browser.places.smartBookmarksVersion: 7
browser.sessionstore.upgradeBackup.latestBuildID: 20141027150301
browser.startup.homepage_override.buildID: 20141027150301
browser.startup.homepage_override.mstone: 33.0.2
browser.tabs.warnOnClose: false
dom.mozApps.used: true
extensions.lastAppVersion: 33.0.2
gfx.direct3d.last_used_feature_level_idx: 0
media.gmp-gmpopenh264.lastUpdate: 1414110257
media.gmp-gmpopenh264.version: 1.1
media.gmp-manager.lastCheck: 1415073050
network.cookie.prefsMigrated: true
places.database.lastMaintenance: 1415073050
places.history.expiration.transient_current_max_pages: 104858
plugin.disable_full_page_plugin_for_types: application/pdf
plugin.importedState: true
privacy.sanitize.migrateFx3Prefs: true
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1414183010

Important Locked Preferences
----------------------------

JavaScript
----------

Incremental GC: true

Accessibility
-------------

Activated: false
Prevent Accessibility: 0

Library Versions
----------------

NSPR
Expected minimum version: 4.10.7
Version in use: 4.10.7

NSS
Expected minimum version: 3.17.1 Basic ECC
Version in use: 3.17.1 Basic ECC

NSSSMIME
Expected minimum version: 3.17.1 Basic ECC
Version in use: 3.17.1 Basic ECC

NSSSSL
Expected minimum version: 3.17.1 Basic ECC
Version in use: 3.17.1 Basic ECC

NSSUTIL
Expected minimum version: 3.17.1
Version in use: 3.17.1

Experimental Features
---------------------
Flags: needinfo?(just1morego)
Milan, I'm told the people working on this are in graphics, so tentatively moving this there... can you dupe/triage/prio this further? :-)

FWIW, my initial test was on a mac - specifically, stock 15" MBP from early 2013, with an NVIDIA GeForce GT 650M, which I guess doesn't quite qualify as "average" or "low average" hardware. My Windows machine has different results, more like the attachment (but weighted more towards less than 16.7ms), on a Quadro 600; I tested beta on both of these.
Status: UNCONFIRMED → NEW
Component: Untriaged → Graphics
Ever confirmed: true
Flags: needinfo?(milan)
Summary: IE11 delta time is markedly better aligned with vsync than Firefox 33 → IE11 delta time is markedly better aligned with vsync than Firefox 33 (Windows only?)
Depends on: 987529, 689418
Flags: needinfo?(milan)
The distribution exhibited at the attachment of comment 0 reflects the fact that right now the delay to the next frame is timeout of an integer number of ms - hence with peaks around 16 and 17ms, and smaller ones at 15 and 18ms.

This should be solved with project silk which waits for the actual vblank (whenever it happens and without integer ms wait times) and then starts triggering stuff from there.
For reference, timings from a W7 x64 machine with a GTX 670. Timings taken using IE11 (latest), Firefox Nightly (latest), and Chrome (release channel; canary is broken and can't run the test case). Aero is enabled (I think the DWM may affect timings here)

Firefox and Chrome both seem to exhibit the same kind of timing issue, though Firefox is worse - this matches up with my experiences playing HTML5 games in both browsers. It sucks in both, but is slightly worse in FF. IE is historically as smooth as the data suggests when I play HTML5 games in it.
(In reply to K. Gadd (:kael) from comment #5)
> ...
> though Firefox is worse - this matches up with my experiences playing HTML5
> games in both browsers. It sucks in both, but is slightly worse in FF.

"sucks" can relate to different issues, and you're probably pointing at the wrong one with your hypothesis that the distribution you can see at the images is the cause for "sucks".

More likely, the "sucks" you refer to comes from the parts you _can't_ see at the images, most notably frames which take more than 20ms - and result in visibly missed frames which could surely be described as "sucks" when there's a considerable percentage of them.

This can happen due to various background "stuff" which delays processing of the next frame, such as GC, CC, other Firefox background "stuff", background tabs which suddenly need attention (your gmail tab checks for new emails, for instance), etc.

Another thing you can't tell from this image, and which Firefox doesn't do optimally right now, is _when_ the frames are presented to screen. Even with good average frames intervals, it's still possible that they're not displayed at consistently consecutive screen frames.

All of these matters are under some kind of progress, e.g. reducing GC and CC pauses is an ongoing effort, e10s which runs content in different processes to reduce content interferences, project silk which will get vsync timing spot on (both intervals wise which addresses the issue at your screenshots and the timing-to-screen part), etc.

It just.. needs work...
(In reply to Avi Halachmi (:avih) from comment #6)
> .. reduce content interferences ..

inter-dependencies.
(In reply to Avi Halachmi (:avih) from comment #6)
> More likely, the "sucks" you refer to comes from the parts you _can't_ see
> at the images, most notably frames which take more than 20ms - and result in
> visibly missed frames which could surely be described as "sucks" when
> there's a considerable percentage of them.
I filed bug 1028893 which provides a way to measure this btw, and it does show Firefox is more prone to jank than other browsers.
I don't feel like I can provide anything more detailed, I just want to add my frustration in Firefox's terrible performance in HTML games. While been my favorite browser, when it comes to game development it's just unusable.
(In reply to Elias Pierrakos from comment #9)
> I don't feel like I can provide anything more detailed...

Actually, the about:support graphics section would be of great help.
I am seeing much the same thing: firefox provides highly unstable frametimes, making for janky movment even with simple projects. Subjectively, Firefox is the worst of all tested browsers, including IE 11, Chrome 38 stable, Chrome 40 Canary, Opera 25, and Firefox 33.

Here is my about:support page.
//////////////////////////////

Application Basics
------------------

Name: Firefox
Version: 33.0.2
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Multiprocess Windows: 0/1

Crash Reports for the Last 3 Days
---------------------------------

All Crash Reports

Extensions
----------

Name: Adblock Plus
Version: 2.6.5
Enabled: true
ID: {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}

Name: DownThemAll!
Version: 2.0.17
Enabled: true
ID: {DDC359D1-844A-42a7-9AA1-88A850A938A8}

Graphics
--------

Adapter Description: Intel(R) HD Graphics 4000
Adapter Drivers: igdumdim64 igd10iumd64 igd10iumd64 igdumdim32 igd10iumd32 igd10iumd32
Adapter RAM: Unknown
Device ID: 0x0162
Direct2D Enabled: true
DirectWrite Enabled: true (6.2.9200.16492)
Driver Date: 9-30-2014
Driver Version: 10.18.10.3958
GPU #2 Active: false
GPU Accelerated Windows: 1/1 Direct3D 11 (OMTC)
Vendor ID: 0x8086
WebGL Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics 4000 Direct3D9Ex vs_3_0 ps_3_0)
windowLayerManagerRemote: true
AzureCanvasBackend: direct2d
AzureContentBackend: direct2d
AzureFallbackCanvasBackend: cairo
AzureSkiaAccelerated: 0

Important Modified Preferences
------------------------------

accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.capacity: 358400
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.smart_size.use_old_max: false
browser.cache.frecency_experiment: 1
browser.places.smartBookmarksVersion: 7
browser.sessionstore.upgradeBackup.latestBuildID: 20141027150301
browser.startup.homepage_override.buildID: 20141027150301
browser.startup.homepage_override.mstone: 33.0.2
dom.mozApps.used: true
extensions.lastAppVersion: 33.0.2
font.size.fixed.x-western: 16
font.size.variable.x-western: 17
gfx.direct3d.last_used_feature_level_idx: 0
media.autoplay.enabled: false
media.gmp-gmpopenh264.lastUpdate: 1414099089
media.gmp-gmpopenh264.version: 1.1
media.gmp-manager.lastCheck: 1415159113
network.cookie.prefsMigrated: true
places.database.lastMaintenance: 1415125317
places.history.expiration.transient_current_max_pages: 104858
plugin.disable_full_page_plugin_for_types: application/pdf
plugin.importedState: true
plugin.state.flash: 1
print.printer_Microsoft_XPS_Document_Writer.print_bgcolor: false
print.printer_Microsoft_XPS_Document_Writer.print_bgimages: false
print.printer_Microsoft_XPS_Document_Writer.print_colorspace:
print.printer_Microsoft_XPS_Document_Writer.print_command:
print.printer_Microsoft_XPS_Document_Writer.print_downloadfonts: false
print.printer_Microsoft_XPS_Document_Writer.print_duplex: 1515870810
print.printer_Microsoft_XPS_Document_Writer.print_edge_bottom: 0
print.printer_Microsoft_XPS_Document_Writer.print_edge_left: 0
print.printer_Microsoft_XPS_Document_Writer.print_edge_right: 0
print.printer_Microsoft_XPS_Document_Writer.print_edge_top: 0
print.printer_Microsoft_XPS_Document_Writer.print_evenpages: true
print.printer_Microsoft_XPS_Document_Writer.print_footercenter:
print.printer_Microsoft_XPS_Document_Writer.print_footerleft: &PT
print.printer_Microsoft_XPS_Document_Writer.print_footerright: &D
print.printer_Microsoft_XPS_Document_Writer.print_headercenter:
print.printer_Microsoft_XPS_Document_Writer.print_headerleft: &T
print.printer_Microsoft_XPS_Document_Writer.print_headerright: &U
print.printer_Microsoft_XPS_Document_Writer.print_in_color: true
print.printer_Microsoft_XPS_Document_Writer.print_margin_bottom: 0.5
print.printer_Microsoft_XPS_Document_Writer.print_margin_left: 0.5
print.printer_Microsoft_XPS_Document_Writer.print_margin_right: 0.5
print.printer_Microsoft_XPS_Document_Writer.print_margin_top: 0.5
print.printer_Microsoft_XPS_Document_Writer.print_oddpages: true
print.printer_Microsoft_XPS_Document_Writer.print_orientation: 0
print.printer_Microsoft_XPS_Document_Writer.print_page_delay: 50
print.printer_Microsoft_XPS_Document_Writer.print_paper_data: 1
print.printer_Microsoft_XPS_Document_Writer.print_paper_height: 11.00
print.printer_Microsoft_XPS_Document_Writer.print_paper_name:
print.printer_Microsoft_XPS_Document_Writer.print_paper_size_type: 0
print.printer_Microsoft_XPS_Document_Writer.print_paper_size_unit: 0
print.printer_Microsoft_XPS_Document_Writer.print_paper_width: 8.50
print.printer_Microsoft_XPS_Document_Writer.print_plex_name:
print.printer_Microsoft_XPS_Document_Writer.print_resolution: 1515870810
print.printer_Microsoft_XPS_Document_Writer.print_resolution_name:
print.printer_Microsoft_XPS_Document_Writer.print_reversed: false
print.printer_Microsoft_XPS_Document_Writer.print_scaling: 1.00
print.printer_Microsoft_XPS_Document_Writer.print_shrink_to_fit: true
print.printer_Microsoft_XPS_Document_Writer.print_to_file: true
print.printer_Microsoft_XPS_Document_Writer.print_unwriteable_margin_bottom: 0
print.printer_Microsoft_XPS_Document_Writer.print_unwriteable_margin_left: 0
print.printer_Microsoft_XPS_Document_Writer.print_unwriteable_margin_right: 0
print.printer_Microsoft_XPS_Document_Writer.print_unwriteable_margin_top: 0
privacy.sanitize.migrateFx3Prefs: true
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1414099309

Important Locked Preferences
----------------------------

JavaScript
----------

Incremental GC: true

Accessibility
-------------

Activated: false
Prevent Accessibility: 0

Library Versions
----------------

NSPR
Expected minimum version: 4.10.7
Version in use: 4.10.7

NSS
Expected minimum version: 3.17.1 Basic ECC
Version in use: 3.17.1 Basic ECC

NSSSMIME
Expected minimum version: 3.17.1 Basic ECC
Version in use: 3.17.1 Basic ECC

NSSSSL
Expected minimum version: 3.17.1 Basic ECC
Version in use: 3.17.1 Basic ECC

NSSUTIL
Expected minimum version: 3.17.1
Version in use: 3.17.1

Experimental Features
---------------------
(In reply to Milan Sreckovic [:milan] from comment #10)
> (In reply to Elias Pierrakos from comment #9)
> > I don't feel like I can provide anything more detailed...
> 
> Actually, the about:support graphics section would be of great help.

Hello Milan, thanks for the direction/instruction. Here you go:

Graphics

Adapter Description: NVIDIA GeForce GTX 660 Ti

Adapter Drivers: nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um

Adapter RAM: 3072

ClearType Parameters: D [ Gamma: 2200 Pixel Structure: R ClearType Level: 100 Enhanced Contrast: 200 ] D [ Gamma: 2200 Pixel Structure: R ClearType Level: 50 Enhanced Contrast: 200 ] D [ Gamma: 2200 Pixel Structure: R ClearType Level: 50 Enhanced Contrast: 200 ]

Device ID: 0x1183

Direct2D Enabled: true

DirectWrite Enabled: true (6.2.9200.16571)

Driver Date: 10-16-2014

Driver Version: 9.18.13.4448

GPU #2 Active: false

GPU Accelerated Windows: 1/1 Direct3D 11 (OMTC)

Vendor ID: 0x10de

WebGL Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GTX 660 Ti Direct3D9Ex vs_3_0 ps_3_0)

windowLayerManagerRemote: true

AzureCanvasBackend: direct2d

AzureContentBackend: direct2d

AzureFallbackCanvasBackend: cairo

AzureSkiaAccelerated: 0
It's worth noting that OMTC broke a GC heuristic which reduces incremental slice times, so we're getting slices of up to 40ms even while animations are playing. This is fixed in bug 1084672 (but the fix hasn't made it to Nightly yet) and will hopefully be uplifted to Firefox 34 (Beta) and 35 (Aurora). I'm not saying it will fix this bug, but the GC pauses are probably contributing to the unstable framerate.
With bug 1084672 (there was an uplift to Aurora & Beta as well), is this better now?
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: