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

Issue 854416 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 20
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Evaluate OOP-R smoothness usage

Project Member Reported by khushals...@chromium.org, Jun 19 2018

Issue description

Placeholder bug for telemetry smoothness runs for OOP-R.
 
Project Member

Comment 3 by 42576172...@developer.gserviceaccount.com, Jun 20 2018

📍 Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/12d9acfd240000
Project Member

Comment 4 by 42576172...@developer.gserviceaccount.com, Jun 21 2018

📍 Job complete. See results below.
https://pinpoint-dot-chromeperf.appspot.com/job/13e1efdd240000
Cc: piman@chromium.org ericrk@chromium.org vmi...@chromium.org bsalomon@chromium.org
I investigated the regressions in first_gesture_scroll_update_latency, max_frame_delay and both of these are from changes in shader compilation with OOP. This is a costly operation that bogs down the GPU main thread and was naturally getting throttled by the command buffer with GPU raster. Since the work was getting chunked, the display context swaps could sneak in between the renderer worker commands.

But with OOP, all this is internally driven in skia and in some cases can hold the GPU main thread for > 200ms, blocking the complete display pipeline. But, its rare to hit this in practice because we commonly get a cache hit from the framework's shader disk cache (thanks Eric for all the debugging help!). The telemetry test runner starts with a cold cache, so we see this worst case show up in the benchmarks.

DDL still won't fix this since this will still run on GPU main thread when we process the DDL. One option would be to pull out the shaders required for a DDL, so they can be processed one at a time? But do we need to optimize for this case anyway, if we commonly get a cache hit from the shader disk cache?
Adding some tracing screenshots that show the issue.
oop_shaders.png
23.8 KB View Download
gpu_shaders.png
39.5 KB View Download

Comment 7 by vmi...@chromium.org, Jun 21 2018

Could this be a general issue in the way pre-emption granularity is affected under OOP-R, as it's more likely we will run whole tiles worth of commands at a time?

Comment 8 by piman@chromium.org, Jun 21 2018

Cc: backer@chromium.org sunn...@chromium.org
Could it make sense to have the RasterCHROMIUM handler yield back to the scheduler, based on some heuristics? RasterDecoder would need to keep enough state to be able to resume.
I tried that, chunked up paint commands on the client into multiple RasterCHROMIUM and yielded back to the scheduler after each RasterCHROMIUM but that didn't help. And that's because skia internally batches up all the gpu work in a GrOp list and executes it together in prepareForExternalIO. Its not possible to interrupt that work.
^ I meant that didn't help in this case because all the shader work was for a single tile and was executed in prepareForExternalIO for that tile. In general, we could do something like in #9 to make OOP work interruptible but I haven't seen any case come up where it was an issue. 
I looked up some old issues that had motivated thinking about scheduling and pre-empting at sub-tile level.

Issue 495344 involved blur filters on Search results.  The Search implementation has changed since so it's not an issue there anymore.  I wonder if we could find other cases in CT corpus.  Blurs use many frame buffer switches, and they were very slow, at least on hardware at the time like Nexus 6.  Yielding between FBO swaps seemed like a good idea.


Issue 492861 involved MSAA FBO resolve on Mac.
Project Member

Comment 12 by bugdroid1@chromium.org, Jun 27 2018

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/c421ca1d6e41214f09c0e6311c8519a15e44edd4

commit c421ca1d6e41214f09c0e6311c8519a15e44edd4
Author: Khushal <khushalsagar@chromium.org>
Date: Wed Jun 27 01:08:45 2018

gpu: Expose GrContextPriv::abandoned in the public API.

TBR=bsalomon@google.com

Bug:  854416 
Change-Id: Iab71ca6e4724a925b0b9791267aac5ddc34f5b15
Reviewed-on: https://skia-review.googlesource.com/137692
Reviewed-by: Khusal Sagar <khushalsagar@chromium.org>
Commit-Queue: Khusal Sagar <khushalsagar@chromium.org>

