Add command line switches and about:flag to enable FPS indicator and compositor layer tree. (issue6581004)

142 views
Skip to first unread message

nd...@chromium.org

unread,
Feb 23, 2011, 4:00:04 PM2/23/11
to vang...@chromium.org, chromium...@chromium.org, dari...@chromium.org, bret...@chromium.org
Reviewers: Vangelis Kokkevis,

Description:
Add command line switches and about:flag to enable FPS indicator and
compositor
layer tree.

Intentionally did not add a flag for compositor-layer-tree. Can add one if
we
feel it is truly useful.

BUG=
TEST=

Please review this at http://codereview.chromium.org/6581004/

SVN Base: svn://svn.chromium.org/chrome/trunk/src

Affected files:
M chrome/app/generated_resources.grd
M chrome/browser/about_flags.cc
M chrome/browser/tab_contents/render_view_host_delegate_helper.cc
M chrome/common/chrome_switches.h
M chrome/common/chrome_switches.cc
M chrome/common/render_messages.cc
M webkit/glue/webpreferences.h
M webkit/glue/webpreferences.cc


Index: chrome/app/generated_resources.grd
diff --git a/chrome/app/generated_resources.grd
b/chrome/app/generated_resources.grd
index
2fb2ebaa471a8dbad50bc61b45516a859d68222f..ee57d750cfbdeb06701c6baf31e175bf362ba9e3
100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -4020,6 +4020,12 @@ Keep your key file in a safe place. You will need it
to create new versions of y
<message name="IDS_FLAGS_COMPOSITED_LAYER_BORDERS_DESCRIPTION"
desc="Description of the 'Composited layer borders' lab.">
Renders a border around composited Render Layers to help debug and
study layer compositing.
</message>
+ <message name="IDS_FLAGS_SHOW_FPS_COUNTER" desc="Name of the 'Show
FPS counter lab.">
+ FPS counter.
+ </message>
+ <message name="IDS_FLAGS_SHOW_FPS_COUNTER_DESCRIPTION"
desc="Description of the 'Show FPS counter' lab.">
+ Shows a page's actual frame rate, in frames per second, when
hardware acceleration is active.
+ </message>
<message name="IDS_FLAGS_ACCELERATED_CANVAS_2D_NAME" desc="Name of
the 'GPU Accelerated Canvas 2D' lab.">
GPU Accelerated Canvas 2D
</message>
Index: chrome/browser/about_flags.cc
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index
4f6999fd4d48d7cc439b4c36b4db9204bb1ae5bb..cfc87e9eebea3c25fa806f6c0c0b6c8edc73d9fa
100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -155,6 +155,13 @@ const Experiment kExperiments[] = {
SINGLE_VALUE_TYPE(switches::kShowCompositedLayerBorders)
},
{
+ "show-fps-counter",
+ IDS_FLAGS_SHOW_FPS_COUNTER,
+ IDS_FLAGS_SHOW_FPS_COUNTER_DESCRIPTION,
+ kOsAll,
+ SINGLE_VALUE_TYPE(switches::kShowFPSCounter)
+ },
+ {
"gpu-canvas-2d", // FLAGS:RECORD_UMA
IDS_FLAGS_ACCELERATED_CANVAS_2D_NAME,
IDS_FLAGS_ACCELERATED_CANVAS_2D_DESCRIPTION,
Index: chrome/browser/tab_contents/render_view_host_delegate_helper.cc
diff --git
a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
index
57786073303cf66ef314a961058e3e6cfdc805ca..8927047a65173b66123b2ecc205f19fd7c0cd783
100644
--- a/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
+++ b/chrome/browser/tab_contents/render_view_host_delegate_helper.cc
@@ -287,6 +287,10 @@ WebPreferences
RenderViewHostDelegateHelper::GetWebkitPrefs(
command_line.HasSwitch(switches::kAllowFileAccessFromFiles);
web_prefs.show_composited_layer_borders =
command_line.HasSwitch(switches::kShowCompositedLayerBorders);
+ web_prefs.show_composited_layer_tree =
+ command_line.HasSwitch(switches::kShowCompositedLayerTree);
+ web_prefs.show_fps_counter =
+ command_line.HasSwitch(switches::kShowFPSCounter);
web_prefs.accelerated_compositing_enabled =
gpu_enabled() &&
!command_line.HasSwitch(switches::kDisableAcceleratedCompositing);
Index: chrome/common/chrome_switches.cc
diff --git a/chrome/common/chrome_switches.cc
b/chrome/common/chrome_switches.cc
index
29b7b6faaff02feed76478b1ede95fadc33abfc1..b0f299fd68b8eebeab3b149e700f8a90ed19e3af
100644
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -1108,6 +1108,13 @@ const char kShowIcons[]
= "show-icons";
// layer compositing.
const char kShowCompositedLayerBorders[]
= "show-composited-layer-borders";

+// Draws a textual dump of the compositor layer tree to help debug and
study
+// layer compositing.
+const char kShowCompositedLayerTree[] = "show-composited-layer-tree";
+
+// Draws a FPS indicator
+const char kShowFPSCounter[] = "show-fps-counter";
+
// Visibly render a border around paint rects in the web page to help debug
// and study painting behavior.
const char kShowPaintRects[] = "show-paint-rects";
Index: chrome/common/chrome_switches.h
diff --git a/chrome/common/chrome_switches.h
b/chrome/common/chrome_switches.h
index
927dc0bf5901715584040d885302cd1f49bb8084..fc92fbd68e018f77a2330af0b3e1868426d289a7
100644
--- a/chrome/common/chrome_switches.h
+++ b/chrome/common/chrome_switches.h
@@ -308,6 +308,8 @@ extern const char kSearchInOmniboxHint[];
extern const char kServiceProcess[];
extern const char kServiceAccountLsid[];
extern const char kShowCompositedLayerBorders[];
+extern const char kShowCompositedLayerTree[];
+extern const char kShowFPSCounter[];
extern const char kShowIcons[];
extern const char kShowPaintRects[];
extern const char kSilentDumpOnDCHECK[];
Index: chrome/common/render_messages.cc
diff --git a/chrome/common/render_messages.cc
b/chrome/common/render_messages.cc
index
5df43f707460dea8938fe2d10e826241f8b2c4d4..9fb0e4fae9fa292656295d2bb2ddfcbc428a2da1
100644
--- a/chrome/common/render_messages.cc
+++ b/chrome/common/render_messages.cc
@@ -668,6 +668,8 @@ void ParamTraits<WebPreferences>::Write(Message* m,
const param_type& p) {
WriteParam(m, p.experimental_webgl_enabled);
WriteParam(m, p.gl_multisampling_enabled);
WriteParam(m, p.show_composited_layer_borders);
+ WriteParam(m, p.show_composited_layer_tree);
+ WriteParam(m, p.show_fps_counter);
WriteParam(m, p.accelerated_compositing_enabled);
WriteParam(m, p.accelerated_2d_canvas_enabled);
WriteParam(m, p.accelerated_plugins_enabled);
Index: webkit/glue/webpreferences.cc
diff --git a/webkit/glue/webpreferences.cc b/webkit/glue/webpreferences.cc
index
03c87bf093c5f88848d6b8991732a2808452b3a4..4235093a401cbddeeb5638854e3bb533f8219826
100644
--- a/webkit/glue/webpreferences.cc
+++ b/webkit/glue/webpreferences.cc
@@ -64,6 +64,8 @@ WebPreferences::WebPreferences()
experimental_webgl_enabled(false),
gl_multisampling_enabled(true),
show_composited_layer_borders(false),
+ show_composited_layer_tree(false),
+ show_fps_counter(false),
accelerated_compositing_enabled(false),
accelerated_layers_enabled(false),
accelerated_video_enabled(false),
@@ -160,6 +162,13 @@ void WebPreferences::Apply(WebView* web_view) const {
// on command line.
settings->setShowDebugBorders(show_composited_layer_borders);

+ // Display an FPS indicator if requested on the command line.
+ settings->setShowFPSCounter(show_fps_counter);
+
+ // Display the current compositor tree as overlay if requested on
+ // the command line
+ settings->setShowPlatformLayerTree(show_composited_layer_tree);
+
// Enable gpu-accelerated compositing if requested on the command line.

settings->setAcceleratedCompositingEnabled(accelerated_compositing_enabled);

Index: webkit/glue/webpreferences.h
diff --git a/webkit/glue/webpreferences.h b/webkit/glue/webpreferences.h
index
468e9b482a44bd5fd57fbd6bdee391dd464553f4..18535687eb2e1583dbbe47aa7e3c61735cc5e36e
100644
--- a/webkit/glue/webpreferences.h
+++ b/webkit/glue/webpreferences.h
@@ -70,6 +70,8 @@ struct WebPreferences {
bool experimental_webgl_enabled;
bool gl_multisampling_enabled;
bool show_composited_layer_borders;
+ bool show_composited_layer_tree;
+ bool show_fps_counter;
bool accelerated_compositing_enabled;
bool accelerated_layers_enabled;
bool accelerated_video_enabled;


vang...@chromium.org

unread,
Feb 24, 2011, 2:07:11 AM2/24/11
to nd...@chromium.org, chromium...@chromium.org, dari...@chromium.org, bret...@chromium.org
Looks good overall but needs a couple of adjustments as noted.


http://codereview.chromium.org/6581004/diff/1/chrome/common/chrome_switches.cc
File chrome/common/chrome_switches.cc (right):

http://codereview.chromium.org/6581004/diff/1/chrome/common/chrome_switches.cc#newcode1116
chrome/common/chrome_switches.cc:1116: const char kShowFPSCounter[] =
"show-fps-counter";
For consistency, please align the '=' sign with all the others in the
file.

http://codereview.chromium.org/6581004/diff/1/chrome/common/render_messages.cc
File chrome/common/render_messages.cc (right):

http://codereview.chromium.org/6581004/diff/1/chrome/common/render_messages.cc#newcode672
chrome/common/render_messages.cc:672: WriteParam(m, p.show_fps_counter);
You also need to add those in the ::Read method

http://codereview.chromium.org/6581004/

Reply all
Reply to author
Forward
0 new messages