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

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

Issue 2025223002: Remove invalid fence order DCHECKs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: also remove DCHECK from GpuCommandBufferStub::OnCreateImage Created 4 years, 6 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
« no previous file with comments | « no previous file | gpu/ipc/service/gpu_command_buffer_stub.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/service/sync_point_manager.h" 5 #include "gpu/command_buffer/service/sync_point_manager.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 // Already released, run the callback now. 225 // Already released, run the callback now.
226 callback.Run(); 226 callback.Run();
227 return true; 227 return true;
228 } 228 }
229 229
230 void SyncPointClientState::ReleaseFenceSync(uint64_t release) { 230 void SyncPointClientState::ReleaseFenceSync(uint64_t release) {
231 // Call callbacks without the lock to avoid possible deadlocks. 231 // Call callbacks without the lock to avoid possible deadlocks.
232 std::vector<base::Closure> callback_list; 232 std::vector<base::Closure> callback_list;
233 { 233 {
234 base::AutoLock auto_lock(fence_sync_lock_); 234 base::AutoLock auto_lock(fence_sync_lock_);
235 DCHECK_GT(release, fence_sync_release_); 235 DLOG_IF(ERROR, release <= fence_sync_release_)
236 << "Client submitted fence releases out of order.";
236 237
237 fence_sync_release_ = release; 238 fence_sync_release_ = release;
238 while (!release_callback_queue_.empty() && 239 while (!release_callback_queue_.empty() &&
239 release_callback_queue_.top().release_count <= release) { 240 release_callback_queue_.top().release_count <= release) {
240 callback_list.push_back(release_callback_queue_.top().callback_closure); 241 callback_list.push_back(release_callback_queue_.top().callback_closure);
241 release_callback_queue_.pop(); 242 release_callback_queue_.pop();
242 } 243 }
243 } 244 }
244 245
245 for (const base::Closure& closure : callback_list) { 246 for (const base::Closure& closure : callback_list) {
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 DCHECK_LT(static_cast<size_t>(namespace_id), arraysize(client_maps_)); 442 DCHECK_LT(static_cast<size_t>(namespace_id), arraysize(client_maps_));
442 443
443 base::AutoLock auto_lock(client_maps_lock_); 444 base::AutoLock auto_lock(client_maps_lock_);
444 ClientMap& client_map = client_maps_[namespace_id]; 445 ClientMap& client_map = client_maps_[namespace_id];
445 ClientMap::iterator it = client_map.find(client_id); 446 ClientMap::iterator it = client_map.find(client_id);
446 DCHECK(it != client_map.end()); 447 DCHECK(it != client_map.end());
447 client_map.erase(it); 448 client_map.erase(it);
448 } 449 }
449 450
450 } // namespace gpu 451 } // namespace gpu
OLDNEW
« no previous file with comments | « no previous file | gpu/ipc/service/gpu_command_buffer_stub.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698