[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/src/gpu/GrBlurUtils.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/src/gpu/GrContext.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/dm/DMSrcSink.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/src/image/SkImage_Gpu.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/src/gpu/SkGpuDevice.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/src/image/SkImage.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/src/core/SkSpecialImage.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/src/gpu/text/GrTextContext.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/include/gpu/GrContext.h
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/src/gpu/GrContextPriv.h
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/gm/imagefromyuvtextures.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/src/gpu/GrAHardwareBufferImageGenerator.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/gm/rectangletexture.cpp
[modify] https://crrev.com/c421ca1d6e41214f09c0e6311c8519a15e44edd4/tools/gpu/ProxyUtils.cpp

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 27 2018

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

commit 6a892eb5014eb3ea39ba09c147899859976e5491
Author: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Wed Jun 27 02:36:08 2018

Roll src/third_party/skia 5b201e3b0ba8..c421ca1d6e41 (3 commits)

https://skia.googlesource.com/skia.git/+log/5b201e3b0ba8..c421ca1d6e41


git log 5b201e3b0ba8..c421ca1d6e41 --date=short --no-merges --format='%ad %ae %s'
2018-06-27 khushalsagar@chromium.org gpu: Expose GrContextPriv::abandoned in the public API.
2018-06-27 csmartdalton@google.com ccpr: Add a context option to disable ccpr
2018-06-26 recipe-roller@chromium.org Roll recipe dependencies (trivial).


Created with:
  gclient setdep -r src/third_party/skia@c421ca1d6e41

The AutoRoll server is located here: https://autoroll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG= chromium:854416 
TBR=jcgregorio@chromium.org

Change-Id: I51befa088472f9b71cf8068ff0a399dd108ec124
Reviewed-on: https://chromium-review.googlesource.com/1116080
Reviewed-by: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#570642}
[modify] https://crrev.com/6a892eb5014eb3ea39ba09c147899859976e5491/DEPS

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 28 2018

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

commit 15b6abbdc36dd4b9958a2655c737d657fa886414
Author: Khushal <khushalsagar@chromium.org>
Date: Thu Jun 28 00:16:25 2018

gpu: Yield to gpu::Scheduler after EndRasterCHROMIUM.

R=backer@chromium.org, sunnyps@chromium.org

Bug:  854416 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I1fef0f0a8468c08fc03500a13ed13f7776466e4f
Reviewed-on: https://chromium-review.googlesource.com/1115721
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Reviewed-by: Jonathan Backer <backer@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570963}
[modify] https://crrev.com/15b6abbdc36dd4b9958a2655c737d657fa886414/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/15b6abbdc36dd4b9958a2655c737d657fa886414/gpu/command_buffer/service/raster_decoder.h
[modify] https://crrev.com/15b6abbdc36dd4b9958a2655c737d657fa886414/gpu/command_buffer/service/raster_decoder_mock.h
[modify] https://crrev.com/15b6abbdc36dd4b9958a2655c737d657fa886414/gpu/command_buffer/service/raster_decoder_unittest.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 28 2018

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

commit 99831dfad8a529bb8021212e7bbd8732ac260760
Author: Khushal <khushalsagar@chromium.org>
Date: Thu Jun 28 01:25:02 2018

gpu: Disallow client share groups with RasterDecoder.

R=piman@chromium.org

Bug:  854416 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I2a34d72980d5acd8975319671cc9ca9637bf93c8
Reviewed-on: https://chromium-review.googlesource.com/1117706
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570992}
[modify] https://crrev.com/99831dfad8a529bb8021212e7bbd8732ac260760/gpu/ipc/service/raster_command_buffer_stub.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jul 3

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

commit db2d4ad73d521275dd1c97a7ebc8effce024f948
Author: Khushal <khushalsagar@chromium.org>
Date: Tue Jul 03 22:36:27 2018

