| Index: content/common/gpu/gpu_command_buffer_stub.cc
|
| diff --git a/content/common/gpu/gpu_command_buffer_stub.cc b/content/common/gpu/gpu_command_buffer_stub.cc
|
| index eb8904e3881f8c5c9527c60f16e057b9e798c364..d6706af571aae3d8c7e3ab0d4e5639932e59256a 100644
|
| --- a/content/common/gpu/gpu_command_buffer_stub.cc
|
| +++ b/content/common/gpu/gpu_command_buffer_stub.cc
|
| @@ -29,6 +29,7 @@
|
| #include "gpu/command_buffer/service/gl_state_restorer_impl.h"
|
| #include "gpu/command_buffer/service/logger.h"
|
| #include "gpu/command_buffer/service/memory_tracking.h"
|
| +#include "gpu/command_buffer/service/query_manager.h"
|
| #include "ui/gl/gl_bindings.h"
|
| #include "ui/gl/gl_switches.h"
|
|
|
| @@ -210,6 +211,8 @@ bool GpuCommandBufferStub::OnMessageReceived(const IPC::Message& message) {
|
| OnRetireSyncPoint)
|
| IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalSyncPoint,
|
| OnSignalSyncPoint)
|
| + IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SignalQuery,
|
| + OnSignalQuery)
|
| IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SendClientManagedMemoryStats,
|
| OnReceivedClientManagedMemoryStats)
|
| IPC_MESSAGE_HANDLER(
|
| @@ -814,6 +817,26 @@ void GpuCommandBufferStub::OnSignalSyncPointAck(uint32 id) {
|
| Send(new GpuCommandBufferMsg_SignalSyncPointAck(route_id_, id));
|
| }
|
|
|
| +void GpuCommandBufferStub::OnSignalQuery(uint32 query_id, uint32 id) {
|
| + if (decoder_) {
|
| + gpu::gles2::QueryManager* query_manager = decoder_->GetQueryManager();
|
| + if (query_manager) {
|
| + gpu::gles2::QueryManager::Query* query =
|
| + query_manager->GetQuery(query_id);
|
| + if (query) {
|
| + query->AddCallback(
|
| + base::Bind(&GpuCommandBufferStub::OnSignalSyncPointAck,
|
| + this->AsWeakPtr(),
|
| + id));
|
| + return;
|
| + }
|
| + }
|
| + }
|
| + // Something went wrong, run callback immediately.
|
| + OnSignalSyncPointAck(id);
|
| +}
|
| +
|
| +
|
| void GpuCommandBufferStub::OnReceivedClientManagedMemoryStats(
|
| const GpuManagedMemoryStats& stats) {
|
| TRACE_EVENT0(
|
|
|