Index: gpu/command_buffer/client/gles2_implementation.cc |
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc |
index 43b88a09f0fd78da586f001cf6166e380d9f7667..cf4b54d7ab2c76c80bc69989dcc57f7e4269874a 100644 |
--- a/gpu/command_buffer/client/gles2_implementation.cc |
+++ b/gpu/command_buffer/client/gles2_implementation.cc |
@@ -3609,10 +3609,29 @@ void GLES2Implementation::TraceBeginCHROMIUM(const char* name) { |
GPU_CLIENT_SINGLE_THREAD_CHECK(); |
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTraceBeginCHROMIUM(" |
<< name << ")"); |
- |
+ if (current_trace_name_.get() != NULL) { |
jonathan.backer
2012/12/03 18:29:32
|if (current_trace_name_)| ?
dsinclair
2012/12/03 21:40:04
Done.
|
+ SetGLError(GL_INVALID_OPERATION, "glTraceBeginCHROMIUM", |
+ "trace already running"); |
+ return; |
+ } |
+ TRACE_EVENT_COPY_ASYNC_BEGIN0("gpu", name, this); |
SetBucketAsCString(kResultBucketId, name); |
helper_->TraceBeginCHROMIUM(kResultBucketId); |
helper_->SetBucketSize(kResultBucketId, 0); |
+ current_trace_name_.reset(new std::string(name)); |
+} |
+ |
+void GLES2Implementation::TraceEndCHROMIUM() { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTraceEndCHROMIUM(" << ")"); |
+ if (current_trace_name_.get() == NULL) { |
jonathan.backer
2012/12/03 18:29:32
I think that we can just |!current_trace_name_|
dsinclair
2012/12/03 21:40:04
Done.
|
+ SetGLError(GL_INVALID_OPERATION, "glTraceEndCHROMIUM", |
+ "missing begin trace"); |
+ return; |
+ } |
+ helper_->TraceEndCHROMIUM(); |
+ TRACE_EVENT_COPY_ASYNC_END0("gpu", current_trace_name_->c_str(), this); |
+ current_trace_name_.reset(NULL); |
} |
void* GLES2Implementation::MapBufferCHROMIUM(GLuint target, GLenum access) { |