| Index: gpu/command_buffer/client/gles2_implementation.cc
|
| diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc
|
| index 5dcc9dd3844c32e51eb7b6c1b1fd240c5bebb135..d4e77f2d2c492dc9f1951b740ba3c451d8dcb50a 100644
|
| --- a/gpu/command_buffer/client/gles2_implementation.cc
|
| +++ b/gpu/command_buffer/client/gles2_implementation.cc
|
| @@ -331,9 +331,16 @@ void GLES2Implementation::SetAggressivelyFreeResources(
|
| "aggressively_free_resources", aggressively_free_resources);
|
| aggressively_free_resources_ = aggressively_free_resources;
|
|
|
| - // ShallowFlushCHROMIUM will free resources if |aggressively_free_resources_|
|
| - // is false.
|
| - ShallowFlushCHROMIUM();
|
| + if (aggressively_free_resources_ && helper_->HaveRingBuffer()) {
|
| + // Ensure that we clean up as much cache memory as possible and fully flush.
|
| + FlushDriverCachesCHROMIUM();
|
| +
|
| + // Flush will delete transfer buffer resources if
|
| + // |aggressively_free_resources_| is true.
|
| + Flush();
|
| + } else {
|
| + ShallowFlushCHROMIUM();
|
| + }
|
| }
|
|
|
| void GLES2Implementation::WaitForCmd() {
|
|
|