Open Bug 1625204 Opened 5 years ago Updated 9 months ago

Browser hang in NtWaitForAlertByThreadId called from mozilla::widget::CompositorWidgetChild::Initialize

Categories

(Core :: Graphics, defect, P2)

75 Branch
defect

Tracking

()

UNCONFIRMED

People

(Reporter: wesley.wiser, Unassigned)

Details

(Keywords: hang)

Attachments

(1 file, 1 obsolete file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0

Steps to reproduce:

Unfortunately I don't seem to be doing anything specific when the browser freezes. Often, I'm switching tabs to a tab that I haven't used in a while. Sometimes, I'm just clicking a link on the foreground tab that I've been interacting with.

Actual results:

I switched tabs while the foreground tab was loading and the browser hung for several seconds. After it resumed, I captured the Gecko profiler trace I had running (See attached file "Firefox 2020-03-26 11.42 profile.json.gz").

Expected results:

Browser should not generally hang.

For searching:

Gecko profiler reports 3,155ms event processing delay

Top of the stack is:

NtWaitForAlertByThreadId
RtlSleepConditionVariableSRW
SleepConditionVariableSRW
mozilla::detail::ConditionVariableImpl::wait_for(mozilla::detail::MutexImpl&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&)
mozilla::ipc::MessageChannel::WaitForSyncNotify(bool)
mozilla::ipc::MessageChannel::Send(IPC::Message*, IPC::Message*)
mozilla::widget::PCompositorWidgetChild::SendInitialize(mozilla::widget::RemoteBackbufferHandles const&)
PCompositorWidget::Msg_Initialize
mozilla::widget::CompositorWidgetChild::Initialize()
mozilla::gfx::GPUProcessManager::CreateRemoteSession(nsBaseWidget*, mozilla::layers::LayerManager*, mozilla::layers::LayersId const&, mozilla::gfx::ScaleFactor<mozilla::CSSPixel,mozilla::LayoutDevicePixel>, mozilla::layers::CompositorOptions const&, bool, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&)

Apologies if this is a duplicate issue but I couldn't find any related bugs.

Additional system information:

OS Name	                                    Microsoft Windows 10 Pro
Version	                                    10.0.18363 Build 18363
Processor	                            Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz, 2208 Mhz, 6 Core(s), 12 Logical Processor(s)
Installed Physical Memory (RAM)	            40.0 GB
Available Physical Memory	            11.5 GB
Display Name	                            NVIDIA Quadro P1000
Display Driver Version	                    24.21.13.9921
Display Resolution:                         4k (3840x2160, 150% display scaling)
Component: Untriaged → Graphics
Keywords: hang
Product: Firefox → Core

Did this start occurring only recently?

Flags: needinfo?(wesley.wiser)

Yes, I've really only noticed this in the last 45 days or so. Prior to that point, Firefox was always very responsive.

Flags: needinfo?(wesley.wiser)

Assigning P2 until we gather more information to evaluate the problem.
Looks like we are starting a new process and not receiving anything from it on synchronous Initialize call.
Kats, could this be a problem with process starting or communication infrastructure as opposed to graphics? As far as I see, there is no graphics happening yet, and we are failing to even start talking to that process.

Flags: needinfo?(kats)
Priority: -- → P2

This is definitely graphics. The stack in comment 1 is for the parent process main thread, which is blocking on compositor init. The compositor thread in the GPU process seems to be stuck in some DXGI lock acquisition. Same as the paint thread in one of the content processes. So looks like a lock contention problem in graphics code. https://perfht.ml/2yl5Vuk

Flags: needinfo?(kats)

Thanks kats!
Another similar issue was in bug 1556104. It looks like both happen on Windows NVidia (which is a popular combination).
I wouldn't expect locking DXGI to block for too long to the point of hanging. We need someone familiar with this logic to evaluate the danger and complexity. Sotaro, would you be able to evaluate the priority for this one?

Flags: needinfo?(sotaro.ikeda.g)

Wesley Wiser, can you upload about:support to this bug? Thank you.

Flags: needinfo?(wesley.wiser)

From Attachment 9136030 [details], Compositor thread in GPU process was blocked on SyncObjectD3D11Host::Synchronize(). And PaintThread of content process was blocked on SyncObjectD3D11Client::Synchronize(). Then it seems that D3D seemed to have a problem.

Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(sotaro.ikeda.g)

Absolutely! Here's about:support:

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

Name: Firefox
Version: 75.0
Build ID: 20200331175109
Update Channel: beta
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
OS: Windows_NT 10.0
Launcher Process: Enabled
Multiprocess Windows: 1/1 Enabled by default
Remote Processes: 10
Enterprise Policies: Inactive
Google Location Service Key: Found
Google Safebrowsing Key: Found
Mozilla Location Service Key: Found
Safe Mode: false

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

Firefox Features
----------------

Name: DoH Roll-Out
Version: 1.3.0
ID: doh-rollout@mozilla.org

Name: Firefox Screenshots
Version: 39.0.0
ID: screenshots@mozilla.org

Name: Form Autofill
Version: 1.0
ID: formautofill@mozilla.org

Name: Web Compat
Version: 9.0.0
ID: webcompat@mozilla.org

Name: WebCompat Reporter
Version: 1.1.0
ID: webcompat-reporter@mozilla.org

Remote Processes
----------------

Type: Web Content
Count: 8 / 8

Type: Extension
Count: 1

Type: GPU
Count: 1

Extensions
----------

Name: Amazon.com
Version: 1.1
Enabled: true
ID: amazondotcom@search.mozilla.org

Name: Bing
Version: 1.1
Enabled: true
ID: bing@search.mozilla.org

Name: DuckDuckGo
Version: 1.0
Enabled: true
ID: ddg@search.mozilla.org

Name: eBay
Version: 1.0
Enabled: true
ID: ebay@search.mozilla.org

Name: Gecko Profiler
Version: 0.30
Enabled: true
ID: geckoprofiler@mozilla.com

Name: Google
Version: 1.0
Enabled: true
ID: google@search.mozilla.org

Name: Reddit Enhancement Suite
Version: 5.18.11
Enabled: true
ID: jid1-xUfzOsOFlzSOXg@jetpack

Name: Twitter
Version: 1.0
Enabled: true
ID: twitter@search.mozilla.org

Name: uBlock Origin
Version: 1.25.2
Enabled: true
ID: uBlock0@raymondhill.net

Name: Wikipedia (en)
Version: 1.0
Enabled: true
ID: wikipedia@search.mozilla.org

Name: React Developer Tools
Version: 4.6.0
Enabled: false
ID: @react-devtools

Security Software
-----------------

Type: Sophos Anti-Virus

Type:

Type: Windows Firewall

Graphics
--------

Features
Compositing: Direct3D 11 (Advanced Layers)
Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled
WebGL 1 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 00000000001c4ef1) EGL_VERSION: 1.4 (ANGLE 2.1.0.3885ee272685) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANGLE_image_d3d11_texture EGL_ANGLE_create_context_backwards_compatible EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_ANGLE_explicit_context EGL_ANGLE_feature_control
WebGL 1 Driver Renderer: Google Inc. -- ANGLE (NVIDIA Quadro P1000 Direct3D11 vs_5_0 ps_5_0)
WebGL 1 Driver Version: OpenGL ES 2.0.0 (ANGLE 2.1.0.3885ee272685)
WebGL 1 Driver Extensions: GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_multiview_multisample GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_provoking_vertex GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_lose_context GL_CHROMIUM_sync_query GL_EXT_blend_func_extended GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_bptc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_depth24 GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_3D GL_OES_texture_border_clamp GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object OES_compressed_EAC_R11_signed_texture OES_compressed_EAC_R11_unsigned_texture OES_compressed_EAC_RG11_signed_texture OES_compressed_EAC_RG11_unsigned_texture OES_compressed_ETC2_RGB8_texture OES_compressed_ETC2_RGBA8_texture OES_compressed_ETC2_punchthroughA_RGBA8_texture OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture OES_compressed_ETC2_sRGB8_alpha8_texture OES_compressed_ETC2_sRGB8_texture
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_compression_bptc EXT_texture_filter_anisotropic MOZ_debug 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: EGL_VENDOR: Google Inc. (adapter LUID: 00000000001c4ef1) EGL_VERSION: 1.4 (ANGLE 2.1.0.3885ee272685) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANGLE_image_d3d11_texture EGL_ANGLE_create_context_backwards_compatible EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug EGL_ANGLE_explicit_context EGL_ANGLE_feature_control
WebGL 2 Driver Renderer: Google Inc. -- ANGLE (NVIDIA Quadro P1000 Direct3D11 vs_5_0 ps_5_0)
WebGL 2 Driver Version: OpenGL ES 3.0.0 (ANGLE 2.1.0.3885ee272685)
WebGL 2 Driver Extensions: GL_ANGLE_client_arrays GL_ANGLE_copy_texture_3d GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_multiview_multisample GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_provoking_vertex GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_multisample GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_lose_context GL_CHROMIUM_sync_query GL_EXT_blend_func_extended GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_bptc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_depth24 GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_3D GL_OES_texture_border_clamp GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object GL_OVR_multiview GL_OVR_multiview2 OES_compressed_EAC_R11_signed_texture OES_compressed_EAC_R11_unsigned_texture OES_compressed_EAC_RG11_signed_texture OES_compressed_EAC_RG11_unsigned_texture OES_compressed_ETC2_RGB8_texture OES_compressed_ETC2_RGBA8_texture OES_compressed_ETC2_punchthroughA_RGBA8_texture OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture OES_compressed_ETC2_sRGB8_alpha8_texture OES_compressed_ETC2_sRGB8_texture
WebGL 2 Extensions: EXT_color_buffer_float EXT_float_blend EXT_texture_compression_bptc EXT_texture_filter_anisotropic MOZ_debug OES_texture_float_linear OVR_multiview2 WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Direct2D: true
Off Main Thread Painting Enabled: true
Off Main Thread Painting Worker Count: 4
Target Frame Rate: 60
DirectWrite: true (10.0.18362.476)
GPU #1
Active: Yes
Description: NVIDIA Quadro P1000
Vendor ID: 0x10de
Device ID: 0x1cbb
Driver Version: 24.21.13.9921
Driver Date: 9-4-2018
Drivers: C:\WINDOWS\System32\DriverStore\FileRepository\nvlt.inf_amd64_b2d99ad308bd8264\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvlt.inf_amd64_b2d99ad308bd8264\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvlt.inf_amd64_b2d99ad308bd8264\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvlt.inf_amd64_b2d99ad308bd8264\nvldumdx.dll C:\WINDOWS\System32\DriverStore\FileRepository\nvlt.inf_amd64_b2d99ad308bd8264\nvldumd.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvlt.inf_amd64_b2d99ad308bd8264\nvldumd.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvlt.inf_amd64_b2d99ad308bd8264\nvldumd.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvlt.inf_amd64_b2d99ad308bd8264\nvldumd.dll
Subsys ID: 226217aa
RAM: 4096
GPU #2
Active: No
RAM: 0
Diagnostics
AzureCanvasBackend: direct2d 1.1
AzureCanvasBackend (UI Process): skia
AzureContentBackend: direct2d 1.1
AzureContentBackend (UI Process): skia
AzureFallbackCanvasBackend (UI Process): none
CMSOutputProfile: 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
Display0: 3840x2160@60Hz
DisplayCount: 1
GPUProcessPid: 39624
ClearType Parameters: Gamma: 1.8 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50
Decision Log
WEBRENDER:
opt-in by default: WebRender is an opt-in feature
WEBRENDER_QUALIFIED:
denied by env: Not on allowlist
WEBRENDER_COMPOSITOR:
unavailable by runtime: No DirectComposition usage
WEBGPU:
disabled by default: Disabled by default