gpu: Share GrContext between RasterDecoders for OOP raster.

Use a common GrContext across all RasterDecoders. This ensures that we
get a unified GrProgramCache for compiled shaders.

R=backer@chromium.org, ericrk@chromium.org

Bug:  854416 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I653486d2a20f4bb0112c6cfe66f3922c222ad338
Reviewed-on: https://chromium-review.googlesource.com/1114287
Commit-Queue: Khushal <khushalsagar@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572377}
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/BUILD.gn
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/service/raster_decoder.h
[add] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/service/raster_decoder_context_state.cc
[add] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/service/service_utils.cc
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/service/service_utils.h
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/command_buffer/tests/fuzzer_main.cc
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/ipc/service/gpu_channel_manager.h
[modify] https://crrev.com/db2d4ad73d521275dd1c97a7ebc8effce024f948/gpu/ipc/service/raster_command_buffer_stub.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Jul 6

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

commit 2200b6d949dc8b19a65c3e1a0753479ee68d3d65
Author: Juan Antonio Navarro Pérez <perezju@chromium.org>
Date: Fri Jul 06 10:14:12 2018

Revert "gpu: Share GrContext between RasterDecoders for OOP raster."

This reverts commit db2d4ad73d521275dd1c97a7ebc8effce024f948.

Reason for revert: Suspicion that this causes a memory leak.

Original change's description:
> gpu: Share GrContext between RasterDecoders for OOP raster.
> 
> Use a common GrContext across all RasterDecoders. This ensures that we
> get a unified GrProgramCache for compiled shaders.
> 
> R=​backer@chromium.org, ericrk@chromium.org
> 
> Bug:  854416 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I653486d2a20f4bb0112c6cfe66f3922c222ad338
> Reviewed-on: https://chromium-review.googlesource.com/1114287
> Commit-Queue: Khushal <khushalsagar@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Reviewed-by: Eric Karl <ericrk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#572377}

TBR=backer@chromium.org,khushalsagar@chromium.org,piman@chromium.org,ericrk@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  854416 
Change-Id: Ia8d34c966409fa209f8d75b74a2f1cdc253b979d
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1127699
Reviewed-by: Juan Antonio Navarro Pérez <perezju@chromium.org>
Commit-Queue: Juan Antonio Navarro Pérez <perezju@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572933}
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/BUILD.gn
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/command_buffer/service/raster_decoder.h
[delete] https://crrev.com/1d2b0827379dec8d92d88782e511372a25adf3a2/gpu/command_buffer/service/raster_decoder_context_state.cc
[delete] https://crrev.com/1d2b0827379dec8d92d88782e511372a25adf3a2/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/command_buffer/service/service_utils.cc
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/command_buffer/service/service_utils.h
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/command_buffer/tests/fuzzer_main.cc
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/ipc/service/gpu_channel_manager.h
[modify] https://crrev.com/2200b6d949dc8b19a65c3e1a0753479ee68d3d65/gpu/ipc/service/raster_command_buffer_stub.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 9

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

commit b2c140b85bf6cb4aa81c1a24a0d140770b6f519c
Author: Khushal <khushalsagar@chromium.org>
Date: Mon Jul 09 20:21:16 2018

Reland "gpu: Share GrContext between RasterDecoders for OOP raster."

This reverts commit 2200b6d949dc8b19a65c3e1a0753479ee68d3d65. The change
inadvertantly disabled an optimization for low-end Android devices that
releases all GPU memory when the application has been backgrounded. The
optimization works by releasing all non-WebGL GpuChannels. Since this
change moved the GrContext ownership to a shared object cached in the
GpuChannelManager instead of per GpuChannel, it is necessary to
explicitly destroy it in the channel manager during cleanup.

R=ericrk@chromium.org, piman@chromium.org

