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

Side by Side Diff: cc/output/output_surface_unittest.cc

Issue 27710005: cc: Use HighResNow as timebase if it is fast and reliable (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix DCHECK Created 7 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « cc/output/output_surface.cc ('k') | cc/resources/resource_update_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/output/output_surface.h" 5 #include "cc/output/output_surface.h"
6 6
7 #include "base/test/test_simple_task_runner.h" 7 #include "base/test/test_simple_task_runner.h"
8 #include "cc/debug/test_context_provider.h" 8 #include "cc/debug/test_context_provider.h"
9 #include "cc/debug/test_web_graphics_context_3d.h" 9 #include "cc/debug/test_web_graphics_context_3d.h"
10 #include "cc/output/managed_memory_policy.h" 10 #include "cc/output/managed_memory_policy.h"
11 #include "cc/output/output_surface_client.h" 11 #include "cc/output/output_surface_client.h"
12 #include "cc/output/software_output_device.h" 12 #include "cc/output/software_output_device.h"
13 #include "cc/test/fake_output_surface.h" 13 #include "cc/test/fake_output_surface.h"
14 #include "cc/test/fake_output_surface_client.h" 14 #include "cc/test/fake_output_surface_client.h"
15 #include "cc/test/scheduler_test_common.h" 15 #include "cc/test/scheduler_test_common.h"
16 #include "gpu/GLES2/gl2extchromium.h" 16 #include "gpu/GLES2/gl2extchromium.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 #include "ui/gfx/frame_time.h"
18 19
19 namespace cc { 20 namespace cc {
20 namespace { 21 namespace {
21 22
22 class TestOutputSurface : public OutputSurface { 23 class TestOutputSurface : public OutputSurface {
23 public: 24 public:
24 explicit TestOutputSurface(scoped_refptr<ContextProvider> context_provider) 25 explicit TestOutputSurface(scoped_refptr<ContextProvider> context_provider)
25 : OutputSurface(context_provider), 26 : OutputSurface(context_provider),
26 retroactive_begin_impl_frame_deadline_enabled_(false), 27 retroactive_begin_impl_frame_deadline_enabled_(false),
27 override_retroactive_period_(false) {} 28 override_retroactive_period_(false) {}
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 const base::TimeDelta display_refresh_interval = big_interval; 380 const base::TimeDelta display_refresh_interval = big_interval;
380 381
381 output_surface.InitializeBeginImplFrameEmulation( 382 output_surface.InitializeBeginImplFrameEmulation(
382 task_runner.get(), 383 task_runner.get(),
383 throttle_frame_production, 384 throttle_frame_production,
384 display_refresh_interval); 385 display_refresh_interval);
385 386
386 // We need to subtract an epsilon from Now() because some platforms have 387 // We need to subtract an epsilon from Now() because some platforms have
387 // a slow clock. 388 // a slow clock.
388 output_surface.OnVSyncParametersChangedForTesting( 389 output_surface.OnVSyncParametersChangedForTesting(
389 base::TimeTicks::Now() - base::TimeDelta::FromSeconds(1), big_interval); 390 gfx::FrameTime::Now() - base::TimeDelta::FromSeconds(1), big_interval);
390 391
391 output_surface.SetMaxFramesPending(2); 392 output_surface.SetMaxFramesPending(2);
392 output_surface.EnableRetroactiveBeginImplFrameDeadline( 393 output_surface.EnableRetroactiveBeginImplFrameDeadline(
393 true, true, big_interval); 394 true, true, big_interval);
394 395
395 // We should start off with 0 BeginImplFrames 396 // We should start off with 0 BeginImplFrames
396 EXPECT_EQ(client.begin_impl_frame_count(), 0); 397 EXPECT_EQ(client.begin_impl_frame_count(), 0);
397 EXPECT_EQ(output_surface.pending_swap_buffers(), 0); 398 EXPECT_EQ(output_surface.pending_swap_buffers(), 0);
398 399
399 // The first SetNeedsBeginImplFrame(true) should start a retroactive 400 // The first SetNeedsBeginImplFrame(true) should start a retroactive
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 EXPECT_EQ(1, software_output_device->ensure_backbuffer_count()); 485 EXPECT_EQ(1, software_output_device->ensure_backbuffer_count());
485 EXPECT_EQ(0, software_output_device->discard_backbuffer_count()); 486 EXPECT_EQ(0, software_output_device->discard_backbuffer_count());
486 output_surface.DiscardBackbuffer(); 487 output_surface.DiscardBackbuffer();
487 488
488 EXPECT_EQ(1, software_output_device->ensure_backbuffer_count()); 489 EXPECT_EQ(1, software_output_device->ensure_backbuffer_count());
489 EXPECT_EQ(1, software_output_device->discard_backbuffer_count()); 490 EXPECT_EQ(1, software_output_device->discard_backbuffer_count());
490 } 491 }
491 492
492 } // namespace 493 } // namespace
493 } // namespace cc 494 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/output_surface.cc ('k') | cc/resources/resource_update_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698