Skip to content

Commit

Permalink
Added suport for integer versions of GetQueryObjectvEXT().
Browse files Browse the repository at this point in the history
The last remaining functions necessary according to the spec for
EXT_disjoint_timer_query is the integer variants of GetQueryObjectuivEXT
and GetQueryObjectui64vEXT.

R=sievers@chromium.org
BUG=345227

Review URL: https://codereview.chromium.org/1283083004

Cr-Commit-Position: refs/heads/master@{#344115}
  • Loading branch information
dyen authored and Commit bot committed Aug 19, 2015
1 parent 0fe2107 commit 996e007
Show file tree
Hide file tree
Showing 13 changed files with 94 additions and 2 deletions.
2 changes: 2 additions & 0 deletions gpu/GLES2/gl2chromium_autogen.h
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,9 @@
#define glEndQueryEXT GLES2_GET_FUN(EndQueryEXT)
#define glEndTransformFeedback GLES2_GET_FUN(EndTransformFeedback)
#define glGetQueryivEXT GLES2_GET_FUN(GetQueryivEXT)
#define glGetQueryObjectivEXT GLES2_GET_FUN(GetQueryObjectivEXT)
#define glGetQueryObjectuivEXT GLES2_GET_FUN(GetQueryObjectuivEXT)
#define glGetQueryObjecti64vEXT GLES2_GET_FUN(GetQueryObjecti64vEXT)
#define glGetQueryObjectui64vEXT GLES2_GET_FUN(GetQueryObjectui64vEXT)
#define glSetDisjointValueSyncCHROMIUM \
GLES2_GET_FUN(SetDisjointValueSyncCHROMIUM)
Expand Down
12 changes: 12 additions & 0 deletions gpu/command_buffer/build_gles2_cmd_buffer.py
Original file line number Diff line number Diff line change
Expand Up @@ -3875,13 +3875,25 @@
'gl_test_func': 'glQueryCounter',
'extension': "disjoint_timer_query_EXT",
},
'GetQueryObjectivEXT': {
'gen_cmd': False,
'client_test': False,
'gl_test_func': 'glGetQueryObjectiv',
'extension': "disjoint_timer_query_EXT",
},
'GetQueryObjectuivEXT': {
'gen_cmd': False,
'client_test': False,
'gl_test_func': 'glGetQueryObjectuiv',
'pepper_interface': 'Query',
'extension': "occlusion_query_EXT",
},
'GetQueryObjecti64vEXT': {
'gen_cmd': False,
'client_test': False,
'gl_test_func': 'glGetQueryObjecti64v',
'extension': "disjoint_timer_query_EXT",
},
'GetQueryObjectui64vEXT': {
'gen_cmd': False,
'client_test': False,
Expand Down
18 changes: 18 additions & 0 deletions gpu/command_buffer/client/gles2_c_lib_autogen.h
Original file line number Diff line number Diff line change
Expand Up @@ -1160,11 +1160,21 @@ void GL_APIENTRY GLES2GetQueryivEXT(GLenum target,
GLint* params) {
gles2::GetGLContext()->GetQueryivEXT(target, pname, params);
}
void GL_APIENTRY GLES2GetQueryObjectivEXT(GLuint id,
GLenum pname,
GLint* params) {
gles2::GetGLContext()->GetQueryObjectivEXT(id, pname, params);
}
void GL_APIENTRY GLES2GetQueryObjectuivEXT(GLuint id,
GLenum pname,
GLuint* params) {
gles2::GetGLContext()->GetQueryObjectuivEXT(id, pname, params);
}
void GL_APIENTRY GLES2GetQueryObjecti64vEXT(GLuint id,
GLenum pname,
GLint64* params) {
gles2::GetGLContext()->GetQueryObjecti64vEXT(id, pname, params);
}
void GL_APIENTRY GLES2GetQueryObjectui64vEXT(GLuint id,
GLenum pname,
GLuint64* params) {
Expand Down Expand Up @@ -2463,10 +2473,18 @@ extern const NameToFunc g_gles2_function_table[] = {
"glGetQueryivEXT",
reinterpret_cast<GLES2FunctionPointer>(glGetQueryivEXT),
},
{
"glGetQueryObjectivEXT",
reinterpret_cast<GLES2FunctionPointer>(glGetQueryObjectivEXT),
},
{
"glGetQueryObjectuivEXT",
reinterpret_cast<GLES2FunctionPointer>(glGetQueryObjectuivEXT),
},
{
"glGetQueryObjecti64vEXT",
reinterpret_cast<GLES2FunctionPointer>(glGetQueryObjecti64vEXT),
},
{
"glGetQueryObjectui64vEXT",
reinterpret_cast<GLES2FunctionPointer>(glGetQueryObjectui64vEXT),
Expand Down
18 changes: 16 additions & 2 deletions gpu/command_buffer/client/gles2_implementation.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5021,17 +5021,31 @@ void GLES2Implementation::GetQueryivEXT(
CheckGLError();
}

void GLES2Implementation::GetQueryObjectivEXT(
GLuint id, GLenum pname, GLint* params) {
GLuint64 result = 0;
if (GetQueryObjectValueHelper("glGetQueryObjectivEXT", id, pname, &result))
*params = base::saturated_cast<GLint>(result);
}

void GLES2Implementation::GetQueryObjectuivEXT(
GLuint id, GLenum pname, GLuint* params) {
GLuint64 result = 0;
if (GetQueryObjectValueHelper("glQueryObjectuivEXT", id, pname, &result))
if (GetQueryObjectValueHelper("glGetQueryObjectuivEXT", id, pname, &result))
*params = base::saturated_cast<GLuint>(result);
}

void GLES2Implementation::GetQueryObjecti64vEXT(
GLuint id, GLenum pname, GLint64* params) {
GLuint64 result = 0;
if (GetQueryObjectValueHelper("glGetQueryObjectiv64vEXT", id, pname, &result))
*params = base::saturated_cast<GLint64>(result);
}

void GLES2Implementation::GetQueryObjectui64vEXT(
GLuint id, GLenum pname, GLuint64* params) {
GLuint64 result = 0;
if (GetQueryObjectValueHelper("glQueryObjectui64vEXT", id, pname, &result))
if (GetQueryObjectValueHelper("glGetQueryObjectui64vEXT", id, pname, &result))
*params = result;
}

Expand Down
4 changes: 4 additions & 0 deletions gpu/command_buffer/client/gles2_implementation_autogen.h
Original file line number Diff line number Diff line change
Expand Up @@ -807,8 +807,12 @@ void EndTransformFeedback() override;

void GetQueryivEXT(GLenum target, GLenum pname, GLint* params) override;

void GetQueryObjectivEXT(GLuint id, GLenum pname, GLint* params) override;

void GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) override;

void GetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64* params) override;

void GetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64* params) override;

