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

Issue 751919 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug

Blocking:
issue 749438



Sign in to add a comment

MSAA should be blacklisted for both GPUs on dual-GPU Macs

Project Member Reported by ericrk@chromium.org, Aug 3 2017

Issue description

Because both Skia and Chrome maintain their own blacklists, we can end
up in situations on dual-GPU machines where these blacklists disagree.
This can lead to rendering errors (see  crbug.com/749438 )

In order to avoid this, we should always blacklist MSAA for both GPUs
on the Chrome side if we plant to blacklist it for either.
 
Cc: pbomm...@chromium.org
Cc: senorblanco@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 3 2017

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

commit 6a22805ce7eb9cd90f4eb790f70a7e5490971a28
Author: Eric Karl <ericrk@chromium.org>
Date: Thu Aug 03 04:44:18 2017

On dual-GPU macs, blacklist MSAA for both GPUs if either is Intel

Because Skia blacklists MSAA on Intel GPUs independently from Chrome, we
can end up in situations on dual-GPU Macs where CC thinks that
MSAA is available while Skia has it blacklisted. In order to avoid
these situations, we will blacklist MSAA for both GPUs (on the
Chrome side) if we want to blacklist either.

Bug:  749438 ,  751919 
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: I537ef3286f1a83330c58ae8e43e7133752575509
Reviewed-on: https://chromium-review.googlesource.com/599224
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491646}
[modify] https://crrev.com/6a22805ce7eb9cd90f4eb790f70a7e5490971a28/gpu/config/gpu_driver_bug_list.json

Labels: Merge-Request-61
This issue causes bad visual corruption on certain websites if a user with a dual-GPU mac starts Chrome while the discrete GPU is in use (plugged in to an external monitor).

This fix expands the GPU blacklist entry so that it applies whether Chrome is launched with the discrete or integrated GPU. Previously, the blacklist entry would only apply if Chrome was started while using the integrated (Intel) GPU. This path was already in use most of the time, so it should be very well tested.

Additionally, I've tested this locally on a machine that was able to reproduce the original issue. This change fixes the issue.
Labels: -Merge-Request-61 Merge-Approved-61
Approving merge to M61 branch 3163 based on comment #5.
Project Member

Comment 7 by bugdroid1@chromium.org, Aug 3 2017

Labels: -merge-approved-61 merge-merged-3163
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5c6f1b992336e99b235d5908e8d77c3101cd9f22

commit 5c6f1b992336e99b235d5908e8d77c3101cd9f22
Author: Eric Karl <ericrk@chromium.org>
Date: Thu Aug 03 04:58:51 2017

On dual-GPU macs, blacklist MSAA for both GPUs if either is Intel

Because Skia blacklists MSAA on Intel GPUs independently from Chrome, we
can end up in situations on dual-GPU Macs where CC thinks that
MSAA is available while Skia has it blacklisted. In order to avoid
these situations, we will blacklist MSAA for both GPUs (on the
Chrome side) if we want to blacklist either.

TBR=ericrk@chromium.org

(cherry picked from commit 6a22805ce7eb9cd90f4eb790f70a7e5490971a28)

Bug:  749438 ,  751919 
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: I537ef3286f1a83330c58ae8e43e7133752575509
Reviewed-on: https://chromium-review.googlesource.com/599224
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Eric Karl <ericrk@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#491646}
Reviewed-on: https://chromium-review.googlesource.com/599076
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#265}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/5c6f1b992336e99b235d5908e8d77c3101cd9f22/gpu/config/gpu_driver_bug_list.json

Status: Fixed (was: Started)
Labels: TE-Verified-61.0.3163.31
This appears to be working as intended after the above fix on Latest Beta#61.0.3163.31 for Mac OS X 10.13 (Beta).

FYI: This issue used to happen across OS X not specific to 10.13.

Thank you!
Labels: TE-NeedsTriageFromMTV
Adding the label 'TE-NeedsTriageFromMTV' as Mac with Dual GPU is required.
Thanks for the fix on this (I was on vacation). If I understand correctly, this means we won't be using MSAA on any Mac laptops (since they're either Intel-only or dual-GPU w/Intel), which is moderately unfortunate. The MSAA path is significantly faster.

Going forward, would there be a way to have Skia and CC reconcile their differences, and re-enable MSAA on the discrete GPU?
Cc: linds...@chromium.org ccameron@chromium.org shrike@chromium.org
 Issue 744944  has been merged into this issue.
Project Member

Comment 13 by bugdroid1@chromium.org, Oct 2 2017

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

commit e6db79b65553a1d4907217f8aaa7cb589ac976c6
Author: Eric Karl <ericrk@chromium.org>
Date: Mon Oct 02 23:21:02 2017

Read MSAA Status from Skia

Currently, both Chrome and Skia maintain independent blacklists
for MSAA on certain GPUs. When Chrome believes MSAA is available
and Skia believes it is not, we can end up with rendering glitches,
as Skia will be given an MSAA buffer to use, and it will believe
it cannot raster into it.

This change reads the MSAA status from Skia and only enables MSAA
in Chrome if Skia also believes MSAA is available.

Bug:  751919 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;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: Id8e119aab1cf9459013c300137c6aa2179528feb
Reviewed-on: https://chromium-review.googlesource.com/629897
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505846}
[modify] https://crrev.com/e6db79b65553a1d4907217f8aaa7cb589ac976c6/cc/test/fake_layer_tree_frame_sink.cc
[modify] https://crrev.com/e6db79b65553a1d4907217f8aaa7cb589ac976c6/cc/test/fake_layer_tree_frame_sink.h
[modify] https://crrev.com/e6db79b65553a1d4907217f8aaa7cb589ac976c6/cc/test/test_context_provider.cc
[modify] https://crrev.com/e6db79b65553a1d4907217f8aaa7cb589ac976c6/cc/test/test_web_graphics_context_3d.cc
[modify] https://crrev.com/e6db79b65553a1d4907217f8aaa7cb589ac976c6/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/e6db79b65553a1d4907217f8aaa7cb589ac976c6/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/e6db79b65553a1d4907217f8aaa7cb589ac976c6/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/e6db79b65553a1d4907217f8aaa7cb589ac976c6/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/e6db79b65553a1d4907217f8aaa7cb589ac976c6/gpu/config/gpu_driver_bug_list.json

Labels: Merge-Request-62
Status: Started (was: Fixed)
We thought that the fix in #13 was for a theoretical case which wasn't hittable, but we've now gotten at least one report of a user experiencing problems which would be addressed by the patch in #13. If possible I'd like to merge this to M62.
Labels: ReleaseBlock-Stable M-62
Project Member

Comment 16 by sheriffbot@chromium.org, Oct 14 2017

Labels: -Merge-Request-62 Merge-Review-62 Hotlist-Merge-Review
This bug requires manual review: We are only 2 days from stable.
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Thanks for the fix. Do you know how prevalent this case is to be expected in stable? We are two days away from Stable; so would like to ensure that we only take absolutely critical changes.
Labels: -ReleaseBlock-Dev -ReleaseBlock-Stable
Confirmed with erick@, fix in #13 is not currently verified and is only happening for 1 user, and this has also been present in M61. Our current plan is to wait until a fix has been verified and re-consider this for a M62 respin. 

Removing RB-Stable and RB-Dev; however, keeping Merge-Request label on. 
Labels: -Merge-Review-62 Merge-Rejected-62
Rejecting merge for this since a fix is being considered and reviewed in crbug/774748
Status: Fixed (was: Started)

Sign in to add a comment