Bug:  860506 ,  854416 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I3f6754ce939c3f815b13a3f96cd4414f5c8a3449
Reviewed-on: https://chromium-review.googlesource.com/1129548
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573428}
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/BUILD.gn
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/service/raster_decoder.h
[add] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/service/raster_decoder_context_state.cc
[add] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/service/service_utils.cc
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/service/service_utils.h
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/command_buffer/tests/fuzzer_main.cc
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/ipc/service/gpu_channel_manager.h
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/ipc/service/gpu_channel_manager_unittest.cc
[modify] https://crrev.com/b2c140b85bf6cb4aa81c1a24a0d140770b6f519c/gpu/ipc/service/raster_command_buffer_stub.cc

The only thing remaining for this now is disk caching of these shaders.
Project Member

Comment 20 by bugdroid1@chromium.org, Jul 18

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

commit 49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7
Author: Khushal <khushalsagar@chromium.org>
Date: Wed Jul 18 09:28:00 2018

gpu: Add disk caching for skia generated shaders in OOP-R.

Use the GrContextOptions::PersistentCache API provided by skia to
persist shaders generated internally by skia for OOP raster to disk.
This requires using a special client id to namespace these shaders,
similar to the one used by the InProcessCommandBuffer for viz.

While the shaders for different sources are stored seperately on disk,
they are finally merged into a single memory cache in the GPU process. In
order to maintain a seperate cache for skia generated shaders, this also
plumbs the client id for a loaded shader to the GPU process.

R=piman@chromium.org

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I91fd89ed2c3d2a0bcbcb9b1fdc4ddfbc5b8de147
Bug:  854416 , 840559 
Reviewed-on: https://chromium-review.googlesource.com/1116197
Commit-Queue: Khushal <khushalsagar@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575987}
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/chrome/browser/chrome_content_browser_client.h
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/components/viz/host/server_gpu_memory_buffer_manager_unittest.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/components/viz/service/display_embedder/in_process_gpu_memory_buffer_manager.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/components/viz/service/gl/gpu_service_impl.h
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/content/browser/gpu/browser_gpu_channel_host_factory.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/content/browser/gpu/browser_gpu_channel_host_factory.h
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/content/browser/gpu/gpu_process_host.h
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/content/public/browser/content_browser_client.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/content/public/browser/content_browser_client.h
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/BUILD.gn
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/service/gr_cache_controller_unittest.cc
[add] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/service/gr_shader_cache.cc
[add] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/service/gr_shader_cache.h
[add] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/service/gr_shader_cache_unittest.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/tests/fuzzer_main.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/command_buffer/tests/gl_manager.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/BUILD.gn
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/common/BUILD.gn
[add] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/common/gpu_client_ids.h
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/service/command_buffer_stub.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/service/gpu_channel_manager.h
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/service/gpu_channel_manager_unittest.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/gpu/ipc/service/gpu_channel_test_common.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/services/ui/gpu_host/gpu_client.cc
[modify] https://crrev.com/49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7/services/viz/privileged/interfaces/gl/gpu_service.mojom

Project Member

Comment 21 by bugdroid1@chromium.org, Jul 18

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

commit f9395d77ab8feb15a222dc8e2b3608ac6db22302
Author: Khushal <khushalsagar@chromium.org>
Date: Wed Jul 18 21:56:35 2018

Revert "gpu: Add disk caching for skia generated shaders in OOP-R."

This reverts commit 49b85d7453d643d2d9f7dd127d72c3bdd88ca9c7.

Reason for revert: Speculative revert for failures in crbug.com/865138

