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

Unified Diff: cc/output/gl_renderer.h

Issue 2612023002: cc: Implement overdraw feedback debugging feature. (Closed)
Patch Set: tracing support 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..993ef4483144cf69d1744b1b8639d6433c30cfbc 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 frambuffer.
+ 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_;
Daniele Castagna 2017/01/09 18:53:06 Why don't you just use std::bitset here?
Daniele Castagna 2017/01/09 18:53:06 Why don't you just use std::bitset here?
reveman 2017/01/10 23:52:01 That requires knowing the number of overdraw categ
reveman 2017/01/11 03:22:02 Fyi, follow up patch that uses SAMPLES_PASSED_ARB
+ unsigned offscreen_stencil_renderbuffer_id_ = 0;
+ gfx::Size offscreen_stencil_renderbuffer_size_;
+ struct PendingOverdrawQuery;
+ std::deque<std::unique_ptr<PendingOverdrawQuery>> pending_overdraw_queries_;
+
DISALLOW_COPY_AND_ASSIGN(GLRenderer);
};

Powered by Google App Engine
This is Rietveld 408576698