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

Unified Diff: cc/output/gl_renderer.h

Issue 2612023002: cc: Implement overdraw feedback debugging feature. (Closed)
Patch Set: fix typo in comment Created 3 years, 11 months 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: cc/output/gl_renderer.h
diff --git a/cc/output/gl_renderer.h b/cc/output/gl_renderer.h
index 2af2c3091e04adaea2d2c0b298383a841be91659..553f346814c91a746bdbf5efd3cbc3637ca53c03 100644
--- a/cc/output/gl_renderer.h
+++ b/cc/output/gl_renderer.h
@@ -6,6 +6,7 @@
#define CC_OUTPUT_GL_RENDERER_H_
#include <deque>
+#include <set>
#include <vector>
#include "base/cancelable_callback.h"
@@ -270,6 +271,14 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
void ScheduleRenderPassDrawQuad(const CALayerOverlay* ca_layer_overlay,
DrawingFrame* external_frame);
+ // Setup/flush all pending overdraw feedback to framebuffer.
+ void SetupOverdrawFeedback();
+ void FlushOverdrawFeedback(const DrawingFrame* frame,
+ const gfx::Rect& output_rect);
+ // Process overdraw feedback from query.
+ void OverdrawFeedback(unsigned query, int category, base::Closure barrier);
+ void UpdateOverdrawCounter() const;
+
using OverlayResourceLock =
std::unique_ptr<ResourceProvider::ScopedReadLockGL>;
using OverlayResourceLockList = std::vector<OverlayResourceLock>;
@@ -543,6 +552,13 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
BoundGeometry bound_geometry_;
ColorLUTCache color_lut_cache_;
+
+ std::set<int> current_overdraw_;
danakj 2017/01/12 00:42:58 set is very slow, is there a better structure you
reveman 2017/01/13 01:27:43 FYI, this will become a map in a follow up patch w
+ unsigned offscreen_stencil_renderbuffer_id_ = 0;
+ gfx::Size offscreen_stencil_renderbuffer_size_;
+ struct PendingOverdrawQuery;
+ std::deque<std::unique_ptr<PendingOverdrawQuery>> pending_overdraw_queries_;
danakj 2017/01/12 00:42:58 deque is very costly for memory https://bugs.chrom
reveman 2017/01/13 01:27:43 Removed this completely from latest version of the
+
DISALLOW_COPY_AND_ASSIGN(GLRenderer);
};

Powered by Google App Engine
This is Rietveld 408576698