Media
-----

Audio Backend: wasapi
Max Channels: 2
Preferred Sample Rate: 44100
Output Devices
Name: Group
Headset Earphone (Microsoft LifeChat LX-3000): USB\VID_045E&PID_070F&MI_00\6&fde6b73&0&0000
NVIDIA Output (NVIDIA High Definition Audio): HDAUDIO\FUNC_01&VEN_10DE&DEV_0080&SUBSYS_00000000&REV_1001\5&7a77604&0&0001
LG Ultra HD (NVIDIA High Definition Audio): HDAUDIO\FUNC_01&VEN_10DE&DEV_0080&SUBSYS_00000000&REV_1001\5&7a77604&0&0001
Speakers (Realtek(R) Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_17AA225F&REV_1000\4&14380cd0&0&0001
Digital Audio (HDMI) (High Definition Audio Device): HDAUDIO\FUNC_01&VEN_8086&DEV_280B&SUBSYS_80860101&REV_1000\4&14380cd0&0&0201
WHDI_Multi (NVIDIA High Definition Audio):
H277HU (NVIDIA High Definition Audio):
Speakers (ThinkPad Thunderbolt 3 Dock USB Audio): USB\VID_17EF&PID_3083&MI_00\e&64da78e&0&0000
Speaker/HP (Realtek(R) Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_17AA225F&REV_1000\4&14380cd0&0&0001
Speakers (ThinkPad Thunderbolt 3 Dock USB Audio): USB\VID_17EF&PID_3083&MI_00\e&64da78e&0&0000
Internal AUX Jack (Realtek(R) Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_17AA225F&REV_1000\4&14380cd0&0&0001
NVIDIA Output (NVIDIA High Definition Audio): HDAUDIO\FUNC_01&VEN_10DE&DEV_0080&SUBSYS_00000000&REV_1001\5&7a77604&0&0001
Headphones (Realtek(R) Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_17AA225F&REV_1000\4&14380cd0&0&0001
Optoma (NVIDIA High Definition Audio): HDAUDIO\FUNC_01&VEN_10DE&DEV_0080&SUBSYS_00000000&REV_1001\5&7a77604&0&0001
Input Devices
Name: Group
Microphone (ThinkPad Thunderbolt 3 Dock USB Audio): USB\VID_17EF&PID_3083&MI_00\e&64da78e&0&0000
Internal AUX Jack (High Definition Audio Device): HDAUDIO\FUNC_01&VEN_8086&DEV_280B&SUBSYS_80860101&REV_1000\4&14380cd0&0&0201
Microphone (ThinkPad Thunderbolt 3 Dock USB Audio): USB\VID_17EF&PID_3083&MI_00\e&64da78e&0&0000
Internal AUX Jack (NVIDIA High Definition Audio): HDAUDIO\FUNC_01&VEN_10DE&DEV_0080&SUBSYS_00000000&REV_1001\5&7a77604&0&0001
Microphone Array (Realtek(R) Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_17AA225F&REV_1000\4&14380cd0&0&0001
Internal AUX Jack (Realtek(R) Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_17AA225F&REV_1000\4&14380cd0&0&0001
Microphone (Realtek(R) Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_17AA225F&REV_1000\4&14380cd0&0&0001
Internal AUX Jack (NVIDIA High Definition Audio): HDAUDIO\FUNC_01&VEN_10DE&DEV_0080&SUBSYS_00000000&REV_1001\5&7a77604&0&0001
Microphone (Realtek(R) Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_17AA225F&REV_1000\4&14380cd0&0&0001
Headset Microphone (Microsoft LifeChat LX-3000): USB\VID_045E&PID_070F&MI_00\6&fde6b73&0&0000
Internal AUX Jack (NVIDIA High Definition Audio): HDAUDIO\FUNC_01&VEN_10DE&DEV_0080&SUBSYS_00000000&REV_1001\5&7a77604&0&0001

Enumerate database

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

accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.amount_written: 1465951
browser.cache.disk.capacity: 1048576
browser.cache.disk.filesystem_reported: 1
browser.cache.disk.hashstats_reported: 1
browser.cache.disk.telemetry_report_ID: 20
browser.contentblocking.category: standard
browser.sessionstore.upgradeBackup.latestBuildID: 20200331175109
browser.startup.homepage_override.buildID: 20200331175109
browser.startup.homepage_override.mstone: 75.0
browser.tabs.warnOnClose: false
browser.urlbar.placeholderName: Google
browser.urlbar.placeholderName.private: Google
browser.urlbar.searchTips.onboard.shownCount: 4
browser.urlbar.tipShownCount.searchTip_onboard: 4
dom.forms.autocomplete.formautofill: true
dom.push.userAgentID: a179c8d477294c56a20c56df74cc27bd
extensions.formautofill.firstTimeUse: false
extensions.lastAppVersion: 75.0
gfx.crash-guard.status.wmfvpxvideo: 2
gfx.crash-guard.wmfvpxvideo.appVersion: 75.0
gfx.crash-guard.wmfvpxvideo.deviceID: 0x1cbb
gfx.crash-guard.wmfvpxvideo.driverVersion: 24.21.13.9921
idle.lastDailyNotification: 1585756511
layers.mlgpu.sanity-test-failed: false
media.gmp-gmpopenh264.abi: x86_64-msvc-x64
media.gmp-gmpopenh264.lastUpdate: 1571678376
media.gmp-gmpopenh264.version: 1.8.1.1
media.gmp-manager.buildID: 20200331175109
media.gmp-manager.lastCheck: 1585832385
media.gmp-widevinecdm.abi: x86_64-msvc-x64
media.gmp-widevinecdm.lastUpdate: 1579011607
media.gmp-widevinecdm.version: 4.10.1582.2
media.gmp.storage.version.observed: 1
media.hardware-video-decoding.failed: false
network.dns.disablePrefetch: true
network.http.speculative-parallel-limit: 0
network.predictor.cleaned-up: true
network.predictor.enabled: false
network.prefetch-next: false
network.trr.mode: 2
places.database.lastMaintenance: 1585664441
places.history.expiration.transient_current_max_pages: 122689
plugin.disable_full_page_plugin_for_types: application/pdf
privacy.cpd.cookies: false
privacy.cpd.downloads: false
privacy.cpd.formdata: false
privacy.cpd.history: false
privacy.cpd.sessions: false
privacy.purge_trackers.date_in_cookie_database: 0
privacy.sanitize.pending: [{"id":"newtab-container","itemsToClear":[],"options":{}}]
privacy.socialtracking.notification.counter: 1
privacy.socialtracking.notification.enabled: false
privacy.socialtracking.notification.lastShown: 1571685281912
security.remote_settings.crlite_filters.checked: 1585746974
security.remote_settings.intermediates.checked: 1585746974
security.sandbox.content.tempDirSuffix: {0f0ae43a-8fd2-4897-beaf-968c03d19e75}
security.sandbox.plugin.tempDirSuffix: {fa65c3b8-f558-4136-91f4-b79c13779198}
services.sync.declinedEngines:
services.sync.engine.addresses.available: true
signon.importedFromSqlite: true
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1584730993
ui.osk.debug.keyboardDisplayReason: IKPOS: Touch screen not found.

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

fission.autostart: false

Places Database
---------------

JavaScript
----------

Incremental GC: true

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

Activated: false
Prevent Accessibility: 0
Accessible Handler Used: true
Accessibility Instantiator:

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

NSPR
Expected minimum version: 4.25
Version in use: 4.25

NSS
Expected minimum version: 3.51
Version in use: 3.51

NSSSMIME
Expected minimum version: 3.51
Version in use: 3.51

NSSSSL
Expected minimum version: 3.51
Version in use: 3.51

NSSUTIL
Expected minimum version: 3.51
Version in use: 3.51

Sandbox
-------

Content Process Sandbox Level: 5
Effective Content Process Sandbox Level: 5

Internationalization & Localization
-----------------------------------

Application Settings
Requested Locales: ["en-US"]
Available Locales: ["en-US"]
App Locales: ["en-US"]
Regional Preferences: ["en-US"]
Default Locale: "en-US"
Operating System
System Locales: ["en-US"]
Regional Preferences: ["en-US"]

Flags: needinfo?(wesley.wiser)

Thank you! We do not change how Direct3D 11 (Advanced Layers) works recently on beta. Then I am not sure which change triggered the problem. There are 3 possibilities that trigger the problem.

  • [1] D2D usage triggers the problem
    • D2D could be disabled by pref gfx.direct2d.disabled=true
  • [2] Direct3D 11 (Advanced Layers) trigger the problem
    • Advanced layer could be disabled by pref layers.mlgpu.enabled=false
  • [3] D3D usage trigger the problem
    • D3D could be disabled by pref layers.acceleration.disabled=true

Wesley Wiser, can you check if "pref gfx.direct2d.disabled=true" address the problem for you?

Flags: needinfo?(wesley.wiser)

I flipped gfx.direct2d.disabled to true 5 days ago and I can't recall seeing stalls like this since then. I will try to pay a bit more attention over the next day or two and verify that is correct.

Thank you!

I can confidently say this fixed the issue for me. This freezing used to happen multiple times an hour and I've watched carefully for it all day and haven't seen Firefox freeze once. Should I leave the preference set going forward or revert it at some point?

Flags: needinfo?(wesley.wiser)

It seems that we need to blocklist the driver for D2D. You could leave the preference set on the PC. Thank you for the confirmation!

Flags: needinfo?(sotaro.ikeda.g)
Assignee: nobody → sotaro.ikeda.g

Device id range of Nvidia GP107 was from https://pci-ids.ucw.cz/read/PC/10de.

Shouldn't we being using WebRender on this system?

Flags: needinfo?(sotaro.ikeda.g)

I agree, we should not use WebRender on it. I am going to update the patch.

Flags: needinfo?(sotaro.ikeda.g)
Attachment #9140692 - Attachment description: Bug 1625204 - Block D2D on Nvidia GP107 → Bug 1625204 - Block D2D and WebRender on Nvidia GP107

Sorry, I should've elaborated.

If we use WebRender on this system does the problem go away?
It seems like WebRender should be enabled on this system. The device id should be allowed. I'm confused why WebRender is not enabled.

Here's a few data points that might be useful for answering that question:

  • My device is a laptop (although it is nearly always plugged in).
  • My device is attached to a 4k monitor.
  • My device has both an nVidia GPU and an onboard Intel chip that it switches between for power savings.

Perhaps one of those conditions is preventing WebRender from running?

(In reply to Jeff Muizelaar [:jrmuizel] from comment #21)

Sorry, I should've elaborated.

If we use WebRender on this system does the problem go away?
It seems like WebRender should be enabled on this system. The device id should be allowed. I'm confused why WebRender is not enabled.

Sorry, I misunderstood your comment.

From comment 10, "GPU #1" was "NVIDIA Quadro P1000(0x1cbb)". With it, the PC should be withing DeviceFamily::NvidiaRolloutWebRender. But battery status should be BatteryStatus::None if Firefox is not nightly.

On nightly, battery status does not affect to the Qualified.

Wesley Wiser, can you check if WebRender is enabled on nightly? Thank you!

Flags: needinfo?(wesley.wiser)
Attachment #9140692 - Attachment description: Bug 1625204 - Block D2D and WebRender on Nvidia GP107 → Bug 1625204 - Block D2D on Nvidia GP107

I'm not sure I did this right so please let me know if you want me to check something else.

Nighty 77.0a1 (2020-04-17) (64-bit)

about:support says:

Graphics
Compositing	WebRender

Decision Log
WEBRENDER	         opt-in by default: WebRender is an opt-in feature
                         available by user: Qualified enabled by pref
WEBRENDER_PARTIAL	 available by user: Enabled
ADVANCED_LAYERS	         blocked by env: Blocked from fallback candidate by WebRender usage
WEBGPU	                 disabled by default: Disabled by default
Flags: needinfo?(wesley.wiser)

(In reply to Wesley Wiser from comment #25)

I'm not sure I did this right so please let me know if you want me to check something else.

Graphics
Compositing	WebRender

Decision Log
WEBRENDER	         opt-in by default: WebRender is an opt-in feature
                         available by user: Qualified enabled by pref

Thank you, it ways that WebRender is enabled and the PC is qualified for WebRender.

Wesley, can you try running release with gfx.webrender.all=true and check to see whether you still run into this problem?

Flags: needinfo?(wesley.wiser)

After resetting gfx.direct2d.disabled back to the default?

(In reply to Wesley Wiser from comment #28)

After resetting gfx.direct2d.disabled back to the default?

Yeah.

Ok, will do. I'll try to report back in a few days.

Enabling WebRender also seems to have fixed the issue for me.

Flags: needinfo?(wesley.wiser)
Assignee: sotaro.ikeda.g → nobody
Attachment #9140692 - Attachment is obsolete: true
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: