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

Side by Side Diff: gpu/command_buffer/client/gles2_implementation.cc

Issue 1241433003: Rebind EGL context to flush driver caches. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // A class to emulate GLES2 over command buffers. 5 // A class to emulate GLES2 over command buffers.
6 6
7 #include "gpu/command_buffer/client/gles2_implementation.h" 7 #include "gpu/command_buffer/client/gles2_implementation.h"
8 8
9 #include <GLES2/gl2.h> 9 #include <GLES2/gl2.h>
10 #include <GLES2/gl2ext.h> 10 #include <GLES2/gl2ext.h>
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 ShallowFlushCHROMIUM(); 324 ShallowFlushCHROMIUM();
325 gpu_control_->SetSurfaceVisible(visible); 325 gpu_control_->SetSurfaceVisible(visible);
326 } 326 }
327 327
328 void GLES2Implementation::SetAggressivelyFreeResources( 328 void GLES2Implementation::SetAggressivelyFreeResources(
329 bool aggressively_free_resources) { 329 bool aggressively_free_resources) {
330 TRACE_EVENT1("gpu", "GLES2Implementation::SetAggressivelyFreeResources", 330 TRACE_EVENT1("gpu", "GLES2Implementation::SetAggressivelyFreeResources",
331 "aggressively_free_resources", aggressively_free_resources); 331 "aggressively_free_resources", aggressively_free_resources);
332 aggressively_free_resources_ = aggressively_free_resources; 332 aggressively_free_resources_ = aggressively_free_resources;
333 333
334 // ShallowFlushCHROMIUM will free resources if |aggressively_free_resources_| 334 if (aggressively_free_resources_ && helper_->HaveRingBuffer()) {
335 // is false. 335 // Ensure that we clean up as much cache memory as possible and fully flush.
336 ShallowFlushCHROMIUM(); 336 FlushDriverCachesCHROMIUM();
337
338 // Flush will delete transfer buffer resources if
339 // |aggressively_free_resources_| is true.
340 Flush();
341 } else {
342 ShallowFlushCHROMIUM();
343 }
337 } 344 }
338 345
339 void GLES2Implementation::WaitForCmd() { 346 void GLES2Implementation::WaitForCmd() {
340 TRACE_EVENT0("gpu", "GLES2::WaitForCmd"); 347 TRACE_EVENT0("gpu", "GLES2::WaitForCmd");
341 helper_->CommandBufferHelper::Finish(); 348 helper_->CommandBufferHelper::Finish();
342 } 349 }
343 350
344 bool GLES2Implementation::IsExtensionAvailable(const char* ext) { 351 bool GLES2Implementation::IsExtensionAvailable(const char* ext) {
345 const char* extensions = 352 const char* extensions =
346 reinterpret_cast<const char*>(GetStringHelper(GL_EXTENSIONS)); 353 reinterpret_cast<const char*>(GetStringHelper(GL_EXTENSIONS));
(...skipping 5640 matching lines...) Expand 10 before | Expand all | Expand 10 after
5987 CheckGLError(); 5994 CheckGLError();
5988 } 5995 }
5989 5996
5990 // Include the auto-generated part of this file. We split this because it means 5997 // Include the auto-generated part of this file. We split this because it means
5991 // we can easily edit the non-auto generated parts right here in this file 5998 // we can easily edit the non-auto generated parts right here in this file
5992 // instead of having to edit some template or the code generator. 5999 // instead of having to edit some template or the code generator.
5993 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" 6000 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h"
5994 6001
5995 } // namespace gles2 6002 } // namespace gles2
5996 } // namespace gpu 6003 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/gles2_cmd_helper_autogen.h ('k') | gpu/command_buffer/client/gles2_implementation_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698