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 // A class to emulate GLES2 over command buffers. | 5 // A class to emulate GLES2 over command buffers. |
6 | 6 |
7 #include "gpu/command_buffer/client/gles2_implementation.h" | 7 #include "gpu/command_buffer/client/gles2_implementation.h" |
8 | 8 |
9 #include <GLES2/gl2ext.h> | 9 #include <GLES2/gl2ext.h> |
10 #include <GLES2/gl2extchromium.h> | 10 #include <GLES2/gl2extchromium.h> |
(...skipping 3412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3423 length ? std::string(marker, length) : std::string(marker)); | 3423 length ? std::string(marker, length) : std::string(marker)); |
3424 } | 3424 } |
3425 | 3425 |
3426 void GLES2Implementation::PopGroupMarkerEXT() { | 3426 void GLES2Implementation::PopGroupMarkerEXT() { |
3427 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 3427 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
3428 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glPopGroupMarkerEXT()"); | 3428 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glPopGroupMarkerEXT()"); |
3429 helper_->PopGroupMarkerEXT(); | 3429 helper_->PopGroupMarkerEXT(); |
3430 debug_marker_manager_.PopGroup(); | 3430 debug_marker_manager_.PopGroup(); |
3431 } | 3431 } |
3432 | 3432 |
3433 void GLES2Implementation::TraceBeginCHROMIUM(const char* name) { | 3433 void GLES2Implementation::TraceBeginCHROMIUM( |
| 3434 const char* category_name, const char* trace_name) { |
3434 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 3435 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
3435 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTraceBeginCHROMIUM(" | 3436 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTraceBeginCHROMIUM(" |
3436 << name << ")"); | 3437 << category_name << ", " << trace_name << ")"); |
3437 if (current_trace_name_.get()) { | 3438 if (current_trace_category_.get() || current_trace_name_.get()) { |
3438 SetGLError(GL_INVALID_OPERATION, "glTraceBeginCHROMIUM", | 3439 SetGLError(GL_INVALID_OPERATION, "glTraceBeginCHROMIUM", |
3439 "trace already running"); | 3440 "trace already running"); |
3440 return; | 3441 return; |
3441 } | 3442 } |
3442 TRACE_EVENT_COPY_ASYNC_BEGIN0("gpu", name, this); | 3443 TRACE_EVENT_COPY_ASYNC_BEGIN0(category_name, trace_name, this); |
3443 SetBucketAsCString(kResultBucketId, name); | 3444 SetBucketAsCString(kResultBucketId, category_name); |
3444 helper_->TraceBeginCHROMIUM(kResultBucketId); | 3445 SetBucketAsCString(kResultBucketId + 1, category_name); |
| 3446 helper_->TraceBeginCHROMIUM(kResultBucketId, kResultBucketId + 1); |
3445 helper_->SetBucketSize(kResultBucketId, 0); | 3447 helper_->SetBucketSize(kResultBucketId, 0); |
3446 current_trace_name_.reset(new std::string(name)); | 3448 helper_->SetBucketSize(kResultBucketId + 1, 0); |
| 3449 current_trace_category_.reset(new std::string(category_name)); |
| 3450 current_trace_name_.reset(new std::string(trace_name)); |
3447 } | 3451 } |
3448 | 3452 |
3449 void GLES2Implementation::TraceEndCHROMIUM() { | 3453 void GLES2Implementation::TraceEndCHROMIUM() { |
3450 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 3454 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
3451 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTraceEndCHROMIUM(" << ")"); | 3455 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTraceEndCHROMIUM(" << ")"); |
3452 if (!current_trace_name_.get()) { | 3456 if (!current_trace_category_.get() || !current_trace_name_.get()) { |
3453 SetGLError(GL_INVALID_OPERATION, "glTraceEndCHROMIUM", | 3457 SetGLError(GL_INVALID_OPERATION, "glTraceEndCHROMIUM", |
3454 "missing begin trace"); | 3458 "missing begin trace"); |
3455 return; | 3459 return; |
3456 } | 3460 } |
3457 helper_->TraceEndCHROMIUM(); | 3461 helper_->TraceEndCHROMIUM(); |
3458 TRACE_EVENT_COPY_ASYNC_END0("gpu", current_trace_name_->c_str(), this); | 3462 TRACE_EVENT_COPY_ASYNC_END0(current_trace_category_->c_str(), |
| 3463 current_trace_name_->c_str(), this); |
| 3464 current_trace_category_.reset(); |
3459 current_trace_name_.reset(); | 3465 current_trace_name_.reset(); |
3460 } | 3466 } |
3461 | 3467 |
3462 void* GLES2Implementation::MapBufferCHROMIUM(GLuint target, GLenum access) { | 3468 void* GLES2Implementation::MapBufferCHROMIUM(GLuint target, GLenum access) { |
3463 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 3469 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
3464 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glMapBufferCHROMIUM(" | 3470 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glMapBufferCHROMIUM(" |
3465 << target << ", " << GLES2Util::GetStringEnum(access) << ")"); | 3471 << target << ", " << GLES2Util::GetStringEnum(access) << ")"); |
3466 switch (target) { | 3472 switch (target) { |
3467 case GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM: | 3473 case GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM: |
3468 if (access != GL_READ_ONLY) { | 3474 if (access != GL_READ_ONLY) { |
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3925 return true; | 3931 return true; |
3926 } | 3932 } |
3927 | 3933 |
3928 // Include the auto-generated part of this file. We split this because it means | 3934 // Include the auto-generated part of this file. We split this because it means |
3929 // we can easily edit the non-auto generated parts right here in this file | 3935 // we can easily edit the non-auto generated parts right here in this file |
3930 // instead of having to edit some template or the code generator. | 3936 // instead of having to edit some template or the code generator. |
3931 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" | 3937 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" |
3932 | 3938 |
3933 } // namespace gles2 | 3939 } // namespace gles2 |
3934 } // namespace gpu | 3940 } // namespace gpu |
OLD | NEW |