Original change's description:
> gpu: Add disk caching for skia generated shaders in OOP-R.
> 
> Use the GrContextOptions::PersistentCache API provided by skia to
> persist shaders generated internally by skia for OOP raster to disk.
> This requires using a special client id to namespace these shaders,
> similar to the one used by the InProcessCommandBuffer for viz.
> 
> While the shaders for different sources are stored seperately on disk,
> they are finally merged into a single memory cache in the GPU process. In
> order to maintain a seperate cache for skia generated shaders, this also
> plumbs the client id for a loaded shader to the GPU process.
> 
> R=​piman@chromium.org
> 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I91fd89ed2c3d2a0bcbcb9b1fdc4ddfbc5b8de147
> Bug:  854416 , 840559 
> Reviewed-on: https://chromium-review.googlesource.com/1116197
> Commit-Queue: Khushal <khushalsagar@chromium.org>
> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Reviewed-by: Tom Sepez <tsepez@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#575987}

TBR=sadrul@chromium.org,tsepez@chromium.org,khushalsagar@chromium.org,piman@chromium.org,ericrk@chromium.org

Change-Id: I0cde27e30d1ab0c8803539148efc42a24a3e2230
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  854416 ,  840559 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1142306
Commit-Queue: Khushal <khushalsagar@chromium.org>
Reviewed-by: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576228}
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/chrome/browser/chrome_content_browser_client.h
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/components/viz/host/host_gpu_memory_buffer_manager_unittest.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/components/viz/service/display_embedder/in_process_gpu_memory_buffer_manager.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/components/viz/service/gl/gpu_service_impl.h
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/content/browser/gpu/browser_gpu_channel_host_factory.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/content/browser/gpu/browser_gpu_channel_host_factory.h
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/content/browser/gpu/gpu_process_host.h
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/content/public/browser/content_browser_client.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/content/public/browser/content_browser_client.h
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/BUILD.gn
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/command_buffer/service/gr_cache_controller_unittest.cc
[delete] https://crrev.com/1ca17c55c4e23840893be64e18b80518ea26da85/gpu/command_buffer/service/gr_shader_cache.cc
[delete] https://crrev.com/1ca17c55c4e23840893be64e18b80518ea26da85/gpu/command_buffer/service/gr_shader_cache.h
[delete] https://crrev.com/1ca17c55c4e23840893be64e18b80518ea26da85/gpu/command_buffer/service/gr_shader_cache_unittest.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/command_buffer/tests/fuzzer_main.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/command_buffer/tests/gl_manager.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/ipc/BUILD.gn
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/ipc/common/BUILD.gn
[delete] https://crrev.com/1ca17c55c4e23840893be64e18b80518ea26da85/gpu/ipc/common/gpu_client_ids.h
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/ipc/service/command_buffer_stub.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/ipc/service/gpu_channel_manager.h
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/ipc/service/gpu_channel_manager_unittest.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/gpu/ipc/service/gpu_channel_test_common.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/services/ui/gpu_host/gpu_client.cc
[modify] https://crrev.com/f9395d77ab8feb15a222dc8e2b3608ac6db22302/services/viz/privileged/interfaces/gl/gpu_service.mojom

Project Member

Comment 22 by bugdroid1@chromium.org, Jul 20

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

commit c2667e316f9bec1194d8d468862e772add87aeaa
Author: Khushal <khushalsagar@chromium.org>
Date: Fri Jul 20 01:07:18 2018

Reland gpu: Add disk caching for skia generated shaders in OOP-R.

This reverts commit f9395d77ab8feb15a222dc8e2b3608ac6db22302.

Use the GrContextOptions::PersistentCache API provided by skia to
persist shaders generated internally by skia for OOP raster to disk.
This requires using a special client id to namespace these shaders,
similar to the one used by the InProcessCommandBuffer for viz.

While the shaders for different sources are stored seperately on disk,
they are finally merged into a single memory cache in the GPU process. In
order to maintain a seperate cache for skia generated shaders, this also
plumbs the client id for a loaded shader to the GPU process.

TBR=tsepez@chromium.org

