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

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h

Issue 1165553003: Fine tuning glGetInternalformativ. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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
Index: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
index 09d07c0b587862b0d8f9769f504db5bede9bd5df..6f21f569e9ddc2a5b0078664ea099336a8b4f8a3 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
@@ -1381,11 +1381,9 @@ error::Error GLES2DecoderImpl::HandleGetBooleanv(uint32_t immediate_data_size,
return error::kInvalidArguments;
}
DoGetBooleanv(pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetBooleanv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetBooleanv", "");
}
return error::kNoError;
}
@@ -1463,11 +1461,9 @@ error::Error GLES2DecoderImpl::HandleGetFloatv(uint32_t immediate_data_size,
return error::kInvalidArguments;
}
DoGetFloatv(pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetFloatv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetFloatv", "");
}
return error::kNoError;
}
@@ -1512,11 +1508,9 @@ error::Error GLES2DecoderImpl::HandleGetFramebufferAttachmentParameteriv(
return error::kInvalidArguments;
}
DoGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetFramebufferAttachmentParameteriv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetFramebufferAttachmentParameteriv", "");
}
return error::kNoError;
}
@@ -1544,11 +1538,9 @@ error::Error GLES2DecoderImpl::HandleGetInteger64v(uint32_t immediate_data_size,
return error::kInvalidArguments;
}
DoGetInteger64v(pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetInteger64v");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetInteger64v", "");
}
return error::kNoError;
}
@@ -1577,11 +1569,9 @@ error::Error GLES2DecoderImpl::HandleGetIntegeri_v(uint32_t immediate_data_size,
return error::kInvalidArguments;
}
glGetIntegeri_v(pname, index, data);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetIntegeri_v");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetIntegeri_v", "");
}
return error::kNoError;
}
@@ -1611,11 +1601,9 @@ error::Error GLES2DecoderImpl::HandleGetInteger64i_v(
return error::kInvalidArguments;
}
glGetInteger64i_v(pname, index, data);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetInteger64i_v");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetInteger64i_v", "");
}
return error::kNoError;
}
@@ -1645,11 +1633,9 @@ error::Error GLES2DecoderImpl::HandleGetIntegerv(uint32_t immediate_data_size,
return error::kInvalidArguments;
}
DoGetIntegerv(pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetIntegerv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetIntegerv", "");
}
return error::kNoError;
}
@@ -1668,7 +1654,23 @@ error::Error GLES2DecoderImpl::HandleGetInternalformativ(
GLsizei bufSize = static_cast<GLsizei>(c.bufSize);
typedef cmds::GetInternalformativ::Result Result;
GLsizei num_values = 0;
- GetNumValuesReturnedForGLGet(pname, &num_values);
+ if (bufSize > 0) {
+ // Sanity check for |bufSize| and set its upbound.
+ GLint value = 0;
+ LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetInternalformativ");
+ glGetInternalformativ(target, format, GL_NUM_SAMPLE_COUNTS, 1, &value);
piman 2015/06/01 21:29:37 GL_NUM_SAMPLE_COUNTS is only involved if pname is
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetInternalformativ");
+ if (error != GL_NO_ERROR) {
+ return error::kNoError;
+ }
+ if (value < bufSize) {
+ bufSize = value;
+ }
+ }
+
+ if (bufSize > 0) {
+ num_values = static_cast<GLsizei>(bufSize);
+ }
Result* result = GetSharedMemoryAs<Result*>(
c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
GLint* params = result ? result->GetData() : NULL;
@@ -1681,11 +1683,9 @@ error::Error GLES2DecoderImpl::HandleGetInternalformativ(
return error::kInvalidArguments;
}
glGetInternalformativ(target, format, pname, bufSize, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetInternalformativ");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetInternalformativ", "");
}
return error::kNoError;
}
@@ -1716,11 +1716,9 @@ error::Error GLES2DecoderImpl::HandleGetProgramiv(uint32_t immediate_data_size,
return error::kInvalidArguments;
}
DoGetProgramiv(program, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetProgramiv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetProgramiv", "");
}
return error::kNoError;
}
@@ -1758,11 +1756,9 @@ error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv(
return error::kInvalidArguments;
}
DoGetRenderbufferParameteriv(target, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetRenderbufferParameteriv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetRenderbufferParameteriv", "");
}
return error::kNoError;
}
@@ -1797,11 +1793,9 @@ error::Error GLES2DecoderImpl::HandleGetSamplerParameterfv(
return error::kNoError;
}
glGetSamplerParameterfv(sampler, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameterfv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetSamplerParameterfv", "");
}
return error::kNoError;
}
@@ -1836,11 +1830,9 @@ error::Error GLES2DecoderImpl::HandleGetSamplerParameteriv(
return error::kNoError;
}
glGetSamplerParameteriv(sampler, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameteriv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetSamplerParameteriv", "");
}
return error::kNoError;
}
@@ -1871,11 +1863,9 @@ error::Error GLES2DecoderImpl::HandleGetShaderiv(uint32_t immediate_data_size,
return error::kInvalidArguments;
}
DoGetShaderiv(shader, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetShaderiv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetShaderiv", "");
}
return error::kNoError;
}
@@ -1909,11 +1899,9 @@ error::Error GLES2DecoderImpl::HandleGetSynciv(uint32_t immediate_data_size,
return error::kNoError;
}
glGetSynciv(service_sync, pname, num_values, nullptr, values);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetSynciv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetSynciv", "");
}
return error::kNoError;
}
@@ -1949,11 +1937,9 @@ error::Error GLES2DecoderImpl::HandleGetTexParameterfv(
return error::kInvalidArguments;
}
DoGetTexParameterfv(target, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetTexParameterfv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetTexParameterfv", "");
}
return error::kNoError;
}
@@ -1989,11 +1975,9 @@ error::Error GLES2DecoderImpl::HandleGetTexParameteriv(
return error::kInvalidArguments;
}
DoGetTexParameteriv(target, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetTexParameteriv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetTexParameteriv", "");
}
return error::kNoError;
}
@@ -2025,11 +2009,9 @@ error::Error GLES2DecoderImpl::HandleGetVertexAttribfv(
return error::kInvalidArguments;
}
DoGetVertexAttribfv(index, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribfv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetVertexAttribfv", "");
}
return error::kNoError;
}
@@ -2061,11 +2043,9 @@ error::Error GLES2DecoderImpl::HandleGetVertexAttribiv(
return error::kInvalidArguments;
}
DoGetVertexAttribiv(index, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribiv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetVertexAttribiv", "");
}
return error::kNoError;
}
@@ -2095,11 +2075,9 @@ error::Error GLES2DecoderImpl::HandleGetVertexAttribIiv(
return error::kInvalidArguments;
}
DoGetVertexAttribIiv(index, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribIiv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetVertexAttribIiv", "");
}
return error::kNoError;
}
@@ -2129,11 +2107,9 @@ error::Error GLES2DecoderImpl::HandleGetVertexAttribIuiv(
return error::kInvalidArguments;
}
DoGetVertexAttribIuiv(index, pname, params);
- GLenum error = glGetError();
+ GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribIuiv");
if (error == GL_NO_ERROR) {
result->SetNumResults(num_values);
- } else {
- LOCAL_SET_GL_ERROR(error, "GetVertexAttribIuiv", "");
}
return error::kNoError;
}

Powered by Google App Engine
This is Rietveld 408576698