| Index: ui/gl/gpu_timing_unittest.cc
|
| diff --git a/ui/gl/gpu_timing_unittest.cc b/ui/gl/gpu_timing_unittest.cc
|
| index 8af9e26d44186cbd0f3a0646e29bce44e77c8ec4..56f9e5c67a8860c8208af3b10144e723ed197cb9 100644
|
| --- a/ui/gl/gpu_timing_unittest.cc
|
| +++ b/ui/gl/gpu_timing_unittest.cc
|
| @@ -112,7 +112,7 @@ TEST_F(GPUTimingTest, QueryTimeStampTest) {
|
| begin_gl_time / base::Time::kNanosecondsPerMicrosecond - begin_cpu_time;
|
| gpu_timing_fake_queries_.SetCPUGLOffset(cpu_gl_offset);
|
| gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time);
|
| - gpu_timing_fake_queries_.ExpectGPUTimeStampQuery(*gl_, false);
|
| + gpu_timing_fake_queries_.ExpectGPUTimeStampQuery(*gl_, false, true);
|
|
|
| gpu_timer->QueryTimeStamp();
|
|
|
| @@ -146,7 +146,7 @@ TEST_F(GPUTimingTest, QueryTimeStampUsingElapsedTest) {
|
| const int64_t cpu_gl_offset = begin_gl_time - begin_cpu_time;
|
| gpu_timing_fake_queries_.SetCPUGLOffset(cpu_gl_offset);
|
| gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time);
|
| - gpu_timing_fake_queries_.ExpectGPUTimeStampQuery(*gl_, true);
|
| + gpu_timing_fake_queries_.ExpectGPUTimeStampQuery(*gl_, true, false);
|
|
|
| gpu_timer->QueryTimeStamp();
|
|
|
| @@ -163,4 +163,35 @@ TEST_F(GPUTimingTest, QueryTimeStampUsingElapsedTest) {
|
| EXPECT_EQ(begin_cpu_time, end);
|
| }
|
|
|
| +TEST_F(GPUTimingTest, QueryTimestampUsingElapsedARBTest) {
|
| + // Test timestamp queries on platforms with GL_ARB_timer_query but still lack
|
| + // support for timestamp queries
|
| + SetupGLContext("3.2", "GL_ARB_timer_query");
|
| + scoped_refptr<GPUTimingClient> client = CreateGPUTimingClient();
|
| + scoped_ptr<GPUTimer> gpu_timer = client->CreateGPUTimer(false);
|
| +
|
| + const int64_t begin_cpu_time = 123;
|
| + const int64_t begin_gl_time = 10 * base::Time::kNanosecondsPerMicrosecond;
|
| + const int64_t cpu_gl_offset = begin_gl_time - begin_cpu_time;
|
| + gpu_timing_fake_queries_.SetCPUGLOffset(cpu_gl_offset);
|
| + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time);
|
| + gpu_timing_fake_queries_.ExpectGPUTimeStampQuery(*gl_, true, true);
|
| +
|
| + gpu_timer->QueryTimeStamp();
|
| +
|
| + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time - 1);
|
| + EXPECT_FALSE(gpu_timer->IsAvailable());
|
| +
|
| + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time + 1);
|
| + EXPECT_TRUE(gpu_timer->IsAvailable());
|
| + EXPECT_EQ(0, gpu_timer->GetDeltaElapsed());
|
| +
|
| + int64_t start, end;
|
| + gpu_timer->GetStartEndTimestamps(&start, &end);
|
| + // Force time elapsed won't be set until a query is actually attempted
|
| + ASSERT_TRUE(client->IsForceTimeElapsedQuery());
|
| + EXPECT_EQ(begin_cpu_time, start);
|
| + EXPECT_EQ(begin_cpu_time, end);
|
| +}
|
| +
|
| } // namespace gpu
|
|
|