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

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

Issue 10782005: Add a shallow command buffer flush that doesn't glFlush (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes a test failure Created 8 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 | Annotate | Revision Log
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 "../client/gles2_implementation.h" 7 #include "../client/gles2_implementation.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <map> 10 #include <map>
(...skipping 1037 matching lines...) Expand 10 before | Expand all | Expand 10 after
1048 void GLES2Implementation::Flush() { 1048 void GLES2Implementation::Flush() {
1049 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1049 GPU_CLIENT_SINGLE_THREAD_CHECK();
1050 GPU_CLIENT_LOG("[" << this << "] glFlush()"); 1050 GPU_CLIENT_LOG("[" << this << "] glFlush()");
1051 // Insert the cmd to call glFlush 1051 // Insert the cmd to call glFlush
1052 helper_->Flush(); 1052 helper_->Flush();
1053 // Flush our command buffer 1053 // Flush our command buffer
1054 // (tell the service to execute up to the flush cmd.) 1054 // (tell the service to execute up to the flush cmd.)
1055 helper_->CommandBufferHelper::Flush(); 1055 helper_->CommandBufferHelper::Flush();
1056 } 1056 }
1057 1057
1058 void GLES2Implementation::ShallowFlushCHROMIUM() {
1059 GPU_CLIENT_SINGLE_THREAD_CHECK();
1060 GPU_CLIENT_LOG("[" << this << "] glShallowFlushCHROMIUM()");
1061 // Flush our command buffer
1062 // (tell the service to execute up to the flush cmd.)
1063 helper_->CommandBufferHelper::Flush();
1064 }
1065
1058 void GLES2Implementation::Finish() { 1066 void GLES2Implementation::Finish() {
1059 GPU_CLIENT_SINGLE_THREAD_CHECK(); 1067 GPU_CLIENT_SINGLE_THREAD_CHECK();
1060 FinishHelper(); 1068 FinishHelper();
1061 } 1069 }
1062 1070
1063 void GLES2Implementation::FinishHelper() { 1071 void GLES2Implementation::FinishHelper() {
1064 GPU_CLIENT_LOG("[" << this << "] glFinish()"); 1072 GPU_CLIENT_LOG("[" << this << "] glFinish()");
1065 TRACE_EVENT0("gpu", "GLES2::Finish"); 1073 TRACE_EVENT0("gpu", "GLES2::Finish");
1066 // Insert the cmd to call glFinish 1074 // Insert the cmd to call glFinish
1067 helper_->Finish(); 1075 helper_->Finish();
(...skipping 1045 matching lines...) Expand 10 before | Expand all | Expand 10 after
2113 const char* result = NULL; 2121 const char* result = NULL;
2114 // Clears the bucket so if the command fails nothing will be in it. 2122 // Clears the bucket so if the command fails nothing will be in it.
2115 helper_->SetBucketSize(kResultBucketId, 0); 2123 helper_->SetBucketSize(kResultBucketId, 0);
2116 helper_->GetString(name, kResultBucketId); 2124 helper_->GetString(name, kResultBucketId);
2117 std::string str; 2125 std::string str;
2118 if (GetBucketAsString(kResultBucketId, &str)) { 2126 if (GetBucketAsString(kResultBucketId, &str)) {
2119 // Adds extensions implemented on client side only. 2127 // Adds extensions implemented on client side only.
2120 switch (name) { 2128 switch (name) {
2121 case GL_EXTENSIONS: 2129 case GL_EXTENSIONS:
2122 str += std::string(str.empty() ? "" : " ") + 2130 str += std::string(str.empty() ? "" : " ") +
2131 "GL_CHROMIUM_flipy "
2123 "GL_CHROMIUM_map_sub " 2132 "GL_CHROMIUM_map_sub "
2124 "GL_CHROMIUM_flipy " 2133 "GL_CHROMIUM_shallow_flush "
2125 "GL_EXT_unpack_subimage"; 2134 "GL_EXT_unpack_subimage";
2126 break; 2135 break;
2127 default: 2136 default:
2128 break; 2137 break;
2129 } 2138 }
2130 2139
2131 // Because of WebGL the extensions can change. We have to cache each unique 2140 // Because of WebGL the extensions can change. We have to cache each unique
2132 // result since we don't know when the client will stop referring to a 2141 // result since we don't know when the client will stop referring to a
2133 // previous one it queries. 2142 // previous one it queries.
2134 GLStringMap::iterator it = gl_strings_.find(name); 2143 GLStringMap::iterator it = gl_strings_.find(name);
(...skipping 1154 matching lines...) Expand 10 before | Expand all | Expand 10 after
3289 helper_->GenMailboxCHROMIUM(kResultBucketId); 3298 helper_->GenMailboxCHROMIUM(kResultBucketId);
3290 3299
3291 std::vector<GLbyte> result; 3300 std::vector<GLbyte> result;
3292 GetBucketContents(kResultBucketId, &result); 3301 GetBucketContents(kResultBucketId, &result);
3293 3302
3294 std::copy(result.begin(), result.end(), mailbox); 3303 std::copy(result.begin(), result.end(), mailbox);
3295 } 3304 }
3296 3305
3297 } // namespace gles2 3306 } // namespace gles2
3298 } // namespace gpu 3307 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/gles2_c_lib_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