Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(341)

Issue 1752083003: mac: Use IOSurfaces in Canvas2DLayerBridge. (Closed)

Created:
4 years, 9 months ago by erikchen
Modified:
4 years, 9 months ago
CC:
achuith+watch_chromium.org, ajuma+watch-canvas_chromium.org, blink-reviews, blink-reviews-api_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, creis+watch_chromium.org, danakj+watch_chromium.org, darin-cc_chromium.org, davemoore+watch_chromium.org, dglazkov+blink, dshwang, drott+blinkwatch_chromium.org, krit, dzhioev+watch_chromium.org, f(malita), jam, jbroman, kinuko+watch, nasko+codewatch_chromium.org, oshima+watch_chromium.org, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney, vmpstr+blinkwatch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@temp36_canvas2d_refactor
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

mac: Use IOSurfaces in Canvas2DLayerBridge. This CL adds the method prepareIOSurfaceMailboxFromImage(). By default, Canvas2D now emits mailboxes that contain textures backed by IOSurfaces. This CL adds the switch kDisable2dCanvasImageChromium, which disables this new behavior. This CL allows webpages that have canvas 2D elements to enter the new CoreAnimation compositing mode on OS X. Overview of new behavior in prepareMailbox(): 1. On prepareMailbox(), grab an SkImage snapshot of the underlying SKCanvas. 2. Copy the snapshot into a new IOSurface backed GL texture, and pass that to prepareMailbox(). 3. Discard the SkImage. Skia does not perform any internal copies. BUG=579664 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/f3d656148aa51e025094c93290d1fbf889064ca8 Cr-Commit-Position: refs/heads/master@{#380670}

Patch Set 1 #

Patch Set 2 : Compile error. #

Total comments: 5

Patch Set 3 : Rebase against https://codereview.chromium.org/1719553003/#ps100001. #

Patch Set 4 : Add IOSurface cache. #

Patch Set 5 : Clear cache on hibernation. Use PassRefPtr. #

Patch Set 6 : Comments from junov. #

Patch Set 7 : Fix tests and rebase. #

Patch Set 8 : Add virtual tests. #

Patch Set 9 : Don't run IOSurface tests on Linux/Win. #

Patch Set 10 : Add USE_IOSURFACE_FOR_2D_CANVAS. #

Patch Set 11 : Fix compile on other OSes. #

Total comments: 2

Patch Set 12 : Remove layout tests. Add pixel test. #

Patch Set 13 : Set pixel test expectations. #

Total comments: 2

Patch Set 14 : Rebase. Group macros. #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+262 lines, -15 lines) Patch
M chrome/browser/chromeos/login/chrome_restart_request.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/renderer_host/render_process_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M content/child/runtime_features.cc View 1 2 3 4 5 6 1 chunk +11 lines, -0 lines 1 comment Download
M content/public/common/content_switches.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M content/public/common/content_switches.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -0 lines 0 comments Download
A + content/test/data/gpu/pixel_canvas2d_accelerated.html View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +6 lines, -3 lines 0 comments Download
M content/test/gpu/gpu_tests/pixel_expectations.py View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3 lines, -0 lines 0 comments Download
M content/test/gpu/page_sets/pixel_tests.py View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +20 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +61 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 7 chunks +147 lines, -7 lines 3 comments Download
M third_party/WebKit/Source/web/WebRuntimeFeatures.cpp View 1 2 3 4 5 6 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/public/web/WebRuntimeFeatures.h View 1 2 3 4 5 6 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 89 (30 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/1
4 years, 9 months ago (2016-03-02 06:26:50 UTC) #2
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/20001
4 years, 9 months ago (2016-03-02 06:41:29 UTC) #4
erikchen
kbr: Please review.
4 years, 9 months ago (2016-03-02 07:48:10 UTC) #9
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 9 months ago (2016-03-02 10:32:23 UTC) #11
Justin Novosad
This is CL lacking tests. You should create a LayoutTest virtual test suite (similar to ...
4 years, 9 months ago (2016-03-02 16:33:45 UTC) #13
Justin Novosad
FWIW: I am not convinced this is the right approach. You are losing the double ...
4 years, 9 months ago (2016-03-02 16:43:36 UTC) #14
erikchen
On 2016/03/02 16:43:36, Justin Novosad wrote: > FWIW: I am not convinced this is the ...
4 years, 9 months ago (2016-03-02 17:42:53 UTC) #15
Justin Novosad
As discussed by e-mail, I am in favor of trying this out. But first, can ...
4 years, 9 months ago (2016-03-02 19:12:17 UTC) #16
erikchen
On 2016/03/02 19:12:17, Justin Novosad wrote: > As discussed by e-mail, I am in favor ...
4 years, 9 months ago (2016-03-02 19:24:38 UTC) #17
erikchen
On 2016/03/02 19:24:38, erikchen wrote: > On 2016/03/02 19:12:17, Justin Novosad wrote: > > As ...
4 years, 9 months ago (2016-03-02 21:27:56 UTC) #18
erikchen
On 2016/03/02 21:27:56, erikchen wrote: > On 2016/03/02 19:24:38, erikchen wrote: > > On 2016/03/02 ...
4 years, 9 months ago (2016-03-03 02:01:41 UTC) #19
erikchen
On 2016/03/03 02:01:41, erikchen wrote: > On 2016/03/02 21:27:56, erikchen wrote: > > On 2016/03/02 ...
4 years, 9 months ago (2016-03-03 02:04:52 UTC) #20
Justin Novosad
Okay, the results look reasonable. Now, since this is an interim solution and will likely ...
4 years, 9 months ago (2016-03-03 16:04:39 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/180001
4 years, 9 months ago (2016-03-08 02:42:11 UTC) #24
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_clang_dbg_recipe on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_clang_dbg_recipe/builds/32674) cast_shell_linux on ...
4 years, 9 months ago (2016-03-08 02:50:35 UTC) #26
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/200001
4 years, 9 months ago (2016-03-08 18:07:48 UTC) #28
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/191926)
4 years, 9 months ago (2016-03-08 20:21:44 UTC) #30
erikchen
junov: Please review. The only test failures are for the new virtual test suite. I ...
4 years, 9 months ago (2016-03-08 20:31:00 UTC) #31
Justin Novosad
On 2016/03/08 20:31:00, erikchen wrote: > junov: Please review. > > The only test failures ...
4 years, 9 months ago (2016-03-08 22:10:47 UTC) #32
Justin Novosad
You should really take care of the tests in the same CL. It should not ...
4 years, 9 months ago (2016-03-08 22:15:54 UTC) #33
Justin Novosad
I looked at a handful of the failures and they were all just subtle diffs ...
4 years, 9 months ago (2016-03-08 22:20:13 UTC) #34
erikchen
On 2016/03/08 22:10:47, Justin Novosad wrote: > On 2016/03/08 20:31:00, erikchen wrote: > > junov: ...
4 years, 9 months ago (2016-03-08 22:22:14 UTC) #35
erikchen
https://codereview.chromium.org/1752083003/diff/200001/third_party/WebKit/LayoutTests/NeverFixTests File third_party/WebKit/LayoutTests/NeverFixTests (right): https://codereview.chromium.org/1752083003/diff/200001/third_party/WebKit/LayoutTests/NeverFixTests#newcode124 third_party/WebKit/LayoutTests/NeverFixTests:124: [ Win Linux ] virtual/iosurface_2d_canvas [ WontFix ] On ...
4 years, 9 months ago (2016-03-08 22:22:26 UTC) #36
Justin Novosad
On 2016/03/08 22:22:26, erikchen wrote: > https://codereview.chromium.org/1752083003/diff/200001/third_party/WebKit/LayoutTests/NeverFixTests > File third_party/WebKit/LayoutTests/NeverFixTests (right): > > https://codereview.chromium.org/1752083003/diff/200001/third_party/WebKit/LayoutTests/NeverFixTests#newcode124 > ...
4 years, 9 months ago (2016-03-08 22:26:10 UTC) #37
erikchen
On 2016/03/08 22:26:10, Justin Novosad wrote: > On 2016/03/08 22:22:26, erikchen wrote: > > > ...
4 years, 9 months ago (2016-03-08 22:49:51 UTC) #38
Justin Novosad
> > Why do you think the virtual test suite is not using a physical ...
4 years, 9 months ago (2016-03-09 01:46:18 UTC) #39
erikchen
On 2016/03/09 01:46:18, Justin Novosad wrote: > > > > Why do you think the ...
4 years, 9 months ago (2016-03-09 01:50:15 UTC) #40
Justin Novosad
Ah, that explains the diffs then. The CL is still missing [ NeedsRebaseline ] entries ...
4 years, 9 months ago (2016-03-09 16:44:58 UTC) #41
Justin Novosad
On 2016/03/09 16:44:58, Justin Novosad wrote: > Ah, that explains the diffs then. > > ...
4 years, 9 months ago (2016-03-09 16:46:55 UTC) #42
erikchen
On 2016/03/09 16:46:55, Justin Novosad wrote: > On 2016/03/09 16:44:58, Justin Novosad wrote: > > ...
4 years, 9 months ago (2016-03-09 17:13:24 UTC) #43
Justin Novosad
On 2016/03/09 17:13:24, erikchen wrote: > On 2016/03/09 16:46:55, Justin Novosad wrote: > > On ...
4 years, 9 months ago (2016-03-09 17:38:30 UTC) #44
erikchen
junov: Please review whole CL kbr: Please review pixel test changes in content/test/gpu.
4 years, 9 months ago (2016-03-09 22:39:58 UTC) #45
Justin Novosad
lgtm with nit for third_party/WebKit/Source/platform/ I am not an OWNER in the other areas. https://codereview.chromium.org/1752083003/diff/240001/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h ...
4 years, 9 months ago (2016-03-09 23:13:11 UTC) #46
erikchen
https://codereview.chromium.org/1752083003/diff/240001/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h File third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h (right): https://codereview.chromium.org/1752083003/diff/240001/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h#newcode47 third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.h:47: #if OS(MACOSX) On 2016/03/09 23:13:11, Justin Novosad wrote: > ...
4 years, 9 months ago (2016-03-09 23:42:24 UTC) #47
erikchen
avi: Please review content/, but not content/test/, which kbr@ will review. dzhioev: Please review chrome/browser/chromeos/login/chrome_restart_request.cc ...
4 years, 9 months ago (2016-03-09 23:46:32 UTC) #49
aelias_OOO_until_Jul13
Source/web lgtm
4 years, 9 months ago (2016-03-09 23:54:01 UTC) #50
Ken Russell (switch to Gerrit)
content/test/gpu lgtm https://codereview.chromium.org/1752083003/diff/260001/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp File third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp (right): https://codereview.chromium.org/1752083003/diff/260001/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp#newcode290 third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp:290: void Canvas2DLayerBridge::clearCHROMIUMImageCache() This must be called when ...
4 years, 9 months ago (2016-03-10 01:58:04 UTC) #51
Ken Russell (switch to Gerrit)
One more thing comes to mind. CC'ing zmo. https://codereview.chromium.org/1752083003/diff/260001/content/child/runtime_features.cc File content/child/runtime_features.cc (right): https://codereview.chromium.org/1752083003/diff/260001/content/child/runtime_features.cc#newcode119 content/child/runtime_features.cc:119: enable_canvas_2d_image_chromium); ...
4 years, 9 months ago (2016-03-10 02:00:04 UTC) #53
erikchen
https://codereview.chromium.org/1752083003/diff/260001/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp File third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp (right): https://codereview.chromium.org/1752083003/diff/260001/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp#newcode290 third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp:290: void Canvas2DLayerBridge::clearCHROMIUMImageCache() On 2016/03/10 01:58:04, Ken Russell wrote: > ...
4 years, 9 months ago (2016-03-10 02:03:37 UTC) #54
erikchen
On 2016/03/10 02:00:04, Ken Russell wrote: > One more thing comes to mind. CC'ing zmo. ...
4 years, 9 months ago (2016-03-10 02:10:51 UTC) #55
Ken Russell (switch to Gerrit)
https://codereview.chromium.org/1752083003/diff/260001/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp File third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp (right): https://codereview.chromium.org/1752083003/diff/260001/third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp#newcode290 third_party/WebKit/Source/platform/graphics/Canvas2DLayerBridge.cpp:290: void Canvas2DLayerBridge::clearCHROMIUMImageCache() On 2016/03/10 02:03:37, erikchen wrote: > On ...
4 years, 9 months ago (2016-03-10 02:59:41 UTC) #56
Avi (use Gerrit)
content non-test lgtm
4 years, 9 months ago (2016-03-10 04:01:51 UTC) #57
erikchen
thakis: Could I get a 1-line stamp on chrome/?
4 years, 9 months ago (2016-03-10 17:50:05 UTC) #59
Nico
here comes the one-line stamp: lgtm stamp CL description doesn't say why this change is ...
4 years, 9 months ago (2016-03-10 18:09:27 UTC) #60
erikchen
On 2016/03/10 18:09:27, Nico wrote: > here comes the one-line stamp: > > lgtm stamp ...
4 years, 9 months ago (2016-03-10 18:18:48 UTC) #62
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/260001
4 years, 9 months ago (2016-03-10 18:19:23 UTC) #65
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/137837)
4 years, 9 months ago (2016-03-10 19:39:05 UTC) #67
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/260001
4 years, 9 months ago (2016-03-10 20:07:05 UTC) #69
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/128876)
4 years, 9 months ago (2016-03-10 21:41:21 UTC) #71
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/260001
4 years, 9 months ago (2016-03-10 21:45:07 UTC) #73
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/137946)
4 years, 9 months ago (2016-03-10 22:37:28 UTC) #75
erikchen
On 2016/03/10 22:37:28, commit-bot: I haz the power wrote: > Try jobs failed on following ...
4 years, 9 months ago (2016-03-10 22:39:11 UTC) #76
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/260001
4 years, 9 months ago (2016-03-10 22:47:22 UTC) #78
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/193592)
4 years, 9 months ago (2016-03-10 23:17:38 UTC) #80
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/260001
4 years, 9 months ago (2016-03-11 01:31:43 UTC) #82
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_asan_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/129299) linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, ...
4 years, 9 months ago (2016-03-11 02:44:52 UTC) #84
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752083003/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752083003/260001
4 years, 9 months ago (2016-03-11 17:15:45 UTC) #86
commit-bot: I haz the power
Committed patchset #14 (id:260001)
4 years, 9 months ago (2016-03-11 18:17:11 UTC) #87
commit-bot: I haz the power
4 years, 9 months ago (2016-03-11 18:18:38 UTC) #89
Message was sent while issue was closed.
Patchset 14 (id:??) landed as
https://crrev.com/f3d656148aa51e025094c93290d1fbf889064ca8
Cr-Commit-Position: refs/heads/master@{#380670}

Powered by Google App Engine
This is Rietveld 408576698