New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 827816 link

Starred by 3 users

Issue metadata

Status: Duplicate
Merged: issue 821020
Owner: ----
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Software canvas runs very poorly Slow Javascript animations performance when using hardware acceleration

Reported by atri...@gmail.com, Mar 31 2018

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36

Steps to reproduce the problem:
1. Go to https://gumroad.com/ or http://caza.la/shoal/ 
2. Notice the slow animations on the site
3. 

What is the expected behavior?
Animations to perform smooth (as they did a few weeks ago)

What went wrong?
Since the last 2 or 3 week I noticed some sites performed graphic animations quite bad.

Did this work before? Yes Probably the previous one? 

Chrome version: 65.0.3325.181  Channel: stable
OS Version: OS X 10.11.6
Flash Version: 

The only solution I found was to turn "Use hardware acceleration when available" off. Which shouldn't be the right solution? 
I though hardware acceleration supposed an improvement in performance. Why should I turn it off now then?

Using a Macbook Pro from mid 2010 with El Capitan.
 
Labels: Needs-Bisect Needs-Triage-M65
UserAgent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36

I am experiencing the exact same issue with the same version of Chrome but on windows. It appears around 2 weeks ago and I have to disable hardware acceleration to make it smooth (and work as expected).

Except a misunderstanding of the HW acceleration concept, I think there is an issue while it should improve performances (when enabled).
Cc: sindhu.chelamcherla@chromium.org
Labels: Triaged-ET Needs-Feedback
Unable to reproduce this issue on reported version 65.0.3325.181 on MacBook 10.13.3 Pro, MacBook Air 10.13.3 and Windows 10 with steps mentioned in comment#0. Not seeing any slowness in animations. Attaching screencast for reference.

@Reporter: Please check the video and help in reproducing the issue. If possible please guide us with a video on reproducing the issue. 

Thanks!
827816.mp4
4.4 MB View Download

Comment 4 by atri...@gmail.com, Apr 3 2018

See the attached video. Using Chrome Version 65.0.3325.181 (Official Build) (64-bit) on Mac Os X El Capitan 
slow-chrome.mov
4.1 MB View Download
Project Member

Comment 5 by sheriffbot@chromium.org, Apr 3 2018

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 6 by junov@chromium.org, Apr 4 2018

Components: -Blink Internals>Compositing Internals>GPU>Rasterization
Labels: Needs-Feedback
To help us identify the cause, please attach the entire contents of your chrome://gpu and chrome://version pages.

Comment 7 by atri...@gmail.com, Apr 4 2018

chrome://gpu


Graphics Feature Status
Canvas: Software only. Hardware acceleration disabled
CheckerImaging: Disabled
Flash: Software only. Hardware acceleration disabled
Flash Stage3D: Software only. Hardware acceleration disabled
Flash Stage3D Baseline profile: Software only. Hardware acceleration disabled
Compositing: Software only. Hardware acceleration disabled
Multiple Raster Threads: Disabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Software only. Hardware acceleration disabled
Video Decode: Software only. Hardware acceleration disabled
WebGL: Disabled
WebGL2: Disabled
Problems Detected
GPU process was unable to boot: GPU access is disabled in chrome://settings.
Disabled Features: all
Checker-imaging has been disabled via finch trial or the command line.
Disabled Features: checker_imaging
Version Information
Data exported	2018-04-04T10:37:34.662Z
Chrome version	Chrome/65.0.3325.181
Operating system	Mac OS X 10.11.6
Software rendering list URL	https://chromium.googlesource.com/chromium/src/+/dc3469be277cc962ba01d9c0cb5bb1a265676c36/gpu/config/software_rendering_list.json
Driver bug list URL	https://chromium.googlesource.com/chromium/src/+/dc3469be277cc962ba01d9c0cb5bb1a265676c36/gpu/config/gpu_driver_bug_list.json
ANGLE commit id	2c9cc8b6e810
2D graphics backend	Skia/65 8a3e0b31927ae78bc3e9c342b1290a6a64233674-
Command Line	/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --flag-switches-begin --flag-switches-end
Driver Information
Initialization time	0
In-process GPU	true
Passthrough Command Decoder	false
Direct Composition	false
Supports overlays	false
Sandboxed	false
GPU0	VENDOR = 0x10de, DEVICE= 0x0a29 *ACTIVE*
GPU1	VENDOR = 0x8086, DEVICE= 0x0046
Optimus	true
Optimus	true
AMD switchable	false
Driver vendor	
Driver version	
Driver date	
Pixel shader version	
Vertex shader version	
Max. MSAA samples	
Machine model name	MacBookPro
Machine model version	6.2
GL_VENDOR	
GL_RENDERER	
GL_VERSION	
GL_EXTENSIONS	
Disabled Extensions	
Disabled WebGL Extensions	
Window system binding vendor	
Window system binding version	
Window system binding extensions	
Direct rendering	Yes
Reset notification strategy	0x0000
GPU process crash count	0
Compositor Information
Tile Update Mode	Zero-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
R_16	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE
BGRX_8888	GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE
BGRX_1010102	Software only
BGRA_8888	GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
RGBA_F16	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
YVU_420	Software only
YUV_420_BIPLANAR	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
UYVY_422	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
Display(s) Information
Info	Display[69675265] bounds=0,0 1440x900, workarea=0,23 1440x873, scale=1, external
Color space information	{primaries:[[0.4278,0.3901,0.1463,],[0.2249,0.7185,0.0566,],[0.0092,0.0387,0.7770,],], transfer:0.0774*x + 0.0000 if x < 0.0404 else (0.9479*x + 0.0521)**2.4000 + 0.0000, matrix:RGB, range:FULL}
Bits per color component	8
Bits per pixel	24
Video Acceleration Information