Bug:  854416 , 840559 , 865138
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I65544ccaff96c3154a822dbc2500468fbcac8a0b
Reviewed-on: https://chromium-review.googlesource.com/1142829
Commit-Queue: Khushal <khushalsagar@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576742}
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/components/viz/host/host_gpu_memory_buffer_manager_unittest.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/components/viz/service/display_embedder/in_process_gpu_memory_buffer_manager.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/components/viz/service/gl/gpu_service_impl.h
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/content/browser/gpu/browser_gpu_channel_host_factory.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/content/browser/gpu/gpu_process_host.h
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/BUILD.gn
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/service/gr_cache_controller_unittest.cc
[add] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/service/gr_shader_cache.cc
[add] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/service/gr_shader_cache.h
[add] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/service/gr_shader_cache_unittest.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/tests/fuzzer_main.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/command_buffer/tests/gl_manager.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/BUILD.gn
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/common/BUILD.gn
[add] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/common/gpu_client_ids.h
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/service/command_buffer_stub.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/service/gpu_channel_manager.h
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/service/gpu_channel_manager_unittest.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/gpu/ipc/service/gpu_channel_test_common.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/services/ui/gpu_host/gpu_client.cc
[modify] https://crrev.com/c2667e316f9bec1194d8d468862e772add87aeaa/services/viz/privileged/interfaces/gl/gpu_service.mojom

Project Member

Comment 23 by bugdroid1@chromium.org, Jul 20

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

commit 13e510ef164f399158a27396e28c4b31e39107f5
Author: Khushal <khushalsagar@chromium.org>
Date: Fri Jul 20 09:27:55 2018

gpu: Hook up activity flags for glProgramBinary for OOPR.

The activity flags are used to notify the browser if the GPU process
crashes during shader compilation which could indicate a corrupted disk
shader cache. Hook this up for the persistent shader caching on the
GrContext for OOPR.

R=ericrk@chromium.org, piman@chromium.org

Bug:  854416 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I4ed69d41768856b649a500dd5b86777bf0023d26
Reviewed-on: https://chromium-review.googlesource.com/1142367
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576819}
[modify] https://crrev.com/13e510ef164f399158a27396e28c4b31e39107f5/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/13e510ef164f399158a27396e28c4b31e39107f5/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/13e510ef164f399158a27396e28c4b31e39107f5/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/13e510ef164f399158a27396e28c4b31e39107f5/ui/gl/init/create_gr_gl_interface.cc
[modify] https://crrev.com/13e510ef164f399158a27396e28c4b31e39107f5/ui/gl/init/create_gr_gl_interface.h

Status: Fixed (was: Assigned)
I've filed a different bug for removing some configs from the disk cache blacklist (see issue 865128), but other than that this should be done.
Project Member

Comment 25 by bugdroid1@chromium.org, Jul 23

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

commit 3ff6b565a03c112a0b6bb3ede70fa47247cdcc76
Author: Khushal <khushalsagar@chromium.org>
Date: Mon Jul 23 03:58:49 2018

Revert "gpu: Hook up activity flags for glProgramBinary for OOPR."

This reverts commit 13e510ef164f399158a27396e28c4b31e39107f5.

Reason for revert: Causing crashes on the latest canary. I'll debug on Monday.

Original change's description:
> gpu: Hook up activity flags for glProgramBinary for OOPR.
> 
> The activity flags are used to notify the browser if the GPU process
> crashes during shader compilation which could indicate a corrupted disk
> shader cache. Hook this up for the persistent shader caching on the
> GrContext for OOPR.
> 
> R=​ericrk@chromium.org, piman@chromium.org
> 
> Bug:  854416 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I4ed69d41768856b649a500dd5b86777bf0023d26
> Reviewed-on: https://chromium-review.googlesource.com/1142367
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Commit-Queue: Khushal <khushalsagar@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#576819}

