Open
Bug 1435628
Opened 8 years ago
Updated 3 years ago
Giant cpu spike while watching HTML5 video (macOS)
Categories
(Core :: Audio/Video: Playback, defect, P3)
Tracking
()
UNCONFIRMED
People
(Reporter: willharrisbraun, Unassigned)
Details
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Firefox/60.0
Build ID: 20180204102054
Steps to reproduce:
I followed the steps here to capture CPU usage: https://www.reddit.com/r/firefox/comments/7knnn4/firefox_quantum_is_eating_your_cpu_help_us_debug/?st=jd92jbjb&sh=a72b4f57
So, I closed all other applications on my computer besides QuickTime for video recording and Activity Monitor for CPU display, (and Firefox Nightly with only the new tab page open, updated to the newest version).
Then, I opened this page: http://123watchfree.co/episode/coral-palms-pt-1-5604132/watching.html (a free tv streaming site, purportedly using HTML5 video).
After a while, I closed it again.
*Setup*
Firefox: Nightly from today (2018-02-04)
OS & Version: macOS Sierra 10.12.6 (16G1114)
Computer: MacBook Pro (Retina, 15-inch, Mid 2014)
Processor: 2.2 GHz Intel Core i7
Memory: 16 GB 1600 MHz DDR3
Graphics: Intel Iris Pro 1536 MB
Actual results:
Link to my screen capture: https://youtu.be/uI1p8wDfmCw
Link to my captured profile: https://perfht.ml/2BVW768
Expected results:
The CPU shouldn't have spiked that high up, I guess :)
Comment 1•8 years ago
|
||
Florian - this is another one. Seems like lots of hang time in content process 1 and some missing pieces in chrome process. Anything actionable or to NI on others?
Flags: needinfo?(florian)
Comment 2•8 years ago
|
||
(In reply to Zibi Braniecki [:gandalf][:zibi] from comment #1)
> Florian - this is another one. Seems like lots of hang time in content
> process 1 and some missing pieces in chrome process. Anything actionable or
> to NI on others?
Most of this profile is not janky. The hang time in the content process seems due to JS loaded by the page. The compositor thread seems very busy, and we paint from the content process at each refresh driver tick. Looks like the video is being decoded by software rather than the GPU. jya can probably tell us if this is expected or a bug.
Flags: needinfo?(florian) → needinfo?(jyavenard)
Reporter | ||
Comment 3•8 years ago
|
||
Thanks folks—really appreciate you looking into this. Please let me know if there's any more info I can give that'd be helpful :)
Comment 4•8 years ago
|
||
typically mac machines with only intel IGP will not use the HW decoder for video resolution less than 256px
I can't tell the resolution that is used there, the player starts some iframe and we have not tool to easily explore those.
chrome's media-internals tell me that the video is 720x404
so it should be hardware decoded.
Can you please provide the output of about:support?
anyhow this is likely the same as bug 1404042 (and related)
thanks
Flags: needinfo?(jyavenard)
Comment 5•8 years ago
|
||
(In reply to Florian Quèze [:florian] from comment #2)
> (In reply to Zibi Braniecki [:gandalf][:zibi] from comment #1)
> > Florian - this is another one. Seems like lots of hang time in content
> > process 1 and some missing pieces in chrome process. Anything actionable or
> > to NI on others?
>
> Most of this profile is not janky. The hang time in the content process
> seems due to JS loaded by the page. The compositor thread seems very busy,
> and we paint from the content process at each refresh driver tick. Looks
decoding is *not* done in the compositor thread.
> like the video is being decoded by software rather than the GPU. jya can
> probably tell us if this is expected or a bug.
it's unlikely what's happening, the h264 decoding is managed by apple VTC process. We have no control if that's HW accelerated or not.
OP: please set back the resolution to the default.. does that help?
Comment 6•8 years ago
|
||
Setting need-info on the reported to provide the output of the about:support
Flags: needinfo?(willharrisbraun)
Reporter | ||
Comment 7•8 years ago
|
||
(In reply to Jean-Yves Avenard [:jya] from comment #4)
> Can you please provide the output of about:support?
Here's the output of about:support (I clicked "Copy text to clipboard"):
Application Basics
------------------
Name: Firefox
Version: 60.0a1
Build ID: 20180205100240
Update Channel: nightly
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Firefox/60.0
OS: Darwin 16.7.0
Multiprocess Windows: 1/1 (Enabled by default)
Web Content Processes: 4/4
Stylo: content = true (enabled by default), chrome = false (disabled by default)
Google Key: Found
Mozilla Location Service Key: Found
Safe Mode: false
Crash Reports for the Last 3 Days
---------------------------------
All Crash Reports
Nightly Features
----------------
Name: Activity Stream
Version: 2018.01.30.1052-2ec746e0
ID: activity-stream@mozilla.org
Name: Application Update Service Helper
Version: 2.0
ID: aushelper@mozilla.org
Name: Firefox Screenshots
Version: 25.0.0
ID: screenshots@mozilla.org
Name: Follow-on Search Telemetry
Version: 0.9.6
ID: followonsearch@mozilla.com
Name: Form Autofill
Version: 1.0
ID: formautofill@mozilla.org
Name: Photon onboarding
Version: 1.0
ID: onboarding@mozilla.org
Name: Pocket
Version: 1.0.5
ID: firefox@getpocket.com
Name: Presentation
Version: 1.0.0
ID: presentation@mozilla.org
Name: Shield Recipe Client
Version: 83
ID: shield-recipe-client@mozilla.org
Name: Web Compat
Version: 1.1
ID: webcompat@mozilla.org
Name: WebCompat Reporter
Version: 1.0.0
ID: webcompat-reporter@mozilla.org
Extensions
----------
Name: Firefox Multi-Account Containers
Version: 5.0.1
Enabled: true
ID: @testpilot-containers
Name: Gecko Profiler
Version: 0.18
Enabled: true
ID: geckoprofiler@mozilla.com
Name: MetaMask
Version: 3.14.1
Enabled: true
ID: webextension@metamask.io
Name: Reddit Enhancement Suite
Version: 5.10.3
Enabled: true
ID: jid1-xUfzOsOFlzSOXg@jetpack
Security Software
----------------- Type:
Type:
Type:
Graphics
--------
Features
Compositing: OpenGL
Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled
WebGL 1 Driver WSI Info: CGL
WebGL 1 Driver Renderer: Intel Inc. -- Intel Iris Pro OpenGL Engine
WebGL 1 Driver Version: 4.1 INTEL-10.25.17
WebGL 1 Driver Extensions: GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ATI_texture_mirror_once GL_NV_texture_barrier
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_sRGB EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_element_index_uint OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context
WebGL 2 Driver WSI Info: CGL
WebGL 2 Driver Renderer: Intel Inc. -- Intel Iris Pro OpenGL Engine
WebGL 2 Driver Version: 4.1 INTEL-10.25.17
WebGL 2 Driver Extensions: GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ATI_texture_mirror_once GL_NV_texture_barrier
WebGL 2 Extensions: EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Uses Tiling: true
Off Main Thread Painting Enabled: true
Off Main Thread Painting Worker Count: 3
GPU #1
Active: Yes
Vendor ID: 0x8086
Device ID: 0x0d26
Diagnostics
AzureCanvasAccelerated: 1
AzureCanvasBackend: skia
AzureContentBackend: skia
AzureFallbackCanvasBackend: none
TileHeight: 1024
TileWidth: 1024
Decision Log
WEBRENDER:
opt-in by default: WebRender is an opt-in feature
Media
-----
Audio Backend: audiounit
Max Channels: 2
Preferred Channel Layout: stereo
Preferred Sample Rate: 44100
Output Devices
Name: Group
Internal Speakers: AppleHDAEngineOutput:1B,0,1,1:0
Line-out & Bluetoth: ~:AMS2_StackedOutput:0
Input Devices
Name: Group
Internal Microphone: AppleHDAEngineInput:1B,0,1,0:1
Important Modified Preferences
------------------------------
accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.capacity: 358400
browser.cache.disk.filesystem_reported: 1
browser.cache.disk.hashstats_reported: 1
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.smart_size.use_old_max: false
browser.cache.frecency_experiment: 4
browser.places.smartBookmarksVersion: 8
browser.search.useDBForOrder: true
browser.sessionstore.upgradeBackup.latestBuildID: 20180205100240
browser.startup.homepage: about:home
browser.startup.homepage_override.buildID: 20180205100240
browser.startup.homepage_override.mstone: 60.0a1
browser.tabs.remote.autostart.2: true
browser.urlbar.lastSuggestionsPromptDate: 20171127
browser.urlbar.timesBeforeHidingSuggestionsHint: 0
browser.urlbar.usepreloadedtopurls.enabled: false
dom.forms.autocomplete.formautofill: true
dom.ipc.processCount.web: 4
dom.push.userAgentID: a18dbcf828ca4e7abaf1a3d1af1d8211
extensions.lastAppVersion: 60.0a1
font.internaluseonly.changed: true
general.autoScroll: false
media.gmp-gmpopenh264.abi: x86_64-gcc3
media.gmp-gmpopenh264.lastUpdate: 1513443366
media.gmp-gmpopenh264.version: 1.7.1
media.gmp-manager.buildID: 20180205100240
media.gmp-manager.lastCheck: 1517863669
media.gmp-widevinecdm.abi: x86_64-gcc3
media.gmp-widevinecdm.lastUpdate: 1511798211
media.gmp-widevinecdm.version: 1.4.8.1008
media.gmp.storage.version.observed: 1
mousewheel.with_alt.action: 1
mousewheel.with_control.action: 1
mousewheel.with_meta.action: 1
network.cookie.prefsMigrated: true
network.predictor.cleaned-up: true
places.database.lastMaintenance: 1517728396
places.history.expiration.transient_current_max_pages: 122539
plugin.disable_full_page_plugin_for_types: application/pdf
print.printer__.print_bgcolor: false
print.printer__.print_bgimages: false
print.printer__.print_duplex: -437918235
print.printer__.print_edge_bottom: 0
print.printer__.print_edge_left: 0
print.printer__.print_edge_right: 0
print.printer__.print_edge_top: 0
print.printer__.print_evenpages: true
print.printer__.print_footercenter:
print.printer__.print_footerleft: &PT
print.printer__.print_footerright: &D
print.printer__.print_headercenter:
print.printer__.print_headerleft: &T
print.printer__.print_headerright: &U
print.printer__.print_in_color: true
print.printer__.print_margin_bottom: 0.5
print.printer__.print_margin_left: 0.5
print.printer__.print_margin_right: 0.5
print.printer__.print_margin_top: 0.5
print.printer__.print_oddpages: true
print.printer__.print_orientation: 0
print.printer__.print_page_delay: 50
print.printer__.print_paper_data: 0
print.printer__.print_paper_height: 11.00
print.printer__.print_paper_name: na-letter
print.printer__.print_paper_size_unit: 0
print.printer__.print_paper_width: 8.50
print.printer__.print_resolution: -437918235
print.printer__.print_reversed: false
print.printer__.print_scaling: 1.00
print.printer__.print_shrink_to_fit: true
print.printer__.print_to_file: false
print.printer__.print_unwriteable_margin_bottom: 56
print.printer__.print_unwriteable_margin_left: 25
print.printer__.print_unwriteable_margin_right: 25
print.printer__.print_unwriteable_margin_top: 25
privacy.cpd.cookies: false
privacy.cpd.downloads: false
privacy.cpd.formdata: false
privacy.cpd.history: false
privacy.cpd.sessions: false
privacy.sanitize.timeSpan: 0
privacy.userContext.extension: @testpilot-containers
security.sandbox.content.tempDirSuffix: {c9e7ccd6-3765-5f40-88c3-3ad4f245b517}
services.sync.declinedEngines:
services.sync.engine.addresses.available: true
services.sync.engine.bookmarks.validation.lastTime: 1517854767
services.sync.engine.creditcards.available: true
services.sync.engine.prefs.modified: false
services.sync.lastPing: 1517803536
services.sync.lastSync: Mon Feb 05 2018 22:48:53 GMT-0500 (-05)
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1517116668
Important Locked Preferences
----------------------------
Places Database
---------------
JavaScript
----------
Incremental GC: true
Accessibility
-------------
Activated: false
Prevent Accessibility: 0
Library Versions
----------------
NSPR
Expected minimum version: 4.18
Version in use: 4.18
NSS
Expected minimum version: 3.36 Beta
Version in use: 3.36 Beta
NSSSMIME
Expected minimum version: 3.36 Beta
Version in use: 3.36 Beta
NSSSSL
Expected minimum version: 3.36 Beta
Version in use: 3.36 Beta
NSSUTIL
Expected minimum version: 3.36 Beta
Version in use: 3.36 Beta
Experimental Features
---------------------
Sandbox
-------
Content Process Sandbox Level: 3
Effective Content Process Sandbox Level: 3
Internationalization & Localization
-----------------------------------
Application Settings
Requested Locales: ["en-US"]
Available Locales: ["en-US"]
App Locales: ["en-US"]
Regional Preferences: ["en-US","en"]
Default Locale: "en-US"
Operating System
System Locales: ["en-US","en"]
Regional Preferences: ["en-US","en"]
(In reply to Jean-Yves Avenard [:jya] from comment #5)
> OP: please set back the resolution to the default.. does that help?
I can't find a way to adjust the resolution. Here's the GitHub page of the player that site seems to be using, though: https://github.com/flowplayer/flowplayer
Flags: needinfo?(willharrisbraun)
Comment 8•8 years ago
|
||
(In reply to willharrisbraun from comment #7)
> (In reply to Jean-Yves Avenard [:jya] from comment #5)
> > OP: please set back the resolution to the default.. does that help?
>
> I can't find a way to adjust the resolution. Here's the GitHub page of the
> player that site seems to be using, though:
> https://github.com/flowplayer/flowplayer
sorry, I should have been clearer.
Reset the resolution on your mac in System Preferences -> Displays and set Resolution to "Default for display" (I'm assuming you had it set at a different value)
Updated•8 years ago
|
Component: Audio/Video → Audio/Video: Playback
Reporter | ||
Comment 9•8 years ago
|
||
> (In reply to Jean-Yves Avenard [:jya] from comment #5)
> Reset the resolution on your mac in System Preferences -> Displays and set
> Resolution to "Default for display" (I'm assuming you had it set at a
> different value)
Nope it's at "Default for display."
Updated•8 years ago
|
Priority: -- → P3
Comment 10•7 years ago
|
||
Hi Ralph and everyone,
I would like to volunteer help provide any debugging information you need about this bug. Let me know what I can do to help!
I think this bug should have a higher priority, as it is affecting the perception of the quantum release on the mac platform. Video is one of the most important features on the modern web, and comparing Firefox to chrome when it comes to rendering video on a mac is absolutely horrendous.
I started using Firefox again after a long hiatus due to the good press the Quantum release got. But as it stands right now, I always switch to chrome when I want to watch video.
I was contemplating switching back to Chrome because of this performance issue, but decided to try to help solve it instead, as I think it is crucial that a good open source browser is available for the mac as well. We need our privacy and an open web.
My experience of the video rendering issue:
The same video rendered on chrome (on the same mac) uses maybe 30% of the processor (spikes at 35%), in Firefox it uses about 40%-90% of the processor.
The difference on a macbook pro is that cooling fans start whirring on Firefox, so the issue is really noticable for the end user, affecting the perception of the quantum release.
Let me know what I can do to help!
Updated•3 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•