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

Issue 809422 link

Starred by 4 users

WebGL performance regression in Chrome 64 on macOS

Reported by satbi...@homelane.com, Feb 6 2018

Issue description

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

Steps to reproduce the problem:
1. Install Google Chrome version 63 on Mac OS
2. Open https://threejs.org/examples/webgl_lights_rectarealight.html
3. Note the FPS (Frames per second) on the top left of the screen.
4. Update Google Chrome version to Version 64.0.3282.140 (Official Build) (64-bit)
5. Open the same link.
6. The FPS drops significantly.

What is the expected behavior?
The FPS show remain same.

What went wrong?
FPS drops significantly after update to version Version 64.0.3282.140 (Official Build) (64-bit) on Mac OSX.

Did this work before? Yes 63.0.3239.108

Chrome version: 64.0.3282.140  Channel: stable
OS Version: OS X 10.13.2
Flash Version: 

Attaching a glsl file with function where the code starts getting slow. I compared the fps by doing early returns on line number 24 and 45. The difference in fps is significant even when the operations should not take much time.
 
integrateLtcBrdfOverRectOptimized.glsl.txt
2.6 KB View Download
Components: -Blink Blink>WebGL Internals>GPU
Labels: Needs-Bisect Needs-Triage-M64

Comment 3 by zmo@chromium.org, Feb 6 2018

Cc: kbr@chromium.org kainino@chromium.org jdarpinian@chromium.org
I tested on my mac (10.13.3, AMD Radeon R9) with Chrome 64.0.3282.140 and I can't reproduce this issue.

It's probably GPU specific. Reporter, you will need to provide the about:gpu content on the machine where you can reproduce this bug.
Attaching the about://gpu log.
gpu.htm
72.7 KB View Download

Comment 5 by kbr@chromium.org, Feb 7 2018

This is the Intel Integrated GPU in the dual-GPU NVIDIA MacBook Pros. We have one of these in house and could use gfxCardStatus to force it onto the integrated GPU.

I have checked with another macbook. Attaching the about://gpu log of that macbook.
I checked in another macbook where the issue is reproducible. Attaching about://gpu log of that macbook.
gpu.html
64.3 KB View Download
Cc: sc00335...@techmahindra.com
Labels: Triaged-ET
Thanks for updating chrome://gpu info.

Unable to reproduce this issue on 64.0.3282.140 using Mac 10.13.3 with steps mentioned below.

1. Installed 63.0.3239.132 and navigated to  https://threejs.org/examples/webgl_lights_rectarealight.html and observed FPS as 60.
2. Upgraded to 64.0.3282.140 and navigated to  https://threejs.org/examples/webgl_lights_rectarealight.html and observed FPS as 60. No FPS drop is seen. Attaching screencast for reference.

@zmo: Please check the attached GPU contents of reporter.

Thanks!
809422.mp4
3.5 MB View Download

Comment 9 by kbr@chromium.org, Feb 7 2018

Summary: WebGL performance regression in Chrome 64 on macOS (was: webGL )

Comment 10 by zmo@chromium.org, Feb 7 2018

Status: Available (was: Unconfirmed)
I can reproduce when launching Chrome with --force_integrated_gpu=1 on my macbook (dual GPU, AMD Radeon R9 / Intel Iris Pro). This is with Stable and Canary.

Comment 11 by zmo@chromium.org, Feb 7 2018

