New issue
Advanced search Search tips

Issue 658784 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , All
Pri: 2
Type: Feature



Sign in to add a comment

Clear cache after GL program load failure.

Project Member Reported by ericrk@chromium.org, Oct 24 2016

Issue description

Currently, when the GPU process crashes trying to load a GL program from our disk cache, we take no special action. This means we will very likely try to load this same cache entry again, causing another crash.

We should add some sort of shared memory signal that we are carrying out a GL program load. Upon seeing a GPU crash while this signal is set, the browser could clear its cache, preventing future issues.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 17 2017

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

commit 8c0b7bf620cb0ff2d74470b17800281e65405cdd
Author: ericrk <ericrk@chromium.org>
Date: Fri Mar 17 20:07:23 2017

Clear shader disk cache after glProgramBinary failure.

Currently, when the GPU process crashes trying to load a GL program from
our disk cache, we take no special action. This means we will very
likely try to load this same cache entry again, causing another crash.

This CL adds an "activity flags" object which is written by the GPU
process and read by the GPU process host. This allows us to detect
crashes while loading shaders and clear the cache in these instances.

R=vmiura
BUG=699122,  658784 
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

Review-Url: https://codereview.chromium.org/2744363002
Cr-Commit-Position: refs/heads/master@{#457869}

[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/content/browser/gpu/gpu_process_host.h
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/content/gpu/gpu_child_thread.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/content/gpu/gpu_child_thread.h
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/BUILD.gn
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/command_buffer/common/BUILD.gn
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/command_buffer/common/DEPS
[add] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/command_buffer/common/activity_flags.cc
[add] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/command_buffer/common/activity_flags.h
[add] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/command_buffer/common/activity_flags_unittest.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/command_buffer/service/memory_program_cache.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/command_buffer/service/memory_program_cache.h
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/command_buffer/service/memory_program_cache_unittest.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/ipc/host/shader_disk_cache.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/ipc/host/shader_disk_cache.h
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/ipc/service/gpu_channel_manager.h
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/gpu/ipc/service/gpu_channel_test_common.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/services/ui/gpu/gpu_main.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/services/ui/gpu/gpu_main.h
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/services/ui/gpu/gpu_service.cc
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/services/ui/gpu/gpu_service.h
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/services/ui/gpu/interfaces/gpu_main.mojom
[modify] https://crrev.com/8c0b7bf620cb0ff2d74470b17800281e65405cdd/services/ui/ws/gpu_host.cc

Comment 2 by ericrk@chromium.org, Mar 17 2017

Labels: OS-Android
Status: Fixed (was: Available)

Sign in to add a comment