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

Side by Side Diff: gpu/ipc/in_process_command_buffer.cc

Issue 2806163004: Plumbing input event latency reporting through Mus GPU. (Closed)
Patch Set: Removing commented out code. Created 3 years, 8 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 | « gpu/ipc/in_process_command_buffer.h ('k') | ppapi/proxy/ppapi_command_buffer_proxy.h » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/ipc/in_process_command_buffer.h" 5 #include "gpu/ipc/in_process_command_buffer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <queue> 10 #include <queue>
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 State state = command_buffer_->GetLastState(); 551 State state = command_buffer_->GetLastState();
552 if (state.generation - last_state_.generation < 0x80000000U) 552 if (state.generation - last_state_.generation < 0x80000000U)
553 last_state_ = state; 553 last_state_ = state;
554 } 554 }
555 555
556 void InProcessCommandBuffer::FlushOnGpuThread(int32_t put_offset) { 556 void InProcessCommandBuffer::FlushOnGpuThread(int32_t put_offset) {
557 CheckSequencedThread(); 557 CheckSequencedThread();
558 ScopedEvent handle_flush(&flush_event_); 558 ScopedEvent handle_flush(&flush_event_);
559 base::AutoLock lock(command_buffer_lock_); 559 base::AutoLock lock(command_buffer_lock_);
560 560
561 if (ui::LatencyInfo::Verify(latency_info_,
piman 2017/04/10 23:50:34 latency_info_ is written on another thread (withou
mfomitchev 2017/04/13 03:00:00 Done.
562 "InProcessCommandBuffer::FlushOnGpuThread") &&
563 !latency_info_callback_.is_null()) {
564 latency_info_callback_.Run(latency_info_);
565 }
566 latency_info_.clear();
567
561 command_buffer_->Flush(put_offset); 568 command_buffer_->Flush(put_offset);
562 // Update state before signaling the flush event. 569 // Update state before signaling the flush event.
563 UpdateLastStateOnGpuThread(); 570 UpdateLastStateOnGpuThread();
564 571
565 // If we've processed all pending commands but still have pending queries, 572 // If we've processed all pending commands but still have pending queries,
566 // pump idle work until the query is passed. 573 // pump idle work until the query is passed.
567 if (put_offset == command_buffer_->GetLastState().get_offset && 574 if (put_offset == command_buffer_->GetLastState().get_offset &&
568 (executor_->HasMoreIdleWork() || executor_->HasPendingQueries())) { 575 (executor_->HasMoreIdleWork() || executor_->HasPendingQueries())) {
569 ScheduleDelayedWorkOnGpuThread(); 576 ScheduleDelayedWorkOnGpuThread();
570 } 577 }
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 base::Unretained(this), sync_token, WrapCallback(callback))); 991 base::Unretained(this), sync_token, WrapCallback(callback)));
985 } 992 }
986 993
987 void InProcessCommandBuffer::WaitSyncTokenHint(const SyncToken& sync_token) {} 994 void InProcessCommandBuffer::WaitSyncTokenHint(const SyncToken& sync_token) {}
988 995
989 bool InProcessCommandBuffer::CanWaitUnverifiedSyncToken( 996 bool InProcessCommandBuffer::CanWaitUnverifiedSyncToken(
990 const SyncToken& sync_token) { 997 const SyncToken& sync_token) {
991 return sync_token.namespace_id() == GetNamespaceID(); 998 return sync_token.namespace_id() == GetNamespaceID();
992 } 999 }
993 1000
1001 void InProcessCommandBuffer::AddLatencyInfo(
1002 const std::vector<ui::LatencyInfo>& latency_info) {
1003 latency_info_.insert(latency_info_.end(), latency_info.begin(),
1004 latency_info.end());
1005 }
1006
994 #if defined(OS_WIN) 1007 #if defined(OS_WIN)
995 void InProcessCommandBuffer::DidCreateAcceleratedSurfaceChildWindow( 1008 void InProcessCommandBuffer::DidCreateAcceleratedSurfaceChildWindow(
996 SurfaceHandle parent_window, 1009 SurfaceHandle parent_window,
997 SurfaceHandle child_window) { 1010 SurfaceHandle child_window) {
998 ::SetParent(child_window, parent_window); 1011 ::SetParent(child_window, parent_window);
999 } 1012 }
1000 #endif 1013 #endif
1001 1014
1002 void InProcessCommandBuffer::DidSwapBuffersComplete( 1015 void InProcessCommandBuffer::DidSwapBuffersComplete(
1003 SwapBuffersCompleteParams params) { 1016 SwapBuffersCompleteParams params) {
1004 if (!origin_task_runner_) { 1017 if (!origin_task_runner_) {
1005 DidSwapBuffersCompleteOnOriginThread(std::move(params)); 1018 DidSwapBuffersCompleteOnOriginThread(std::move(params));
1006 return; 1019 return;
1007 } 1020 }
1008 origin_task_runner_->PostTask( 1021 origin_task_runner_->PostTask(
1009 FROM_HERE, 1022 FROM_HERE,
1010 base::Bind(&InProcessCommandBuffer::DidSwapBuffersCompleteOnOriginThread, 1023 base::Bind(&InProcessCommandBuffer::DidSwapBuffersCompleteOnOriginThread,
1011 client_thread_weak_ptr_, base::Passed(&params))); 1024 client_thread_weak_ptr_, base::Passed(&params)));
1012 } 1025 }
1013 1026
1014 const gles2::FeatureInfo* InProcessCommandBuffer::GetFeatureInfo() const { 1027 const gles2::FeatureInfo* InProcessCommandBuffer::GetFeatureInfo() const {
1015 return context_group_->feature_info(); 1028 return context_group_->feature_info();
1016 } 1029 }
1017 1030
1018 void InProcessCommandBuffer::SetLatencyInfoCallback( 1031 void InProcessCommandBuffer::SetLatencyInfoCallback(
1019 const LatencyInfoCallback& callback) { 1032 const LatencyInfoCallback& callback) {
1020 // TODO(fsamuel): Implement this. 1033 latency_info_callback_ = callback;
1021 } 1034 }
1022 1035
1023 void InProcessCommandBuffer::UpdateVSyncParameters(base::TimeTicks timebase, 1036 void InProcessCommandBuffer::UpdateVSyncParameters(base::TimeTicks timebase,
1024 base::TimeDelta interval) { 1037 base::TimeDelta interval) {
1025 if (!origin_task_runner_) { 1038 if (!origin_task_runner_) {
1026 UpdateVSyncParametersOnOriginThread(timebase, interval); 1039 UpdateVSyncParametersOnOriginThread(timebase, interval);
1027 return; 1040 return;
1028 } 1041 }
1029 origin_task_runner_->PostTask( 1042 origin_task_runner_->PostTask(
1030 FROM_HERE, 1043 FROM_HERE,
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1124 return wrapped_callback; 1137 return wrapped_callback;
1125 } 1138 }
1126 1139
1127 InProcessCommandBuffer::GpuTask::GpuTask(const base::Closure& callback, 1140 InProcessCommandBuffer::GpuTask::GpuTask(const base::Closure& callback,
1128 uint32_t order_number) 1141 uint32_t order_number)
1129 : callback(callback), order_number(order_number) {} 1142 : callback(callback), order_number(order_number) {}
1130 1143
1131 InProcessCommandBuffer::GpuTask::~GpuTask() {} 1144 InProcessCommandBuffer::GpuTask::~GpuTask() {}
1132 1145
1133 } // namespace gpu 1146 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/ipc/in_process_command_buffer.h ('k') | ppapi/proxy/ppapi_command_buffer_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698