Comment 8 by atri...@gmail.com, Apr 4 2018

chrome://version


Google Inc.
Copyright 2018 Google Inc. All rights reserved.
Google Chrome	65.0.3325.181 (Official Build) (64-bit)
Revision	dc3469be277cc962ba01d9c0cb5bb1a265676c36-refs/branch-heads/3325@{#725}
OS	Mac OS X
JavaScript	V8 6.5.254.41
Flash	29.0.0.113 /Users/alvarotrigolopez/Library/Application Support/Google/Chrome/PepperFlash/29.0.0.113/PepperFlashPlayer.plugin
User Agent	Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Command Line	/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --flag-switches-begin --flag-switches-end
Executable Path	/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Profile Path	/Users/alvarotrigolopez/Library/Application Support/Google/Chrome/Default
Variations	bd23585d-3f4a17df
c134752e-b8b72c88
3095aa95-3f4a17df
d52c4ff7-d52c4ff7
47e5d3db-3d47f4f4
4dc30737-b8a5ea08
34d450b1-3f4a17df
f9884634-659882c0
121ae2bc-ca7d8d80
57f575bb-3d47f4f4
120703dd-3f4a17df
86ba59b4-477edaa
f347910c-3f4a17df
4b61504a-c9eb6633
9773d3bd-f23d1dea
8e3b2dc5-93702590
9e5c75f1-dab9b4c1
c322f799-2dbe5f9
3de1fbf2-ca7d8d80
f79cb77b-3d47f4f4
4ea303a6-ecbb250e
2b33233e-881ca6c9
72606c4f-ca7d8d80
58a025e3-c2b41702
1bced4a3-90fa85cd
b2f0086-d6b26420
2d871858-3f4a17df
4bc337ce-69465896
9a2f4e5b-d226bfeb
494d8760-52325d43
f47ae82a-86f22ee5
3ac60855-486e2a9c
f296190c-5192b0cf
4442aae2-a90023b1
ed1d377-e1cc0f14
75f0f0a0-d7f6b13c
e2b18481-4ad60575
e7e71889-e1cc0f14
34baa302-3a310d10
f5fff3a2-ca7d8d80
94e68624-803f8fc4
da4aaa01-4d2fac87
Project Member

Comment 9 by sheriffbot@chromium.org, Apr 4 2018

Cc: junov@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Needs-Bisect TE-Hardware-Dependency
Unable to reproduce this issue on reported version 65.0.3325.181 using Mac 10.12.6, 10.13.1 and 10.13.3. Not seeing any slow animations.

As TE team do not have Mac 10.11.6 adding TE-Hardware-Dependency label and removing Needs-Bisect label 
Cc: ccameron@chromium.org
Chris, do you know of any new issues with macos 10.11?
Labels: Needs-Feedback
Labels: OS-Windows
From #2, this sounds to be affecting Windows as well. No ideas about 10.11 issues.

The about:gpu text that was attached is with acceleration disabled, so we can't see anything -- please attach about:gpu from a run with acceleration enabled.

Comment 14 by atri...@gmail.com, Apr 7 2018

With hardware acceleration:

chrome://gpu


Graphics Feature Status
Canvas: Software only, hardware acceleration unavailable
CheckerImaging: Disabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Hardware accelerated
Rasterization: Unavailable
Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
adjust_src_dst_region_for_blitframebuffer
decode_encode_srgb_for_generatemipmap
disable_framebuffer_cmaa
dont_use_loops_to_initialize_variables
get_frag_data_info_bug
needs_offscreen_buffer_workaround
pack_parameters_workaround_with_pack_buffer
regenerate_struct_names
remove_invariant_and_centroid_for_essl3
reset_base_mipmap_level_before_texstorage
scalarize_vec_and_mat_constructor_args
set_zero_level_before_generating_mipmap
unfold_short_circuit_as_ternary_operation
unpack_alignment_workaround_with_unpack_buffer
use_intermediary_for_copy_texture_image
use_shadowed_tex_level_params
use_unused_standard_shared_blocks
Problems Detected
Some GPUs on Mac can perform poorly with GPU rasterization. Disable all known Intel GPUs other than Intel 6th and 7th Generation cards, which have been tested.: 613272, 614468
Disabled Features: gpu_rasterization
Some GPUs on Mac can perform poorly with GPU rasterization. Disable all known NVidia GPUs other than the Geforce 6xx and 7xx series, which have been tested.: 613272, 614468
Disabled Features: gpu_rasterization
Rendering artifacts on older macOS releases and Intel GPUs: 794819
Disabled Features: accelerated_2d_canvas, gpu_rasterization
Work around a bug in offscreen buffers on NVIDIA GPUs on Macs: 89557
Applied Workarounds: needs_offscreen_buffer_workaround
Unfold short circuit on Mac OS X: 307751
Applied Workarounds: unfold_short_circuit_as_ternary_operation
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Mac drivers handle struct scopes incorrectly: 403957
Applied Workarounds: regenerate_struct_names
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers: 560499
Applied Workarounds: set_zero_level_before_generating_mipmap
Pack parameters work incorrectly with pack buffer bound: 563714
Applied Workarounds: pack_parameters_workaround_with_pack_buffer
Alignment works incorrectly with unpack buffer bound: 563714
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer
copyTexImage2D fails when reading from IOSurface on multiple GPU types.: 581777
Applied Workarounds: use_intermediary_for_copy_texture_image
Mac Drivers store texture level parameters on int16_t that overflow: 610153
Applied Workarounds: use_shadowed_tex_level_params
Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198
Applied Workarounds: disable_framebuffer_cmaa
glGetFragData{Location|Index} works incorrectly on Max: 638340
Applied Workarounds: get_frag_data_info_bug
glTexStorage* are buggy when base mipmap level is not 0: 640506
Applied Workarounds: reset_base_mipmap_level_before_texstorage
Decode and encode before generateMipmap for srgb format textures on macosx: 634519
Applied Workarounds: decode_encode_srgb_for_generatemipmap
Insert statements to reference all members in unused std140/shared blocks on Mac: 618464
Applied Workarounds: use_unused_standard_shared_blocks
adjust src/dst region if blitting pixels outside read framebuffer on Mac: 644740
Applied Workarounds: adjust_src_dst_region_for_blitframebuffer
Mac driver GL 4.1 requires invariant and centroid to match between shaders: 639760, 641129
Applied Workarounds: remove_invariant_and_centroid_for_essl3
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Don't expose disjoint_timer_query extensions to WebGL: 808744
Shader variable initialization in a loop caused perf regression on Mac Intel.: 809422
Applied Workarounds: dont_use_loops_to_initialize_variables
Checker-imaging has been disabled via finch trial or the command line.
Disabled Features: checker_imaging
Version Information
Data exported	2018-04-07T11:13:56.317Z
Chrome version	Chrome/65.0.3325.181
Operating system	Mac OS X 10.11.6
Software rendering list URL	https://chromium.googlesource.com/chromium/src/+/dc3469be277cc962ba01d9c0cb5bb1a265676c36/gpu/config/software_rendering_list.json
Driver bug list URL	https://chromium.googlesource.com/chromium/src/+/dc3469be277cc962ba01d9c0cb5bb1a265676c36/gpu/config/gpu_driver_bug_list.json
ANGLE commit id	2c9cc8b6e810
2D graphics backend	Skia/65 8a3e0b31927ae78bc3e9c342b1290a6a64233674-
Command Line	/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --flag-switches-begin --flag-switches-end
Driver Information
Initialization time	100
In-process GPU	false
Passthrough Command Decoder	false
Direct Composition	false
Supports overlays	false
Sandboxed	true
GPU0	VENDOR = 0x10de, DEVICE= 0x0a29 *ACTIVE*
GPU1	VENDOR = 0x8086, DEVICE= 0x0046
Optimus	true
Optimus	true
AMD switchable	false
Driver vendor	
Driver version	10.0.52 310.90.10.05b46
Driver date	
Pixel shader version	3.30
Vertex shader version	3.30
Max. MSAA samples	8
Machine model name	MacBookPro
Machine model version	6.2
GL_VENDOR	NVIDIA Corporation
GL_RENDERER	NVIDIA GeForce GT 330M OpenGL Engine
GL_VERSION	3.3 NVIDIA-10.0.52 310.90.10.05b46
GL_EXTENSIONS	GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location 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_shading_language_include GL_ARB_texture_cube_map_array GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_depth_bounds_test GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_mirror_clamp 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
Disabled Extensions	GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Disabled WebGL Extensions	EXT_disjoint_timer_query EXT_disjoint_timer_query_webgl2
Window system binding vendor	
Window system binding version	
Window system binding extensions	
Direct rendering	Yes
Reset notification strategy	0x0000
GPU process crash count	0
Compositor Information
Tile Update Mode	Zero-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
R_16	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE
BGRX_8888	GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE
BGRX_1010102	Software only
BGRA_8888	GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
RGBA_F16	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
YVU_420	Software only
YUV_420_BIPLANAR	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
UYVY_422	GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
Display(s) Information
Info	Display[69675265] bounds=0,0 1440x900, workarea=0,23 1440x873, scale=1, external
Color space information	{primaries:[[0.4278,0.3901,0.1463,],[0.2249,0.7185,0.0566,],[0.0092,0.0387,0.7770,],], transfer:0.0774*x + 0.0000 if x < 0.0404 else (0.9479*x + 0.0521)**2.4000 + 0.0000, matrix:RGB, range:FULL}
Bits per color component	8
Bits per pixel	24
Video Acceleration Information
Decode h264 baseline	up to 4096x2160 pixels
Decode h264 extended	up to 4096x2160 pixels
Decode h264 main	up to 4096x2160 pixels
Decode h264 high	up to 4096x2160 pixels
Log Messages
[980:775:0407/131345.919384:ERROR:gpu_video_decode_accelerator.cc(369)] : HW video decode not available for profile h264 baseline
[980:775:0407/131346.917431:ERROR:gpu_video_decode_accelerator.cc(369)] : HW video decode not available for profile h264 main


Project Member

Comment 15 by sheriffbot@chromium.org, Apr 7 2018

Cc: sunn...@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Components: Internals>GPU>Canvas2D
I'm able to reproduce this locally on https://gumroad.com/
- running with accelerated canvas and gpu acceleration:
  =60fps, ~40% CPU usage
- running with --disable-gpu:
  ~60fps, ~150% CPU usage.
- running with --disable-accelerated-2d-canvas:
  ~25fps, ~400% CPU usage

So the strange thing here is that GPU compositing plus SW canvas is slower than just-GPU-compositing.

Attaching traces and pictures of the traces. We're spending forever-and-a-half in raster tasks. I also tested without zero copy to see if that was part of the issue (it wasn't).

I'll see if I can bisect.
gpu-composite.png
277 KB View Download
sw-composite.png
257 KB View Download
trace_hw_composite.json.gz
969 KB Download
trace_sw_composite.json.gz
1.3 MB Download
Summary: Software canvas runs very poorly Slow Javascript animations performance when using hardware acceleration (was: Slow Javascript animations performance when using hardware acceleration)
Btw, a short-term fix you can try for this is to enable "Override software rendering list" in about:flags, but that may expose you to broken GPU drivers.
I regressed this down to when we blacklisted GPU raster on NV GPUs.

I haven't regressed back far enough to find a place where this performs well. The combination
  GPU composite + SW raster + SW canvas
seems to perform far worse than 
  SW composite + SW raster + SW canvas
Which doesn't make sense.
Cc: ericrk@chromium.org
Okay, and, the slow SW raster is because of color conversion -- forcing an sRGB color profile fixes the issue.
Mergedinto: 821020
Status: Duplicate (was: Unconfirmed)

Sign in to add a comment