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: