Index: gpu/command_buffer/client/gles2_implementation.cc |
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc |
index a8207d486c4eff31d7e29f88c108a9b805f110c9..004029b2e7700c0133befe856394f7c2ab88f5b7 100644 |
--- a/gpu/command_buffer/client/gles2_implementation.cc |
+++ b/gpu/command_buffer/client/gles2_implementation.cc |
@@ -707,12 +707,6 @@ |
return true; |
} |
break; |
- case GL_TIMESTAMP_EXT: |
- // We convert all GPU timestamps to CPU time. |
- *params = base::saturated_cast<GLint>( |
- (base::TraceTicks::Now() - base::TraceTicks()).InMicroseconds() |
- * base::Time::kNanosecondsPerMicrosecond); |
- return true; |
// Non-cached parameters. |
case GL_ALIASED_LINE_WIDTH_RANGE: |
@@ -1003,11 +997,6 @@ |
case GL_MAX_UNIFORM_BLOCK_SIZE: |
*params = capabilities_.max_uniform_block_size; |
return true; |
- case GL_TIMESTAMP_EXT: |
- // We convert all GPU timestamps to CPU time. |
- *params = (base::TraceTicks::Now() - base::TraceTicks()).InMicroseconds() |
- * base::Time::kNanosecondsPerMicrosecond; |
- return true; |
default: |
break; |
} |
@@ -1067,62 +1056,6 @@ |
*length = 1; |
} |
return true; |
-} |
- |
-bool GLES2Implementation::GetQueryObjectValueHelper( |
- const char* function_name, GLuint id, GLenum pname, GLuint64* params) { |
- GPU_CLIENT_SINGLE_THREAD_CHECK(); |
- GPU_CLIENT_LOG("[" << GetLogPrefix() << "] GetQueryObjectValueHelper(" |
- << id << ", " |
- << GLES2Util::GetStringQueryObjectParameter(pname) << ", " |
- << static_cast<const void*>(params) << ")"); |
- |
- QueryTracker::Query* query = query_tracker_->GetQuery(id); |
- if (!query) { |
- SetGLError(GL_INVALID_OPERATION, |
- function_name, "unknown query id"); |
- return false; |
- } |
- |
- if (query->Active()) { |
- SetGLError( |
- GL_INVALID_OPERATION, |
- function_name, |
- "query active. Did you to call glEndQueryEXT?"); |
- return false; |
- } |
- |
- if (query->NeverUsed()) { |
- SetGLError( |
- GL_INVALID_OPERATION, |
- function_name, "Never used. Did you call glBeginQueryEXT?"); |
- return false; |
- } |
- |
- bool valid_value = false; |
- switch (pname) { |
- case GL_QUERY_RESULT_EXT: |
- if (!query->CheckResultsAvailable(helper_)) { |
- helper_->WaitForToken(query->token()); |
- if (!query->CheckResultsAvailable(helper_)) { |
- FinishHelper(); |
- CHECK(query->CheckResultsAvailable(helper_)); |
- } |
- } |
- *params = query->GetResult(); |
- valid_value = true; |
- break; |
- case GL_QUERY_RESULT_AVAILABLE_EXT: |
- *params = query->CheckResultsAvailable(helper_); |
- valid_value = true; |
- break; |
- default: |
- SetGLErrorInvalidEnum(function_name, pname, "pname"); |
- break; |
- } |
- GPU_CLIENT_LOG(" " << *params); |
- CheckGLError(); |
- return valid_value; |
} |
GLuint GLES2Implementation::GetMaxValueInBufferCHROMIUMHelper( |
@@ -4894,11 +4827,8 @@ |
<< GLES2Util::GetStringQueryTarget(target) << ", " |
<< GLES2Util::GetStringQueryParameter(pname) << ", " |
<< static_cast<const void*>(params) << ")"); |
- if (pname == GL_QUERY_COUNTER_BITS_EXT) { |
- // We convert all queries to CPU time so we support 64 bits. |
- *params = 64; |
- return; |
- } else if (pname != GL_CURRENT_QUERY_EXT) { |
+ |
+ if (pname != GL_CURRENT_QUERY_EXT) { |
SetGLErrorInvalidEnum("glGetQueryivEXT", pname, "pname"); |
return; |
} |
@@ -4910,16 +4840,51 @@ |
void GLES2Implementation::GetQueryObjectuivEXT( |
GLuint id, GLenum pname, GLuint* params) { |
- GLuint64 result = 0; |
- if (GetQueryObjectValueHelper("glQueryObjectuivEXT", id, pname, &result)) |
- *params = base::saturated_cast<GLuint>(result); |
-} |
- |
-void GLES2Implementation::GetQueryObjectui64vEXT( |
- GLuint id, GLenum pname, GLuint64* params) { |
- GLuint64 result = 0; |
- if (GetQueryObjectValueHelper("glQueryObjectui64vEXT", id, pname, &result)) |
- *params = result; |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] GetQueryivEXT(" << id << ", " |
+ << GLES2Util::GetStringQueryObjectParameter(pname) << ", " |
+ << static_cast<const void*>(params) << ")"); |
+ |
+ QueryTracker::Query* query = query_tracker_->GetQuery(id); |
+ if (!query) { |
+ SetGLError(GL_INVALID_OPERATION, "glQueryObjectuivEXT", "unknown query id"); |
+ return; |
+ } |
+ |
+ if (query->Active()) { |
+ SetGLError( |
+ GL_INVALID_OPERATION, |
+ "glQueryObjectuivEXT", "query active. Did you to call glEndQueryEXT?"); |
+ return; |
+ } |
+ |
+ if (query->NeverUsed()) { |
+ SetGLError( |
+ GL_INVALID_OPERATION, |
+ "glQueryObjectuivEXT", "Never used. Did you call glBeginQueryEXT?"); |
+ return; |
+ } |
+ |
+ switch (pname) { |
+ case GL_QUERY_RESULT_EXT: |
+ if (!query->CheckResultsAvailable(helper_)) { |
+ helper_->WaitForToken(query->token()); |
+ if (!query->CheckResultsAvailable(helper_)) { |
+ FinishHelper(); |
+ CHECK(query->CheckResultsAvailable(helper_)); |
+ } |
+ } |
+ *params = query->GetResult(); |
+ break; |
+ case GL_QUERY_RESULT_AVAILABLE_EXT: |
+ *params = query->CheckResultsAvailable(helper_); |
+ break; |
+ default: |
+ SetGLErrorInvalidEnum("glQueryObjectuivEXT", pname, "pname"); |
+ break; |
+ } |
+ GPU_CLIENT_LOG(" " << *params); |
+ CheckGLError(); |
} |
void GLES2Implementation::DrawArraysInstancedANGLE( |