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

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 787803004: Update from https://crrev.com/307664 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebase. Created 6 years 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 side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 919d8d8c8eb610fb7dbc303ab27aedaf49e55bc0..f97710e86a61009ce7b6b54517f63040d5f8cb3b 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -880,6 +880,9 @@ class GLES2DecoderImpl : public GLES2Decoder,
// Wrapper for SwapBuffers.
void DoSwapBuffers();
+ // Wrapper for SwapInterval.
+ void DoSwapInterval(int interval);
+
// Wrapper for CopyTexSubImage2D.
void DoCopyTexSubImage2D(
GLenum target,
@@ -1869,6 +1872,8 @@ class GLES2DecoderImpl : public GLES2Decoder,
scoped_ptr<GPUTracer> gpu_tracer_;
scoped_ptr<GPUStateTracer> gpu_state_tracer_;
const unsigned char* cb_command_trace_category_;
+ const unsigned char* gpu_decoder_category_;
+ const unsigned char* gpu_group_marker_category_;
int gpu_trace_level_;
bool gpu_trace_commands_;
bool gpu_debug_commands_;
@@ -2384,6 +2389,10 @@ GLES2DecoderImpl::GLES2DecoderImpl(ContextGroup* group)
.texsubimage2d_faster_than_teximage2d),
cb_command_trace_category_(TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(
TRACE_DISABLED_BY_DEFAULT("cb_command"))),
+ gpu_decoder_category_(TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(
+ TRACE_DISABLED_BY_DEFAULT("gpu_decoder"))),
+ gpu_group_marker_category_(TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(
+ TRACE_DISABLED_BY_DEFAULT("gpu_group_marker"))),
gpu_trace_level_(2),
gpu_trace_commands_(false),
gpu_debug_commands_(false),
@@ -3481,7 +3490,7 @@ Logger* GLES2DecoderImpl::GetLogger() {
void GLES2DecoderImpl::BeginDecoding() {
gpu_tracer_->BeginDecoding();
- gpu_trace_commands_ = gpu_tracer_->IsTracing();
+ gpu_trace_commands_ = gpu_tracer_->IsTracing() && *gpu_decoder_category_;
gpu_debug_commands_ = log_commands() || debug() || gpu_trace_commands_ ||
(*cb_command_trace_category_ != 0);
}
@@ -3958,7 +3967,9 @@ error::Error GLES2DecoderImpl::DoCommandsImpl(unsigned int num_commands,
if (DebugImpl && gpu_trace_commands_) {
if (CMD_FLAG_GET_TRACE_LEVEL(info.cmd_flags) <= gpu_trace_level_) {
doing_gpu_trace = true;
- gpu_tracer_->Begin(GetCommandName(command), kTraceDecoder);
+ gpu_tracer_->Begin(TRACE_DISABLED_BY_DEFAULT("gpu_decoder"),
+ GetCommandName(command),
+ kTraceDecoder);
}
}
@@ -9724,6 +9735,11 @@ void GLES2DecoderImpl::DoSwapBuffers() {
ExitCommandProcessingEarly();
}
+void GLES2DecoderImpl::DoSwapInterval(int interval)
+{
+ context_->SetSwapInterval(interval);
+}
+
error::Error GLES2DecoderImpl::HandleEnableFeatureCHROMIUM(
uint32 immediate_data_size,
const void* cmd_data) {
@@ -10960,12 +10976,17 @@ void GLES2DecoderImpl::DoPushGroupMarkerEXT(
}
std::string name = length ? std::string(marker, length) : std::string(marker);
debug_marker_manager_.PushGroup(name);
- gpu_tracer_->Begin(name, kTraceGroupMarker);
+ if (*gpu_group_marker_category_) {
+ gpu_tracer_->Begin(TRACE_DISABLED_BY_DEFAULT("gpu_group_marker"), name,
+ kTraceGroupMarker);
+ }
}
void GLES2DecoderImpl::DoPopGroupMarkerEXT(void) {
debug_marker_manager_.PopGroup();
- gpu_tracer_->End(kTraceGroupMarker);
+ if (*gpu_group_marker_category_) {
+ gpu_tracer_->End(kTraceGroupMarker);
+ }
}
void GLES2DecoderImpl::DoBindTexImage2DCHROMIUM(
@@ -11059,16 +11080,23 @@ error::Error GLES2DecoderImpl::HandleTraceBeginCHROMIUM(
const void* cmd_data) {
const gles2::cmds::TraceBeginCHROMIUM& c =
*static_cast<const gles2::cmds::TraceBeginCHROMIUM*>(cmd_data);
- Bucket* bucket = GetBucket(c.bucket_id);
- if (!bucket || bucket->size() == 0) {
+ Bucket* category_bucket = GetBucket(c.category_bucket_id);
+ Bucket* name_bucket = GetBucket(c.name_bucket_id);
+ if (!category_bucket || category_bucket->size() == 0 ||
+ !name_bucket || name_bucket->size() == 0) {
return error::kInvalidArguments;
}
- std::string command_name;
- if (!bucket->GetAsString(&command_name)) {
+
+ std::string category_name;
+ std::string trace_name;
+ if (!category_bucket->GetAsString(&category_name) ||
+ !name_bucket->GetAsString(&trace_name)) {
return error::kInvalidArguments;
}
- TRACE_EVENT_COPY_ASYNC_BEGIN0("gpu", command_name.c_str(), this);
- if (!gpu_tracer_->Begin(command_name, kTraceCHROMIUM)) {
+
+ TRACE_EVENT_COPY_ASYNC_BEGIN0(category_name.c_str(), trace_name.c_str(),
+ this);
+ if (!gpu_tracer_->Begin(category_name, trace_name, kTraceCHROMIUM)) {
LOCAL_SET_GL_ERROR(
GL_INVALID_OPERATION,
"glTraceBeginCHROMIUM", "unable to create begin trace");
@@ -11078,13 +11106,15 @@ error::Error GLES2DecoderImpl::HandleTraceBeginCHROMIUM(
}
void GLES2DecoderImpl::DoTraceEndCHROMIUM() {
- if (gpu_tracer_->CurrentName().empty()) {
+ if (gpu_tracer_->CurrentCategory().empty() ||
+ gpu_tracer_->CurrentName().empty()) {
LOCAL_SET_GL_ERROR(
GL_INVALID_OPERATION,
"glTraceEndCHROMIUM", "no trace begin found");
return;
}
- TRACE_EVENT_COPY_ASYNC_END0("gpu", gpu_tracer_->CurrentName().c_str(), this);
+ TRACE_EVENT_COPY_ASYNC_END0(gpu_tracer_->CurrentCategory().c_str(),
+ gpu_tracer_->CurrentName().c_str(), this);
gpu_tracer_->End(kTraceCHROMIUM);
}
« no previous file with comments | « gpu/command_buffer/common/gles2_cmd_ids_autogen.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698