Cc: ligim...@chromium.org
Can someone do a bisect on a MacBook Pro (Retina, 15-inch, Mid 2015)? Run Chrome with --force_integrated_gpu=1 (and made sure you don't have any other apps running that might trigger discrete GPU, say, another Chrome running WebGL).
Cc: krajshree@chromium.org ajha@chromium.org
Rajshree, could you please give a try using the flag mentioned in #11. Looks like you have a Retina in the inventory, but not sure about the GPU card. 

By any chance if you cannot repro, please route to Inhouse/ MTV.

Labels: -Pri-2 -Needs-Bisect hasbisect-per-revision ReleaseBlock-Stable RegressedIn-64 M-64 Target-64 Target-65 FoundIn-66 Target-66 FoundIn-64 FoundIn-65 Pri-1
Owner: oetu...@nvidia.com
Status: Assigned (was: Available)
Able to reproduce the issue on mac 10.12.6 MacBook Pro (Retina, 15-inch, Mid 2015) using chrome reported version #64.0.3282.140 and latest canary #66.0.3342.0.

Bisect Information:
=====================
Good build: 64.0.3271.0
Bad Build : 64.0.3272.0

Change Log URL: 
https://chromium.googlesource.com/chromium/src/+log/8e638519a02830035b58a02dd23dc5bb86488d34..6eda055fb80e52bd7808e4e5c94755c0bd6e4f9c

https://chromium.googlesource.com/angle/angle.git/+log/bb27c3a1483c..2c7f34c833b4

From the above change log suspecting below change
Change-Id: Iec727821d8137db56b440ddbe007879b1b55f61f
Reviewed-on: https://chromium-review.googlesource.com/707195

oetuaho@ - Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner.
Note: Adding stable blocker for M-64 as it seems to be a recent regression. Please feel free to remove the same if not appropriate

Thanks...!!

Comment 14 by zmo@chromium.org, Feb 8 2018

I can conform by running Chrome on my Retina with switches --force_integrated_gpu, we see this bug; running with --force_integrated_gpu --dont_use_loops_to_initialize_variables, the bug no longer manifests.

Olli, should we just add this driver bug workaround for Mac Intel?

Comment 15 by zmo@chromium.org, Feb 8 2018

By the way, thank you for the bisecting!
Cc: -krajshree@chromium.org gov...@chromium.org abdulsyed@chromium.org
Labels: M-65
+ Abdul
Interesting that the loops to initialize variables affects performance in a noticable way. I'd say turning on dont_use_loops_to_initialize_variables on Mac Intel is a reasonable solution. Maybe revisiting the loop initialization in general would be a good idea, it might trigger in some cases where it's not reasonable to use it.
Cc: ellyjo...@chromium.org
+  ellyjones@ (Mac TL)to keep her in loop.

Comment 19 by zmo@chromium.org, Feb 9 2018

Owner: zmo@chromium.org
I'll put in a driver bug list entry.
Friendly ping to get an update on update on this issue as it is marked as stable blocker for M65.

Thanks..!
M65 Stable promotion is coming VERY soon. Your bug is labelled as Stable ReleaseBlock, pls make sure to land the fix and request a merge  into the release branch ASAP. Thank you.

Comment 22 by zmo@chromium.org, Feb 13 2018

Status: Started (was: Assigned)
CL is in queue: https://chromium-review.googlesource.com/c/chromium/src/+/917018
Project Member

Comment 23 by bugdroid1@chromium.org, Feb 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/04dc3fe0ebce31ddfe0249be05e7658177235605

commit 04dc3fe0ebce31ddfe0249be05e7658177235605
Author: Zhenyao Mo <zmo@chromium.org>
Date: Tue Feb 13 22:25:50 2018

Turn off "shader var init in a loop" on Mac Intel to avoid perf regression.

BUG= 809422 
TEST=manual
R=kbr@chromium.org,oetuaho@nvidia.com

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I665ae361cc9485c120ca2fdb5d174213e083042b
Reviewed-on: https://chromium-review.googlesource.com/917018
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536514}
[modify] https://crrev.com/04dc3fe0ebce31ddfe0249be05e7658177235605/gpu/config/gpu_driver_bug_list.json

Comment 24 by zmo@chromium.org, Feb 13 2018

Labels: Merge-Request-65
Status: Fixed (was: Started)
NextAction: 2018-02-14
CL listed at #23 just to landed in trunk. Pls update the bug with canary result tomorrow.
The NextAction date has arrived: 2018-02-14
Labels: TE-Verified-M66 TE-Verified-66.0.3347.0
Able to reproduce the issue on mac 10.12.6(retina) using chrome reported version #64.0.3282.140 as per comment #0 and #11
Verified the fix on Mac 10.12.6(retina) using Chrome version #66.0.3347.0 as per the comment #0 and #11.
Attaching screen cast for reference.
Observed that FPS did not drop and remained at 33-60.
Hence, the fix is working as expected. 
Adding the verified labels.

Thanks...!!
809422.mp4
3.0 MB View Download
How safe is the change listed at #23 to merge to M65?

Comment 29 by zmo@chromium.org, Feb 14 2018

It's only a driver bug workaround data entry, so I'd say pretty safe.
Labels: -Merge-Request-65 Merge-Approved-65
Approving merge to M65 branch 3325 based on comments #27 and #29. Please merge ASAP. Thank you.
Project Member

Comment 31 by bugdroid1@chromium.org, Feb 14 2018

Labels: -merge-approved-65 merge-merged-3325
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/75d633748b03e556edc8443ee7f9c81e5adfb9d6

commit 75d633748b03e556edc8443ee7f9c81e5adfb9d6
Author: Zhenyao Mo <zmo@chromium.org>
Date: Wed Feb 14 21:06:00 2018

Turn off "shader var init in a loop" on Mac Intel to avoid perf regression.

BUG= 809422 
TEST=manual
R=kbr@chromium.org, oetuaho@nvidia.com
TBR=zmo@chromium.org

(cherry picked from commit 04dc3fe0ebce31ddfe0249be05e7658177235605)

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I665ae361cc9485c120ca2fdb5d174213e083042b
Reviewed-on: https://chromium-review.googlesource.com/917018
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Zhenyao Mo <zmo@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#536514}
Reviewed-on: https://chromium-review.googlesource.com/919424
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/branch-heads/3325@{#469}
Cr-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369}
[modify] https://crrev.com/75d633748b03e556edc8443ee7f9c81e5adfb9d6/gpu/config/gpu_driver_bug_list.json

Comment 32 by kbr@chromium.org, Feb 16 2018

Blocking: 813038
Labels: TE-Verified-M65 TE-Verified-65.0.3325.88
Tested this issue on Mac OS 10.13.3 (Retina, 15-inch, Mid 2015) on the reported version 64.0.3282.140 and latest M-65 Chrome build 65.0.3325.88 by following the steps mentioned in the original comment and #11.
Able to reproduce this issue on the reported version 64.0.3282.140 and the issue is fixed on the latest M-65 build 65.0.3325.88.

On launching Chrome with the flag '--force_integrated_gpu=1' and navigating to the given html page, can observe no drop in FPS.
Attached is the screen cast for reference.

Hence adding TE verified labels as the fix is working as intended.

Thanks..
809422_M65.mp4
1.6 MB View Download

Sign in to add a comment