Closed Bug 1510403 Opened 6 years ago Closed 5 years ago

Mousing over Google Doc causes WebRender's slow frame indicator to keep moving

Categories

(Core :: Graphics: WebRender, defect, P2)

Unspecified
Windows
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox65 --- affected
firefox67 --- unaffected
firefox68 --- unaffected

People

(Reporter: cpeterson, Unassigned)

References

(Blocks 2 open bugs, )

Details

STR: 1. Enable gfx.webrender.all and gfx.webrender.debug.slow-frame-indicator prefs. 2. Load a Google Doc such as: https://docs.google.com/document/d/1CTaWucldHxEri5BUB1kL4faF4prwPlBa31yHFd-l8uc/edit 3. Scroll the doc until any flashing cursors are out of the viewport. 4. Mouse over the doc's text. RESULT: On Windows, WebRender's slow frame indicator keeps moving even though nothing on the page appears to be dirty. I was NOT able to reproduce this Google Doc problem with WebRender on macOS.
Here is about:support for my Windows laptop: Application Basics ------------------ Name: Firefox Version: 65.0a1 Build ID: 20181127100134 Update Channel: nightly User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0 OS: Windows_NT 10.0 Multiprocess Windows: 4/4 (Enabled by user) Web Content Processes: 9/7 Enterprise Policies: Inactive Google Key: Found Mozilla Location Service Key: Found Safe Mode: false Graphics -------- Features Compositing: WebRender Asynchronous Pan/Zoom: wheel input enabled; touch input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled WebGL 1 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000e9a7) EGL_VERSION: 1.4 (ANGLE 2.1.0.790e8e6b4179) 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_MOZ_create_context_provoking_vertex_dont_care 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 WebGL 1 Driver Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics 530 Direct3D11 vs_5_0 ps_5_0) WebGL 1 Driver Version: OpenGL ES 2.0 (ANGLE 2.1.0.790e8e6b4179) 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_pack_reverse_row_order GL_ANGLE_program_cache_control 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_sync_query 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_frag_depth 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_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_compressed_ETC1_RGB8_texture 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_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_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: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000e9a7) EGL_VERSION: 1.4 (ANGLE 2.1.0.790e8e6b4179) 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_MOZ_create_context_provoking_vertex_dont_care 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 WebGL 2 Driver Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics 530 Direct3D11 vs_5_0 ps_5_0) WebGL 2 Driver Version: OpenGL ES 3.0 (ANGLE 2.1.0.790e8e6b4179) WebGL 2 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_multiview GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control 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_sync_query 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_frag_depth 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_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_compressed_ETC1_RGB8_texture 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_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 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 Direct2D: true Uses Tiling (Content): true Off Main Thread Painting Enabled: true Off Main Thread Painting Worker Count: 4 DirectWrite: true (10.0.17763.1) GPU #1 Active: Yes Description: Intel(R) HD Graphics 530 Vendor ID: 0x8086 Device ID: 0x191b Driver Version: 25.20.100.6373 Driver Date: 10-31-2018 Drivers: igdumdim64 igd10iumd64 igd10iumd64 igd12umd64 igdumdim32 igd10iumd32 igd10iumd32 igd12umd32 Subsys ID: 674e1a58 RAM: Unknown GPU #2 Active: No Description: NVIDIA GeForce GTX 970M Vendor ID: 0x10de Device ID: 0x13d8 Driver Version: 23.21.13.8873 Driver Date: 12-18-2017 Drivers: C:\WINDOWS\System32\DriverStore\FileRepository\nvrz.inf_amd64_7550cbd75f58b6c2\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvrz.inf_amd64_7550cbd75f58b6c2\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvrz.inf_amd64_7550cbd75f58b6c2\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvrz.inf_amd64_7550cbd75f58b6c2\nvldumdx.dll C:\WINDOWS\System32\DriverStore\FileRepository\nvrz.inf_amd64_7550cbd75f58b6c2\nvldumd.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvrz.inf_amd64_7550cbd75f58b6c2\nvldumd.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvrz.inf_amd64_7550cbd75f58b6c2\nvldumd.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nvrz.inf_amd64_7550cbd75f58b6c2\nvldumd.dll Subsys ID: 674e1a58 RAM: 6144 Diagnostics ClearType Parameters: Gamma: 2.2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50 AzureCanvasAccelerated: 0 AzureCanvasBackend: direct2d 1.1 AzureCanvasBackend (UI Process): skia AzureContentBackend: skia AzureContentBackend (UI Process): skia AzureFallbackCanvasBackend (UI Process): cairo Slow Frame #01: Frame 219(https://docs.google.com/document/d/1vITDHIxST0T-1gB8CqIAI51UYur3xhsq0H1tetbHeHo/edit?ts=5bfc4a26#heading=h.kc9qkx8t4bgh) CONTENT_FRAME_TIME 9792 - Transaction start 0.082700, main-thread time 2.606300, full paint time 1491.485900, Skipped composites 0, Composite start 1625.406400, Resource upload time 0.034400, GPU cache upload time 1.104000, Render time 4.072100, Composite time 7.202700 Slow Frame #02: Frame 220(https://docs.google.com/document/d/1vITDHIxST0T-1gB8CqIAI51UYur3xhsq0H1tetbHeHo/edit?ts=5bfc4a26#heading=h.kc9qkx8t4bgh) CONTENT_FRAME_TIME 9127 - Transaction start 0.578800, main-thread time 9.888200, full paint time 1383.667500, Skipped composites 0, Composite start 1514.988600, Resource upload time 0.034400, GPU cache upload time 1.104000, Render time 4.072100, Composite time 7.202700 Slow Frame #03: Frame 1(about:blank) CONTENT_FRAME_TIME 6137 - Transaction start 0.000000, main-thread time 0.330700, full paint time 0.717300, Skipped composites 0, Composite start 978.187500, Resource upload time 2.557000, GPU cache upload time 0.066000, Render time 15.362300, Composite time 45.029500 Slow Frame #04: Frame 3(chrome://gfxsanity/content/sanitytest.html) CONTENT_FRAME_TIME 4455 - Transaction start 0.044700, main-thread time 0.270400, full paint time 0.831700, Skipped composites 0, Composite start 635.187800, Resource upload time 0.000400, GPU cache upload time 0.054700, Render time 107.317000, Composite time 107.610200 Slow Frame #05: Frame 2(https://docs.google.com/document/d/1MO-U0xTiAsO0CiG7E6HWBQu2JSNy7hu10J4RX6CJXHo/edit#heading=h.xxepy32y9d1q) CONTENT_FRAME_TIME 4378 - Transaction start 0.524600, main-thread time 6.339100, full paint time 28.144200, Skipped composites 0, Composite start 36.077800, Resource upload time 28.942900, GPU cache upload time 0.722900, Render time 690.607800, Composite time 694.403000 Slow Frame #06: Frame 1(about:blank) CONTENT_FRAME_TIME 4256 - Transaction start 0.000000, main-thread time 0.084600, full paint time 0.734800, Skipped composites 0, Composite start 679.927600, Resource upload time 6.363300, GPU cache upload time 0.091300, Render time 28.426300, Composite time 29.558500 Slow Frame #07: Frame 2(chrome://gfxsanity/content/sanitytest.html) CONTENT_FRAME_TIME 4014 - Transaction start 1.580900, main-thread time 0.424000, full paint time 0.843900, Skipped composites 0, Composite start 17.407200, Resource upload time 0.000700, GPU cache upload time 0.057100, Render time 1.147900, Composite time 653.293400 Slow Frame #08: Frame 86(https://twitter.com/womenstilltrash/status/1066095291252776961) CONTENT_FRAME_TIME 3881 - Transaction start 5.671800, main-thread time 10.834100, full paint time 20.359800, Skipped composites 0, Composite start 27.288900, Resource upload time 0.001000, GPU cache upload time 0.608200, Render time 616.583900, Composite time 625.381800 Slow Frame #09: Frame 40(https://docs.google.com/document/d/1MO-U0xTiAsO0CiG7E6HWBQu2JSNy7hu10J4RX6CJXHo/edit#heading=h.xxepy32y9d1q) CONTENT_FRAME_TIME 3773 - Transaction start 38.489200, main-thread time 5.038100, full paint time 6.955800, Skipped composites 0, Composite start 657.898500, Resource upload time 0.239700, GPU cache upload time 1.054000, Render time 4.447100, Composite time 9.590700 Slow Frame #10: Frame 1(about:blank) CONTENT_FRAME_TIME 3629 - Transaction start 0.000000, main-thread time 0.047100, full paint time 0.446400, Skipped composites 0, Composite start 495.050800, Resource upload time 0.057400, GPU cache upload time 0.073700, Render time 1.576100, Composite time 109.929700 GPUProcessPid: 14364 GPUProcess: Terminate GPU Process Device Reset: Trigger Device Reset ClearType Parameters: Gamma: 2.2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50 failures: GP+[GFX1-]: Updating unknown shared surface: 377957122168 Decision Log WEBRENDER: opt-in by default: WebRender is an opt-in feature available by user: Force enabled by pref WEBRENDER_QUALIFIED: blocked by env: Has battery Failure Log (#0): GP+[GFX1-]: Updating unknown shared surface: 377957122168 (#1): GP+[GFX1-]: Updating unknown shared surface: 382252089412
I'm unable to reproduce on Windows (though I'm not logged in). Can you grab a profile of it happening? Make sure you add "RenderBackend,Renderer,WebRender,Wr" to the threads list in profiler ui.
Flags: needinfo?(cpeterson)
And my guess is this is some blob image thing gone bad.
After some more investigation, I see that this problem only happens scrolling the Google Doc (I'm using my laptop's track pad) when my laptop is running on *battery power*. Scrolling seems to reproduce the problem more easily than mousing over the doc. My laptop has an integrated Intel GPU and a discrete NVIDIA GPU. I used the NVIDIA Control Panel to force the NVIDIA GPU, but my about:support says my "Intel(R) HD Graphics 530" GPU #1 is active and my "NVIDIA GeForce GTX 970M" GPU #2 is inactive. When switching between AC and battery power and refreshing about:support always shows my Intel GPU as active, never the NVIDIA GPU. Profile of scrolling on AC power with no slow frame indicator activity: http://bit.ly/2Rhv4uD Profile of scrolling on battery power with continuous slow frame indicator activity: http://bit.ly/2RfFU4c
Flags: needinfo?(cpeterson)
Priority: -- → P2
Blocks: stage-wr-next, wr-intel
No longer blocks: stage-wr-trains
Flags: needinfo?(jmuizelaar)

Can you still reproduce this?

Flags: needinfo?(jmuizelaar) → needinfo?(cpeterson)

I'm no longer able to reproduce this problem. I tested 67 Beta and 68 Nightly on Windows 10.

Status: NEW → RESOLVED
Closed: 5 years ago
Flags: needinfo?(cpeterson)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.