| OLD | NEW |
| 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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 switch (target()) { | 106 switch (target()) { |
| 107 case GL_GET_ERROR_QUERY_CHROMIUM: | 107 case GL_GET_ERROR_QUERY_CHROMIUM: |
| 108 // To nothing on begin for error queries. | 108 // To nothing on begin for error queries. |
| 109 break; | 109 break; |
| 110 case GL_LATENCY_QUERY_CHROMIUM: | 110 case GL_LATENCY_QUERY_CHROMIUM: |
| 111 client_begin_time_us_ = MicrosecondsSinceOriginOfTime(); | 111 client_begin_time_us_ = MicrosecondsSinceOriginOfTime(); |
| 112 // tell service about id, shared memory and count | 112 // tell service about id, shared memory and count |
| 113 gl->helper()->BeginQueryEXT(target(), id(), shm_id(), shm_offset()); | 113 gl->helper()->BeginQueryEXT(target(), id(), shm_id(), shm_offset()); |
| 114 break; | 114 break; |
| 115 case GL_ASYNC_PIXEL_TRANSFERS_COMPLETED_CHROMIUM: | 115 case GL_ASYNC_PIXEL_TRANSFERS_COMPLETED_CHROMIUM: |
| 116 // tell service about id, shared memory and count | 116 case GL_ASYNC_READ_PIXELS_COMPLETED_CHROMIUM: |
| 117 gl->helper()->BeginQueryEXT(target(), id(), shm_id(), shm_offset()); | |
| 118 break; | |
| 119 default: | 117 default: |
| 120 // tell service about id, shared memory and count | 118 // tell service about id, shared memory and count |
| 121 gl->helper()->BeginQueryEXT(target(), id(), shm_id(), shm_offset()); | 119 gl->helper()->BeginQueryEXT(target(), id(), shm_id(), shm_offset()); |
| 122 break; | 120 break; |
| 123 } | 121 } |
| 124 } | 122 } |
| 125 | 123 |
| 126 void QueryTracker::Query::End(GLES2Implementation* gl) { | 124 void QueryTracker::Query::End(GLES2Implementation* gl) { |
| 127 switch (target()) { | 125 switch (target()) { |
| 128 case GL_GET_ERROR_QUERY_CHROMIUM: { | 126 case GL_GET_ERROR_QUERY_CHROMIUM: { |
| (...skipping 29 matching lines...) Expand all Loading... |
| 158 case GL_COMMANDS_ISSUED_CHROMIUM: | 156 case GL_COMMANDS_ISSUED_CHROMIUM: |
| 159 result_ = std::min(info_.sync->result, | 157 result_ = std::min(info_.sync->result, |
| 160 static_cast<uint64>(0xFFFFFFFFL)); | 158 static_cast<uint64>(0xFFFFFFFFL)); |
| 161 break; | 159 break; |
| 162 case GL_LATENCY_QUERY_CHROMIUM: | 160 case GL_LATENCY_QUERY_CHROMIUM: |
| 163 GPU_DCHECK(info_.sync->result >= client_begin_time_us_); | 161 GPU_DCHECK(info_.sync->result >= client_begin_time_us_); |
| 164 result_ = std::min(info_.sync->result - client_begin_time_us_, | 162 result_ = std::min(info_.sync->result - client_begin_time_us_, |
| 165 static_cast<uint64>(0xFFFFFFFFL)); | 163 static_cast<uint64>(0xFFFFFFFFL)); |
| 166 break; | 164 break; |
| 167 case GL_ASYNC_PIXEL_TRANSFERS_COMPLETED_CHROMIUM: | 165 case GL_ASYNC_PIXEL_TRANSFERS_COMPLETED_CHROMIUM: |
| 168 result_ = info_.sync->result; | 166 case GL_ASYNC_READ_PIXELS_COMPLETED_CHROMIUM: |
| 169 break; | |
| 170 default: | 167 default: |
| 171 result_ = info_.sync->result; | 168 result_ = info_.sync->result; |
| 172 break; | 169 break; |
| 173 } | 170 } |
| 174 state_ = kComplete; | 171 state_ = kComplete; |
| 175 } else { | 172 } else { |
| 176 if (!flushed_) { | 173 if (!flushed_) { |
| 177 // TODO(gman): We could reduce the number of flushes by having a | 174 // TODO(gman): We could reduce the number of flushes by having a |
| 178 // flush count, recording that count at the time we insert the | 175 // flush count, recording that count at the time we insert the |
| 179 // EndQuery command and then only flushing here if we've have not | 176 // EndQuery command and then only flushing here if we've have not |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 delete query; | 229 delete query; |
| 233 } | 230 } |
| 234 } | 231 } |
| 235 | 232 |
| 236 void QueryTracker::Shrink() { | 233 void QueryTracker::Shrink() { |
| 237 query_sync_manager_.Shrink(); | 234 query_sync_manager_.Shrink(); |
| 238 } | 235 } |
| 239 | 236 |
| 240 } // namespace gles2 | 237 } // namespace gles2 |
| 241 } // namespace gpu | 238 } // namespace gpu |
| OLD | NEW |