void SetDisjointValueSyncCHROMIUM() override;
Expand Down
4 changes: 4 additions & 0 deletions gpu/command_buffer/client/gles2_interface_autogen.h
Original file line number Diff line number Diff line change
Expand Up @@ -600,7 +600,11 @@ virtual void BeginTransformFeedback(GLenum primitivemode) = 0;
virtual void EndQueryEXT(GLenum target) = 0;
virtual void EndTransformFeedback() = 0;
virtual void GetQueryivEXT(GLenum target, GLenum pname, GLint* params) = 0;
virtual void GetQueryObjectivEXT(GLuint id, GLenum pname, GLint* params) = 0;
virtual void GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) = 0;
virtual void GetQueryObjecti64vEXT(GLuint id,
GLenum pname,
GLint64* params) = 0;
virtual void GetQueryObjectui64vEXT(GLuint id,
GLenum pname,
GLuint64* params) = 0;
Expand Down
2 changes: 2 additions & 0 deletions gpu/command_buffer/client/gles2_interface_stub_autogen.h
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,9 @@ void BeginTransformFeedback(GLenum primitivemode) override;
void EndQueryEXT(GLenum target) override;
void EndTransformFeedback() override;
void GetQueryivEXT(GLenum target, GLenum pname, GLint* params) override;
void GetQueryObjectivEXT(GLuint id, GLenum pname, GLint* params) override;
void GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) override;
void GetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64* params) override;
void GetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64* params) override;
void SetDisjointValueSyncCHROMIUM() override;
void InsertEventMarkerEXT(GLsizei length, const GLchar* marker) override;
Expand Down
6 changes: 6 additions & 0 deletions gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
Original file line number Diff line number Diff line change
Expand Up @@ -787,9 +787,15 @@ void GLES2InterfaceStub::EndTransformFeedback() {}
void GLES2InterfaceStub::GetQueryivEXT(GLenum /* target */,
GLenum /* pname */,
GLint* /* params */) {}
void GLES2InterfaceStub::GetQueryObjectivEXT(GLuint /* id */,
GLenum /* pname */,
GLint* /* params */) {}
void GLES2InterfaceStub::GetQueryObjectuivEXT(GLuint /* id */,
GLenum /* pname */,
GLuint* /* params */) {}
void GLES2InterfaceStub::GetQueryObjecti64vEXT(GLuint /* id */,
GLenum /* pname */,
GLint64* /* params */) {}
void GLES2InterfaceStub::GetQueryObjectui64vEXT(GLuint /* id */,
GLenum /* pname */,
GLuint64* /* params */) {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,9 @@ void BeginTransformFeedback(GLenum primitivemode) override;
void EndQueryEXT(GLenum target) override;
void EndTransformFeedback() override;
void GetQueryivEXT(GLenum target, GLenum pname, GLint* params) override;
void GetQueryObjectivEXT(GLuint id, GLenum pname, GLint* params) override;
void GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) override;
void GetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64* params) override;
void GetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64* params) override;
void SetDisjointValueSyncCHROMIUM() override;
void InsertEventMarkerEXT(GLsizei length, const GLchar* marker) override;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1686,13 +1686,27 @@ void GLES2TraceImplementation::GetQueryivEXT(GLenum target,
gl_->GetQueryivEXT(target, pname, params);
}

