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

Side by Side Diff: gpu/command_buffer/service/command_buffer_service.cc

Issue 7253052: Execute all GL commands up to the put offset reported by a flush. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "gpu/command_buffer/service/command_buffer_service.h" 5 #include "gpu/command_buffer/service/command_buffer_service.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/process_util.h" 10 #include "base/process_util.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 state.get_offset = get_offset_; 97 state.get_offset = get_offset_;
98 state.put_offset = put_offset_; 98 state.put_offset = put_offset_;
99 state.token = token_; 99 state.token = token_;
100 state.error = error_; 100 state.error = error_;
101 state.context_lost_reason = context_lost_reason_; 101 state.context_lost_reason = context_lost_reason_;
102 state.generation = ++generation_; 102 state.generation = ++generation_;
103 103
104 return state; 104 return state;
105 } 105 }
106 106
107 CommandBufferService::State CommandBufferService::GetLastState() {
108 return GetState();
109 }
110
107 CommandBufferService::State CommandBufferService::FlushSync( 111 CommandBufferService::State CommandBufferService::FlushSync(
108 int32 put_offset, int32 last_known_get) { 112 int32 put_offset, int32 last_known_get) {
109 if (put_offset < 0 || put_offset > num_entries_) { 113 if (put_offset < 0 || put_offset > num_entries_) {
110 error_ = gpu::error::kOutOfBounds; 114 error_ = gpu::error::kOutOfBounds;
111 return GetState(); 115 return GetState();
112 } 116 }
113 117
114 put_offset_ = put_offset; 118 put_offset_ = put_offset;
115 119
116 if (put_offset_change_callback_.get()) { 120 if (put_offset_change_callback_.get()) {
117 put_offset_change_callback_->Run(last_known_get == get_offset_); 121 put_offset_change_callback_->Run();
118 } 122 }
119 123
120 return GetState(); 124 return GetState();
121 } 125 }
122 126
123 void CommandBufferService::Flush(int32 put_offset) { 127 void CommandBufferService::Flush(int32 put_offset) {
124 if (put_offset < 0 || put_offset > num_entries_) { 128 if (put_offset < 0 || put_offset > num_entries_) {
125 error_ = gpu::error::kOutOfBounds; 129 error_ = gpu::error::kOutOfBounds;
126 return; 130 return;
127 } 131 }
128 132
129 put_offset_ = put_offset; 133 put_offset_ = put_offset;
130 134
131 if (put_offset_change_callback_.get()) { 135 if (put_offset_change_callback_.get()) {
132 put_offset_change_callback_->Run(false); 136 put_offset_change_callback_->Run();
133 } 137 }
134 } 138 }
135 139
136 void CommandBufferService::SetGetOffset(int32 get_offset) { 140 void CommandBufferService::SetGetOffset(int32 get_offset) {
137 DCHECK(get_offset >= 0 && get_offset < num_entries_); 141 DCHECK(get_offset >= 0 && get_offset < num_entries_);
138 get_offset_ = get_offset; 142 get_offset_ = get_offset;
139 } 143 }
140 144
141 int32 CommandBufferService::CreateTransferBuffer(size_t size, 145 int32 CommandBufferService::CreateTransferBuffer(size_t size,
142 int32 id_request) { 146 int32 id_request) {
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 parse_error_callback_->Run(); 258 parse_error_callback_->Run();
255 } 259 }
256 } 260 }
257 261
258 void CommandBufferService::SetContextLostReason( 262 void CommandBufferService::SetContextLostReason(
259 error::ContextLostReason reason) { 263 error::ContextLostReason reason) {
260 context_lost_reason_ = reason; 264 context_lost_reason_ = reason;
261 } 265 }
262 266
263 void CommandBufferService::SetPutOffsetChangeCallback( 267 void CommandBufferService::SetPutOffsetChangeCallback(
264 Callback1<bool>::Type* callback) { 268 Callback0::Type* callback) {
265 put_offset_change_callback_.reset(callback); 269 put_offset_change_callback_.reset(callback);
266 } 270 }
267 271
268 void CommandBufferService::SetParseErrorCallback( 272 void CommandBufferService::SetParseErrorCallback(
269 Callback0::Type* callback) { 273 Callback0::Type* callback) {
270 parse_error_callback_.reset(callback); 274 parse_error_callback_.reset(callback);
271 } 275 }
272 276
273 } // namespace gpu 277 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/command_buffer_service.h ('k') | gpu/command_buffer/service/common_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698