TBR=khushalsagar@chromium.org,piman@chromium.org,ericrk@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  854416 
Change-Id: I51f5ff5b7427348b06159b7a8a3ec11161d9b6f3
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1146087
Reviewed-by: Khushal <khushalsagar@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577109}
[modify] https://crrev.com/3ff6b565a03c112a0b6bb3ede70fa47247cdcc76/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/3ff6b565a03c112a0b6bb3ede70fa47247cdcc76/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/3ff6b565a03c112a0b6bb3ede70fa47247cdcc76/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/3ff6b565a03c112a0b6bb3ede70fa47247cdcc76/ui/gl/init/create_gr_gl_interface.cc
[modify] https://crrev.com/3ff6b565a03c112a0b6bb3ede70fa47247cdcc76/ui/gl/init/create_gr_gl_interface.h

Project Member

Comment 26 by bugdroid1@chromium.org, Jul 23

Labels: merge-merged-3500
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7774a733f46fc534829b865aeee95a6950a7a33b

commit 7774a733f46fc534829b865aeee95a6950a7a33b
Author: Khushal <khushalsagar@chromium.org>
Date: Mon Jul 23 18:03:06 2018

Revert "gpu: Hook up activity flags for glProgramBinary for OOPR."

This reverts commit 13e510ef164f399158a27396e28c4b31e39107f5.

Reason for revert: Causing crashes on the latest canary. I'll debug on Monday.

Original change's description:
> gpu: Hook up activity flags for glProgramBinary for OOPR.
> 
> The activity flags are used to notify the browser if the GPU process
> crashes during shader compilation which could indicate a corrupted disk
> shader cache. Hook this up for the persistent shader caching on the
> GrContext for OOPR.
> 
> R=​ericrk@chromium.org, piman@chromium.org
> 
> Bug:  854416 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I4ed69d41768856b649a500dd5b86777bf0023d26
> Reviewed-on: https://chromium-review.googlesource.com/1142367
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Commit-Queue: Khushal <khushalsagar@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#576819}