void GLES2TraceImplementation::GetQueryObjectivEXT(GLuint id,
GLenum pname,
GLint* params) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::GetQueryObjectivEXT");
gl_->GetQueryObjectivEXT(id, pname, params);
}

void GLES2TraceImplementation::GetQueryObjectuivEXT(GLuint id,
GLenum pname,
GLuint* params) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::GetQueryObjectuivEXT");
gl_->GetQueryObjectuivEXT(id, pname, params);
}

void GLES2TraceImplementation::GetQueryObjecti64vEXT(GLuint id,
GLenum pname,
GLint64* params) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::GetQueryObjecti64vEXT");
gl_->GetQueryObjecti64vEXT(id, pname, params);
}

void GLES2TraceImplementation::GetQueryObjectui64vEXT(GLuint id,
GLenum pname,
GLuint64* params) {
Expand Down
2 changes: 2 additions & 0 deletions gpu/command_buffer/cmd_buffer_functions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,9 @@ GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenumTransformFee
GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenumQueryTarget target);
GL_APICALL void GL_APIENTRY glEndTransformFeedback (void);
GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenumQueryTarget target, GLenumQueryParameter pname, GLint* params);
GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLidQuery id, GLenumQueryObjectParameter pname, GLint* params);
GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLidQuery id, GLenumQueryObjectParameter pname, GLuint* params);
GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLidQuery id, GLenumQueryObjectParameter pname, GLint64* params);
GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLidQuery id, GLenumQueryObjectParameter pname, GLuint64* params);
GL_APICALL void GL_APIENTRY glSetDisjointValueSyncCHROMIUM (void);
GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar* marker);
Expand Down
10 changes: 10 additions & 0 deletions mojo/gpu/mojo_gles2_impl_autogen.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1285,12 +1285,22 @@ void MojoGLES2Impl::GetQueryivEXT(GLenum target, GLenum pname, GLint* params) {
MojoGLES2MakeCurrent(context_);
glGetQueryivEXT(target, pname, params);
}
void MojoGLES2Impl::GetQueryObjectivEXT(GLuint id,
GLenum pname,
GLint* params) {
NOTREACHED() << "Unimplemented GetQueryObjectivEXT.";
}
void MojoGLES2Impl::GetQueryObjectuivEXT(GLuint id,
GLenum pname,
GLuint* params) {
MojoGLES2MakeCurrent(context_);
glGetQueryObjectuivEXT(id, pname, params);
}
void MojoGLES2Impl::GetQueryObjecti64vEXT(GLuint id,
GLenum pname,
GLint64* params) {
NOTREACHED() << "Unimplemented GetQueryObjecti64vEXT.";
}
void MojoGLES2Impl::GetQueryObjectui64vEXT(GLuint id,
GLenum pname,
GLuint64* params) {
Expand Down
2 changes: 2 additions & 0 deletions mojo/gpu/mojo_gles2_impl_autogen.h
Original file line number Diff line number Diff line change
Expand Up @@ -605,7 +605,9 @@ class MojoGLES2Impl : public gpu::gles2::GLES2Interface {
void EndQueryEXT(GLenum target) override;
void EndTransformFeedback() override;
void GetQueryivEXT(GLenum target, GLenum pname, GLint* params) override;
void GetQueryObjectivEXT(GLuint id, GLenum pname, GLint* params) override;
void GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) override;
void GetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64* params) override;
void GetQueryObjectui64vEXT(GLuint id,
GLenum pname,
GLuint64* params) override;
Expand Down

0 comments on commit 996e007

Please sign in to comment.