Index: cc/output/output_surface.h |
diff --git a/cc/output/output_surface.h b/cc/output/output_surface.h |
index 42498c8451e12594d0d8e377cacfefd9456b9b06..d3eca54fa83d98023e0c71e623785a5fd8422d8c 100644 |
--- a/cc/output/output_surface.h |
+++ b/cc/output/output_surface.h |
@@ -12,6 +12,7 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
#include "cc/base/cc_export.h" |
+#include "cc/base/rolling_time_delta_history.h" |
#include "cc/output/context_provider.h" |
#include "cc/output/overlay_candidate_validator.h" |
#include "cc/output/software_output_device.h" |
@@ -127,6 +128,10 @@ class CC_EXPORT OutputSurface { |
bool HasClient() { return !!client_; } |
+ // Returns an estimate of the current GPU latency. When only a software |
+ // device is present, returns 0. |
+ base::TimeDelta GpuLatencyEstimate(); |
+ |
// Get the class capable of informing cc of hardware overlay capability. |
OverlayCandidateValidator* overlay_candidate_validator() const { |
return overlay_candidate_validator_.get(); |
@@ -169,11 +174,16 @@ class CC_EXPORT OutputSurface { |
void SetUpContext3d(); |
void ResetContext3d(); |
void SetMemoryPolicy(const ManagedMemoryPolicy& policy); |
+ void UpdateAndMeasureGpuLatency(); |
bool external_stencil_test_enabled_; |
base::WeakPtrFactory<OutputSurface> weak_ptr_factory_; |
+ std::deque<unsigned> available_gpu_latency_query_ids_; |
+ std::deque<unsigned> pending_gpu_latency_query_ids_; |
+ RollingTimeDeltaHistory gpu_latency_history_; |
+ |
DISALLOW_COPY_AND_ASSIGN(OutputSurface); |
}; |