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

Unified Diff: gpu/command_buffer/service/query_manager_unittest.cc

Issue 2747823004: Fix QueryCounter on a pending query (Closed)
Patch Set: Created 3 years, 9 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 | « gpu/command_buffer/service/query_manager.cc ('k') | ui/gl/gpu_timing_fake.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/query_manager_unittest.cc
diff --git a/gpu/command_buffer/service/query_manager_unittest.cc b/gpu/command_buffer/service/query_manager_unittest.cc
index d6d14478563200a2886bc9a477a83758842c4769..aa6be4f35cb2dda9fea4d31f3c47fdbaadba6038 100644
--- a/gpu/command_buffer/service/query_manager_unittest.cc
+++ b/gpu/command_buffer/service/query_manager_unittest.cc
@@ -829,6 +829,36 @@ TEST_F(QueryManagerTest, TimeStampQuery) {
manager_->Destroy(false);
}
+TEST_F(QueryManagerTest, TimeStampQueryPending) {
+ const GLuint kClient1Id = 1;
+ const GLenum kTarget = GL_TIMESTAMP_EXT;
+ const base::subtle::Atomic32 kSubmitCount = 123;
+ gl::GPUTimingFake fake_timing_queries;
+
+ decoder_->GetGLContext()->CreateGPUTimingClient()->SetCpuTimeForTesting(
+ base::Bind(&gl::GPUTimingFake::GetFakeCPUTime));
+
+ QueryManager::Query* query = manager_->CreateQuery(
+ kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
+ ASSERT_TRUE(query != NULL);
+
+ const uint64_t expected_result =
+ 100u * base::Time::kNanosecondsPerMicrosecond;
+ fake_timing_queries.SetCurrentGLTime(expected_result);
+ fake_timing_queries.ExpectGPUTimeStampQuery(*gl_, false);
+ EXPECT_TRUE(manager_->QueryCounter(query, kSubmitCount));
+ EXPECT_TRUE(query->IsPending());
+ fake_timing_queries.ExpectGPUTimeStampQuery(*gl_, false);
+ EXPECT_TRUE(manager_->QueryCounter(query, kSubmitCount));
+ EXPECT_TRUE(manager_->ProcessPendingQueries(false));
+
+ QuerySync* sync = decoder_->GetSharedMemoryAs<QuerySync*>(
+ kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync));
+ EXPECT_EQ(expected_result, sync->result);
+
+ manager_->Destroy(false);
+}
+
TEST_F(QueryManagerManualSetupTest, TimeStampDisjoint) {
GpuServiceTest::SetUpWithGLVersion("OpenGL ES 3.0",
"GL_EXT_disjoint_timer_query");
« no previous file with comments | « gpu/command_buffer/service/query_manager.cc ('k') | ui/gl/gpu_timing_fake.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698