TBR=khushalsagar@chromium.org,piman@chromium.org,ericrk@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  854416 
Change-Id: I51f5ff5b7427348b06159b7a8a3ec11161d9b6f3
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1146087
Reviewed-by: Khushal <khushalsagar@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#577109}(cherry picked from commit 3ff6b565a03c112a0b6bb3ede70fa47247cdcc76)
Reviewed-on: https://chromium-review.googlesource.com/1147180
Reviewed-by: Ben Mason <benmason@chromium.org>
Cr-Commit-Position: refs/branch-heads/3500@{#4}
Cr-Branched-From: 3b1c272338a7ab1630a3e3121535520cf8e73dba-refs/heads/master@{#577100}
[modify] https://crrev.com/7774a733f46fc534829b865aeee95a6950a7a33b/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/7774a733f46fc534829b865aeee95a6950a7a33b/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/7774a733f46fc534829b865aeee95a6950a7a33b/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/7774a733f46fc534829b865aeee95a6950a7a33b/ui/gl/init/create_gr_gl_interface.cc
[modify] https://crrev.com/7774a733f46fc534829b865aeee95a6950a7a33b/ui/gl/init/create_gr_gl_interface.h

Project Member

Comment 27 by bugdroid1@chromium.org, Jul 25

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

commit 889bb2c4dcca81cf70a683b96f611db79fba2094
Author: Khushal <khushalsagar@chromium.org>
Date: Wed Jul 25 00:54:14 2018

Reland gpu: Hook up activity flags for glProgramBinary for OOPR.

The activity flags are used to notify the browser if the GPU process
crashes during shader compilation which could indicate a corrupted disk
shader cache. Hook this up for the persistent shader caching on the
GrContext for OOPR.

R=ericrk@chromium.org, piman@chromium.org

Bug:  854416 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Id2b1d0eeb3ca4ac41f82822f520331651dea5a38
Reviewed-on: https://chromium-review.googlesource.com/1147863
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577756}
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/cc/paint/DEPS
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/cc/paint/oop_pixeltest.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/cc/paint/transfer_cache_unittest.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/cc/test/test_in_process_context_provider.h
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/gpu/ipc/client/raster_in_process_context_tests.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/gpu/ipc/raster_in_process_context.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/gpu/ipc/raster_in_process_context.h
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/ui/gl/init/create_gr_gl_interface.cc
[modify] https://crrev.com/889bb2c4dcca81cf70a683b96f611db79fba2094/ui/gl/init/create_gr_gl_interface.h

Project Member

Comment 28 by bugdroid1@chromium.org, Jul 25

Labels: merge-merged-3497
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3

commit 971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3
Author: Khushal <khushalsagar@chromium.org>
Date: Wed Jul 25 01:42:04 2018

Revert "Reland gpu: Add disk caching for skia generated shaders in OOP-R."

This reverts commit c2667e316f9bec1194d8d468862e772add87aeaa.

Reason for revert: Only the first part made it to M69, without the subsequent patches this is just unnecessary overhead.

Original change's description:
> Reland gpu: Add disk caching for skia generated shaders in OOP-R.
>
> This reverts commit f9395d77ab8feb15a222dc8e2b3608ac6db22302.
>
> Use the GrContextOptions::PersistentCache API provided by skia to
> persist shaders generated internally by skia for OOP raster to disk.
> This requires using a special client id to namespace these shaders,
> similar to the one used by the InProcessCommandBuffer for viz.
>
> While the shaders for different sources are stored seperately on disk,
> they are finally merged into a single memory cache in the GPU process. In
> order to maintain a seperate cache for skia generated shaders, this also
> plumbs the client id for a loaded shader to the GPU process.
>
> TBR=tsepez@chromium.org
>
> Bug:  854416 , 840559 , 865138
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: I65544ccaff96c3154a822dbc2500468fbcac8a0b
> Reviewed-on: https://chromium-review.googlesource.com/1142829
> Commit-Queue: Khushal <khushalsagar@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#576742}

TBR=tsepez@chromium.org,khushalsagar@chromium.org,piman@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 865138
Change-Id: Ia38b186475f802efb81d0764bf0a24350103f868
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1147041
Reviewed-by: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#61}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/components/viz/host/host_gpu_memory_buffer_manager_unittest.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/components/viz/service/display_embedder/in_process_gpu_memory_buffer_manager.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/components/viz/service/gl/gpu_service_impl.h
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/content/browser/gpu/browser_gpu_channel_host_factory.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/content/browser/gpu/gpu_process_host.h
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/BUILD.gn
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/command_buffer/service/gr_cache_controller_unittest.cc
[delete] https://crrev.com/dba741d1e5f814e8cf0571b0a75826dc220a7b41/gpu/command_buffer/service/gr_shader_cache.cc
[delete] https://crrev.com/dba741d1e5f814e8cf0571b0a75826dc220a7b41/gpu/command_buffer/service/gr_shader_cache.h
[delete] https://crrev.com/dba741d1e5f814e8cf0571b0a75826dc220a7b41/gpu/command_buffer/service/gr_shader_cache_unittest.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/command_buffer/tests/fuzzer_main.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/command_buffer/tests/gl_manager.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/ipc/BUILD.gn
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/ipc/common/BUILD.gn
[delete] https://crrev.com/dba741d1e5f814e8cf0571b0a75826dc220a7b41/gpu/ipc/common/gpu_client_ids.h
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/ipc/service/command_buffer_stub.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/ipc/service/gpu_channel_manager.h
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/ipc/service/gpu_channel_manager_unittest.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/gpu/ipc/service/gpu_channel_test_common.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/services/ui/gpu_host/gpu_client.cc
[modify] https://crrev.com/971df0f22220cfa2bf0d3e3ad0a70417f85e1cc3/services/viz/privileged/interfaces/gl/gpu_service.mojom

Sign in to add a comment