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

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

Issue 1199313008: Allowed GLES query target migration between binary occlusion types (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 #include "gpu/command_buffer/client/query_tracker.h" 5 #include "gpu/command_buffer/client/query_tracker.h"
6 6
7 #include <GLES2/gl2.h> 7 #include <GLES2/gl2.h>
8 #include <GLES2/gl2ext.h> 8 #include <GLES2/gl2ext.h>
9 #include <GLES2/gl2extchromium.h> 9 #include <GLES2/gl2extchromium.h>
10 10
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 } 199 }
200 } 200 }
201 return state_ == kComplete; 201 return state_ == kComplete;
202 } 202 }
203 203
204 uint32 QueryTracker::Query::GetResult() const { 204 uint32 QueryTracker::Query::GetResult() const {
205 DCHECK(state_ == kComplete || state_ == kUninitialized); 205 DCHECK(state_ == kComplete || state_ == kUninitialized);
206 return result_; 206 return result_;
207 } 207 }
208 208
209 bool QueryTracker::Query::UpdateTarget(GLenum target) {
210 switch (target_) {
211 // The boolean occlusion targets are interchangable.
212 case GL_ANY_SAMPLES_PASSED:
213 case GL_ANY_SAMPLES_PASSED_CONSERVATIVE:
214 if (target == GL_ANY_SAMPLES_PASSED ||
215 target == GL_ANY_SAMPLES_PASSED_CONSERVATIVE) {
216 target_ = target;
217 return true;
218 };
219 return false;
220 // Otherwise target is finalized the first time beginQuery() is called.
221 default:
222 return target_ == target;
223 }
224 }
225
209 QueryTracker::QueryTracker(MappedMemoryManager* manager) 226 QueryTracker::QueryTracker(MappedMemoryManager* manager)
210 : query_sync_manager_(manager) { 227 : query_sync_manager_(manager) {
211 } 228 }
212 229
213 QueryTracker::~QueryTracker() { 230 QueryTracker::~QueryTracker() {
214 while (!queries_.empty()) { 231 while (!queries_.empty()) {
215 delete queries_.begin()->second; 232 delete queries_.begin()->second;
216 queries_.erase(queries_.begin()); 233 queries_.erase(queries_.begin());
217 } 234 }
218 while (!removed_queries_.empty()) { 235 while (!removed_queries_.empty()) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 } 289 }
273 290
274 query_sync_manager_.Free(query->info_); 291 query_sync_manager_.Free(query->info_);
275 it = removed_queries_.erase(it); 292 it = removed_queries_.erase(it);
276 delete query; 293 delete query;
277 } 294 }
278 } 295 }
279 296
280 } // namespace gles2 297 } // namespace gles2
281 } // namespace gpu 298 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/query_tracker.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698