Index: gpu/command_buffer/tests/gl_query_unittest.cc |
diff --git a/gpu/command_buffer/tests/gl_query_unittest.cc b/gpu/command_buffer/tests/gl_query_unittest.cc |
index 9a8948fa15478301223fcf3bcc9e9581cc8c22ac..87235e51f674c1a96be6fedd35675d98ee1d92a4 100644 |
--- a/gpu/command_buffer/tests/gl_query_unittest.cc |
+++ b/gpu/command_buffer/tests/gl_query_unittest.cc |
@@ -150,6 +150,46 @@ TEST_F(QueryTest, DISABLED_LatencyQueryBasic) { |
EXPECT_LE(query_result, kTimePrecisionMicroseconds); |
} |
+TEST_F(QueryTest, CommandsCompleted) { |
+ if (!GLTestHelper::HasExtension("GL_CHROMIUM_sync_query")) { |
+ LOG(INFO) << "GL_CHROMIUM_sync_query not supported. Skipping test..."; |
+ return; |
+ } |
+ |
+ GLuint query; |
+ glGenQueriesEXT(1, &query); |
+ glBeginQueryEXT(GL_COMMANDS_COMPLETED_CHROMIUM, query); |
+ glClearColor(0.0, 0.0, 1.0, 1.0); |
+ glClear(GL_COLOR_BUFFER_BIT); |
+ glEndQueryEXT(GL_COMMANDS_COMPLETED_CHROMIUM); |
+ glFlush(); |
+ GLuint result = 0; |
+ glGetQueryObjectuivEXT(query, GL_QUERY_RESULT_EXT, &result); |
+ EXPECT_EQ(0u, result); |
+ glDeleteQueriesEXT(1, &query); |
+ GLTestHelper::CheckGLError("no errors", __LINE__); |
+} |
+ |
+TEST_F(QueryTest, CommandsCompletedWithFinish) { |
+ if (!GLTestHelper::HasExtension("GL_CHROMIUM_sync_query")) { |
+ LOG(INFO) << "GL_CHROMIUM_sync_query not supported. Skipping test..."; |
+ return; |
+ } |
+ |
+ GLuint query; |
+ glGenQueriesEXT(1, &query); |
+ glBeginQueryEXT(GL_COMMANDS_COMPLETED_CHROMIUM, query); |
+ glClearColor(0.0, 0.0, 1.0, 1.0); |
+ glClear(GL_COLOR_BUFFER_BIT); |
+ glEndQueryEXT(GL_COMMANDS_COMPLETED_CHROMIUM); |
+ glFinish(); |
+ GLuint result = 0; |
+ glGetQueryObjectuivEXT(query, GL_QUERY_RESULT_AVAILABLE_EXT, &result); |
+ EXPECT_EQ(1u, result); |
+ glDeleteQueriesEXT(1, &query); |
+ GLTestHelper::CheckGLError("no errors", __LINE__); |
+} |
+ |
} // namespace gpu |