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

Unified Diff: chrome/test/gpu/gpu_feature_browsertest.cc

Issue 10914247: Enable by default threaded compositing on windows and FCM on mac (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: mac and linux get fcm with 30% probability Created 8 years, 3 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
« no previous file with comments | « chrome/browser/task_manager/task_manager_browsertest.cc ('k') | content/common/compositor_util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/gpu/gpu_feature_browsertest.cc
diff --git a/chrome/test/gpu/gpu_feature_browsertest.cc b/chrome/test/gpu/gpu_feature_browsertest.cc
index 78da1a2588ee76f09be647ea35f99ee17e486559..05f45cd3a00cabfbbefed2496575be018bd4ab21 100644
--- a/chrome/test/gpu/gpu_feature_browsertest.cc
+++ b/chrome/test/gpu/gpu_feature_browsertest.cc
@@ -41,16 +41,15 @@ using trace_analyzer::TraceEventVector;
namespace {
-typedef uint32 GpuResultFlags;
-#define EXPECT_NO_GPU_SWAP_BUFFERS GpuResultFlags(1<<0)
-// Expect a SwapBuffers to occur (see gles2_cmd_decoder.cc).
-#define EXPECT_GPU_SWAP_BUFFERS GpuResultFlags(1<<1)
+const char kSwapBuffersEvent[] = "SwapBuffers";
+const char kAcceleratedCanvasCreationEvent[] = "Canvas2DLayerBridgeCreation";
+const char kWebGLCreationEvent[] = "DrawingBufferCreation";
class GpuFeatureTest : public InProcessBrowserTest {
public:
GpuFeatureTest() : trace_categories_("test_gpu"), gpu_enabled_(false) {}
- virtual void SetUpInProcessBrowserTestFixture() {
+ virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
FilePath test_dir;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_dir));
gpu_test_dir_ = test_dir.AppendASCII("gpu");
@@ -110,7 +109,10 @@ class GpuFeatureTest : public InProcessBrowserTest {
EXPECT_STREQ(expected_reply, result.c_str());
}
- void RunTest(const FilePath& url, GpuResultFlags expectations) {
+ // Open the URL and check the trace stream for the given event.
+ void RunEventTest(const FilePath& url,
+ const char* event_name = NULL,
+ bool event_expected = false) {
#if defined(OS_LINUX) && !defined(NDEBUG)
// Bypass tests on GPU Linux Debug bots.
if (gpu_enabled_)
@@ -133,16 +135,16 @@ class GpuFeatureTest : public InProcessBrowserTest {
analyzer_->AssociateBeginEndEvents();
TraceEventVector events;
- if (expectations & EXPECT_NO_GPU_SWAP_BUFFERS) {
- EXPECT_EQ(analyzer_->FindEvents(Query::EventNameIs("SwapBuffers"),
- &events), size_t(0));
- }
+ if (!event_name)
+ return;
- // Check for swap buffers if expected:
- if (expectations & EXPECT_GPU_SWAP_BUFFERS) {
- EXPECT_GT(analyzer_->FindEvents(Query::EventNameIs("SwapBuffers"),
- &events), size_t(0));
- }
+ size_t event_count =
+ analyzer_->FindEvents(Query::EventNameIs(event_name), &events);
+
+ if (event_expected)
+ EXPECT_GT(event_count, 0U);
+ else
+ EXPECT_EQ(event_count, 0U);
}
// Trigger a resize of the chrome window, and use tracing to wait for the
@@ -178,7 +180,7 @@ IN_PROC_BROWSER_TEST_F(GpuFeatureTest, AcceleratedCompositingAllowed) {
EXPECT_EQ(type, 0);
const FilePath url(FILE_PATH_LITERAL("feature_compositing.html"));
- RunTest(url, EXPECT_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kSwapBuffersEvent, true);
}
// Flash Stage3D may be blacklisted for other reasons on XP, so ignore it.
@@ -191,8 +193,11 @@ GpuFeatureType IgnoreGpuFeatures(GpuFeatureType type) {
return type;
}
-IN_PROC_BROWSER_TEST_F(GpuFeatureTest, AcceleratedCompositingBlocked) {
- const std::string json_blacklist =
+class AcceleratedCompositingBlockedTest : public GpuFeatureTest {
+ public:
+ virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
+ GpuFeatureTest::SetUpInProcessBrowserTestFixture();
+ const std::string json_blacklist =
"{\n"
" \"name\": \"gpu blacklist\",\n"
" \"version\": \"1.0\",\n"
@@ -205,14 +210,20 @@ IN_PROC_BROWSER_TEST_F(GpuFeatureTest, AcceleratedCompositingBlocked) {
" }\n"
" ]\n"
"}";
- SetupBlacklist(json_blacklist);
+ SetupBlacklist(json_blacklist);
+ }
+};
+
+IN_PROC_BROWSER_TEST_F(AcceleratedCompositingBlockedTest,
+ AcceleratedCompositingBlocked) {
GpuFeatureType type =
GpuDataManager::GetInstance()->GetBlacklistedFeatures();
type = IgnoreGpuFeatures(type);
+
EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING);
const FilePath url(FILE_PATH_LITERAL("feature_compositing.html"));
- RunTest(url, EXPECT_NO_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kSwapBuffersEvent, false);
}
class AcceleratedCompositingTest : public GpuFeatureTest {
@@ -226,7 +237,7 @@ class AcceleratedCompositingTest : public GpuFeatureTest {
IN_PROC_BROWSER_TEST_F(AcceleratedCompositingTest,
AcceleratedCompositingDisabled) {
const FilePath url(FILE_PATH_LITERAL("feature_compositing.html"));
- RunTest(url, EXPECT_NO_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kSwapBuffersEvent, false);
}
IN_PROC_BROWSER_TEST_F(GpuFeatureTest, WebGLAllowed) {
@@ -235,7 +246,7 @@ IN_PROC_BROWSER_TEST_F(GpuFeatureTest, WebGLAllowed) {
EXPECT_EQ(type, 0);
const FilePath url(FILE_PATH_LITERAL("feature_webgl.html"));
- RunTest(url, EXPECT_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kWebGLCreationEvent, true);
}
IN_PROC_BROWSER_TEST_F(GpuFeatureTest, WebGLBlocked) {
@@ -259,7 +270,7 @@ IN_PROC_BROWSER_TEST_F(GpuFeatureTest, WebGLBlocked) {
EXPECT_EQ(type, content::GPU_FEATURE_TYPE_WEBGL);
const FilePath url(FILE_PATH_LITERAL("feature_webgl.html"));
- RunTest(url, EXPECT_NO_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kWebGLCreationEvent, false);
}
class WebGLTest : public GpuFeatureTest {
@@ -275,7 +286,7 @@ class WebGLTest : public GpuFeatureTest {
IN_PROC_BROWSER_TEST_F(WebGLTest, WebGLDisabled) {
const FilePath url(FILE_PATH_LITERAL("feature_webgl.html"));
- RunTest(url, EXPECT_NO_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kWebGLCreationEvent, false);
}
IN_PROC_BROWSER_TEST_F(GpuFeatureTest, MultisamplingAllowed) {
@@ -356,7 +367,7 @@ IN_PROC_BROWSER_TEST_F(GpuFeatureTest, Canvas2DAllowed) {
EXPECT_EQ(type, 0);
const FilePath url(FILE_PATH_LITERAL("feature_canvas2d.html"));
- RunTest(url, EXPECT_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kAcceleratedCanvasCreationEvent, true);
}
IN_PROC_BROWSER_TEST_F(GpuFeatureTest, Canvas2DBlocked) {
@@ -380,7 +391,7 @@ IN_PROC_BROWSER_TEST_F(GpuFeatureTest, Canvas2DBlocked) {
EXPECT_EQ(type, content::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS);
const FilePath url(FILE_PATH_LITERAL("feature_canvas2d.html"));
- RunTest(url, EXPECT_NO_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kAcceleratedCanvasCreationEvent, false);
}
class Canvas2DDisabledTest : public GpuFeatureTest {
@@ -393,7 +404,7 @@ class Canvas2DDisabledTest : public GpuFeatureTest {
IN_PROC_BROWSER_TEST_F(Canvas2DDisabledTest, Canvas2DDisabled) {
const FilePath url(FILE_PATH_LITERAL("feature_canvas2d.html"));
- RunTest(url, EXPECT_NO_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kAcceleratedCanvasCreationEvent, false);
}
IN_PROC_BROWSER_TEST_F(GpuFeatureTest,
@@ -418,13 +429,13 @@ class ThreadedCompositorTest : public GpuFeatureTest {
// disabled in http://crbug.com/123503
IN_PROC_BROWSER_TEST_F(ThreadedCompositorTest, ThreadedCompositor) {
const FilePath url(FILE_PATH_LITERAL("feature_compositing.html"));
- RunTest(url, EXPECT_GPU_SWAP_BUFFERS);
+ RunEventTest(url, kSwapBuffersEvent, true);
}
IN_PROC_BROWSER_TEST_F(GpuFeatureTest, RafNoDamage) {
trace_categories_ = "-test_*";
const FilePath url(FILE_PATH_LITERAL("feature_raf_no_damage.html"));
- RunTest(url, GpuResultFlags(0));
+ RunEventTest(url);
if (!analyzer_.get())
return;
« no previous file with comments | « chrome/browser/task_manager/task_manager_browsertest.cc ('k') | content/common/compositor_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698