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

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

Issue 540053004: command_buffer: Table based command dispatch. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 2aa4407a930ec6ef00535bb20f4771e60fff8460..aad82bcbb4b48925c0d17bb6f7dcff8fd6e468a3 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -1664,10 +1664,8 @@ class GLES2DecoderImpl : public GLES2Decoder,
// Generate a member function prototype for each command in an automated and
// typesafe way.
- #define GLES2_CMD_OP(name) \
- Error Handle ## name( \
- uint32 immediate_data_size, \
- const cmds::name& args); \
+#define GLES2_CMD_OP(name) \
+ Error Handle##name(uint32 immediate_data_size, const void* data);
GLES2_COMMAND_LIST(GLES2_CMD_OP)
@@ -3694,8 +3692,10 @@ bool GLES2DecoderImpl::ResizeOffscreenFrameBuffer(const gfx::Size& size) {
return true;
}
-error::Error GLES2DecoderImpl::HandleResizeCHROMIUM(
- uint32 immediate_data_size, const cmds::ResizeCHROMIUM& c) {
+error::Error GLES2DecoderImpl::HandleResizeCHROMIUM(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ResizeCHROMIUM& c =
+ *static_cast<const gles2::cmds::ResizeCHROMIUM*>(cmd_data);
if (!offscreen_target_frame_buffer_.get() && surface_->DeferDraws())
return error::kDeferCommandUntilLater;
@@ -3772,17 +3772,18 @@ error::Error GLES2DecoderImpl::DoCommand(
uint32 immediate_data_size =
(arg_count - info_arg_count) * sizeof(CommandBufferEntry); // NOLINT
- switch (command) {
- #define GLES2_CMD_OP(name) \
- case cmds::name::kCmdId: \
- result = Handle ## name( \
- immediate_data_size, \
- *static_cast<const gles2::cmds::name*>(cmd_data)); \
- break; \
-
- GLES2_COMMAND_LIST(GLES2_CMD_OP)
- #undef GLES2_CMD_OP
- }
+
+ typedef gpu::gles2::GLES2Decoder::Error (GLES2DecoderImpl::*CmdHandler)(
+ uint32 immediate_data_size, const void* data);
+
+ static CmdHandler cmd_handlers[] = {
piman 2014/09/05 22:10:16 nit: can we fold this into g_command_info? It seem
vmiura 2014/09/05 22:35:44 Done.
+#define GLES2_CMD_OP(name) &GLES2DecoderImpl::Handle##name,
+ GLES2_COMMAND_LIST(GLES2_CMD_OP)
+#undef GLES2_CMD_OP
+ };
+
+ result =
+ (this->*cmd_handlers[command_index])(immediate_data_size, cmd_data);
if (doing_gpu_trace)
gpu_tracer_->End(kTraceDecoder);
@@ -4808,7 +4809,10 @@ void GLES2DecoderImpl::DoBindAttribLocation(
}
error::Error GLES2DecoderImpl::HandleBindAttribLocationBucket(
- uint32 immediate_data_size, const cmds::BindAttribLocationBucket& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BindAttribLocationBucket& c =
+ *static_cast<const gles2::cmds::BindAttribLocationBucket*>(cmd_data);
GLuint program = static_cast<GLuint>(c.program);
GLuint index = static_cast<GLuint>(c.index);
Bucket* bucket = GetBucket(c.name_bucket_id);
@@ -4859,7 +4863,10 @@ void GLES2DecoderImpl::DoBindUniformLocationCHROMIUM(
error::Error GLES2DecoderImpl::HandleBindUniformLocationCHROMIUMBucket(
uint32 immediate_data_size,
- const cmds::BindUniformLocationCHROMIUMBucket& c) {
+ const void* cmd_data) {
+ const gles2::cmds::BindUniformLocationCHROMIUMBucket& c =
+ *static_cast<const gles2::cmds::BindUniformLocationCHROMIUMBucket*>(
+ cmd_data);
GLuint program = static_cast<GLuint>(c.program);
GLint location = static_cast<GLint>(c.location);
Bucket* bucket = GetBucket(c.name_bucket_id);
@@ -4874,8 +4881,10 @@ error::Error GLES2DecoderImpl::HandleBindUniformLocationCHROMIUMBucket(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDeleteShader(
- uint32 immediate_data_size, const cmds::DeleteShader& c) {
+error::Error GLES2DecoderImpl::HandleDeleteShader(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DeleteShader& c =
+ *static_cast<const gles2::cmds::DeleteShader*>(cmd_data);
GLuint client_id = c.shader;
if (client_id) {
Shader* shader = GetShader(client_id);
@@ -4891,8 +4900,10 @@ error::Error GLES2DecoderImpl::HandleDeleteShader(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDeleteProgram(
- uint32 immediate_data_size, const cmds::DeleteProgram& c) {
+error::Error GLES2DecoderImpl::HandleDeleteProgram(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DeleteProgram& c =
+ *static_cast<const gles2::cmds::DeleteProgram*>(cmd_data);
GLuint client_id = c.program;
if (client_id) {
Program* program = GetProgram(client_id);
@@ -4917,7 +4928,10 @@ void GLES2DecoderImpl::DoDeleteSharedIdsCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleDeleteSharedIdsCHROMIUM(
- uint32 immediate_data_size, const cmds::DeleteSharedIdsCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DeleteSharedIdsCHROMIUM& c =
+ *static_cast<const gles2::cmds::DeleteSharedIdsCHROMIUM*>(cmd_data);
GLuint namespace_id = static_cast<GLuint>(c.namespace_id);
GLsizei n = static_cast<GLsizei>(c.n);
uint32 data_size;
@@ -4953,7 +4967,10 @@ void GLES2DecoderImpl::DoGenSharedIdsCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleGenSharedIdsCHROMIUM(
- uint32 immediate_data_size, const cmds::GenSharedIdsCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GenSharedIdsCHROMIUM& c =
+ *static_cast<const gles2::cmds::GenSharedIdsCHROMIUM*>(cmd_data);
GLuint namespace_id = static_cast<GLuint>(c.namespace_id);
GLuint id_offset = static_cast<GLuint>(c.id_offset);
GLsizei n = static_cast<GLsizei>(c.n);
@@ -4991,7 +5008,10 @@ void GLES2DecoderImpl::DoRegisterSharedIdsCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleRegisterSharedIdsCHROMIUM(
- uint32 immediate_data_size, const cmds::RegisterSharedIdsCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::RegisterSharedIdsCHROMIUM& c =
+ *static_cast<const gles2::cmds::RegisterSharedIdsCHROMIUM*>(cmd_data);
GLuint namespace_id = static_cast<GLuint>(c.namespace_id);
GLsizei n = static_cast<GLsizei>(c.n);
uint32 data_size;
@@ -6565,8 +6585,9 @@ error::Error GLES2DecoderImpl::DoDrawArrays(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDrawArrays(
- uint32 immediate_data_size, const cmds::DrawArrays& c) {
+error::Error GLES2DecoderImpl::HandleDrawArrays(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const cmds::DrawArrays& c = *static_cast<const cmds::DrawArrays*>(cmd_data);
return DoDrawArrays("glDrawArrays",
false,
static_cast<GLenum>(c.mode),
@@ -6576,7 +6597,10 @@ error::Error GLES2DecoderImpl::HandleDrawArrays(
}
error::Error GLES2DecoderImpl::HandleDrawArraysInstancedANGLE(
- uint32 immediate_data_size, const cmds::DrawArraysInstancedANGLE& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DrawArraysInstancedANGLE& c =
+ *static_cast<const gles2::cmds::DrawArraysInstancedANGLE*>(cmd_data);
if (!features().angle_instanced_arrays) {
LOCAL_SET_GL_ERROR(
GL_INVALID_OPERATION,
@@ -6704,8 +6728,10 @@ error::Error GLES2DecoderImpl::DoDrawElements(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleDrawElements(
- uint32 immediate_data_size, const cmds::DrawElements& c) {
+error::Error GLES2DecoderImpl::HandleDrawElements(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DrawElements& c =
+ *static_cast<const gles2::cmds::DrawElements*>(cmd_data);
return DoDrawElements("glDrawElements",
false,
static_cast<GLenum>(c.mode),
@@ -6716,7 +6742,10 @@ error::Error GLES2DecoderImpl::HandleDrawElements(
}
error::Error GLES2DecoderImpl::HandleDrawElementsInstancedANGLE(
- uint32 immediate_data_size, const cmds::DrawElementsInstancedANGLE& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DrawElementsInstancedANGLE& c =
+ *static_cast<const gles2::cmds::DrawElementsInstancedANGLE*>(cmd_data);
if (!features().angle_instanced_arrays) {
LOCAL_SET_GL_ERROR(
GL_INVALID_OPERATION,
@@ -6770,7 +6799,10 @@ error::Error GLES2DecoderImpl::ShaderSourceHelper(
}
error::Error GLES2DecoderImpl::HandleShaderSourceBucket(
- uint32 immediate_data_size, const cmds::ShaderSourceBucket& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ShaderSourceBucket& c =
+ *static_cast<const gles2::cmds::ShaderSourceBucket*>(cmd_data);
Bucket* bucket = GetBucket(c.data_bucket_id);
if (!bucket || bucket->size() == 0) {
return error::kInvalidArguments;
@@ -6825,8 +6857,10 @@ void GLES2DecoderImpl::DoGetShaderiv(
glGetShaderiv(shader->service_id(), pname, params);
}
-error::Error GLES2DecoderImpl::HandleGetShaderSource(
- uint32 immediate_data_size, const cmds::GetShaderSource& c) {
+error::Error GLES2DecoderImpl::HandleGetShaderSource(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetShaderSource& c =
+ *static_cast<const gles2::cmds::GetShaderSource*>(cmd_data);
GLuint shader_id = c.shader;
uint32 bucket_id = static_cast<uint32>(c.bucket_id);
Bucket* bucket = CreateBucket(bucket_id);
@@ -6841,7 +6875,10 @@ error::Error GLES2DecoderImpl::HandleGetShaderSource(
error::Error GLES2DecoderImpl::HandleGetTranslatedShaderSourceANGLE(
uint32 immediate_data_size,
- const cmds::GetTranslatedShaderSourceANGLE& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetTranslatedShaderSourceANGLE& c =
+ *static_cast<const gles2::cmds::GetTranslatedShaderSourceANGLE*>(
+ cmd_data);
GLuint shader_id = c.shader;
uint32 bucket_id = static_cast<uint32>(c.bucket_id);
Bucket* bucket = CreateBucket(bucket_id);
@@ -6858,7 +6895,10 @@ error::Error GLES2DecoderImpl::HandleGetTranslatedShaderSourceANGLE(
}
error::Error GLES2DecoderImpl::HandleGetProgramInfoLog(
- uint32 immediate_data_size, const cmds::GetProgramInfoLog& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetProgramInfoLog& c =
+ *static_cast<const gles2::cmds::GetProgramInfoLog*>(cmd_data);
GLuint program_id = c.program;
uint32 bucket_id = static_cast<uint32>(c.bucket_id);
Bucket* bucket = CreateBucket(bucket_id);
@@ -6873,7 +6913,10 @@ error::Error GLES2DecoderImpl::HandleGetProgramInfoLog(
}
error::Error GLES2DecoderImpl::HandleGetShaderInfoLog(
- uint32 immediate_data_size, const cmds::GetShaderInfoLog& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetShaderInfoLog& c =
+ *static_cast<const gles2::cmds::GetShaderInfoLog*>(cmd_data);
GLuint shader_id = c.shader;
uint32 bucket_id = static_cast<uint32>(c.bucket_id);
Bucket* bucket = CreateBucket(bucket_id);
@@ -7166,7 +7209,10 @@ void GLES2DecoderImpl::DoVertexAttrib4fv(GLuint index, const GLfloat* v) {
}
error::Error GLES2DecoderImpl::HandleVertexAttribPointer(
- uint32 immediate_data_size, const cmds::VertexAttribPointer& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttribPointer& c =
+ *static_cast<const gles2::cmds::VertexAttribPointer*>(cmd_data);
if (!state_.bound_array_buffer.get() ||
state_.bound_array_buffer->IsDeleted()) {
@@ -7260,7 +7306,10 @@ void GLES2DecoderImpl::DoViewport(GLint x, GLint y, GLsizei width,
}
error::Error GLES2DecoderImpl::HandleVertexAttribDivisorANGLE(
- uint32 immediate_data_size, const cmds::VertexAttribDivisorANGLE& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::VertexAttribDivisorANGLE& c =
+ *static_cast<const gles2::cmds::VertexAttribDivisorANGLE*>(cmd_data);
if (!features().angle_instanced_arrays) {
LOCAL_SET_GL_ERROR(
GL_INVALID_OPERATION,
@@ -7411,9 +7460,10 @@ void GLES2DecoderImpl::FinishReadPixels(
}
}
-
-error::Error GLES2DecoderImpl::HandleReadPixels(
- uint32 immediate_data_size, const cmds::ReadPixels& c) {
+error::Error GLES2DecoderImpl::HandleReadPixels(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::ReadPixels& c =
+ *static_cast<const gles2::cmds::ReadPixels*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleReadPixels");
error::Error fbo_error = WillAccessBoundFramebufferForRead();
if (fbo_error != error::kNoError)
@@ -7579,8 +7629,10 @@ error::Error GLES2DecoderImpl::HandleReadPixels(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandlePixelStorei(
- uint32 immediate_data_size, const cmds::PixelStorei& c) {
+error::Error GLES2DecoderImpl::HandlePixelStorei(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::PixelStorei& c =
+ *static_cast<const gles2::cmds::PixelStorei*>(cmd_data);
GLenum pname = c.pname;
GLenum param = c.param;
if (!validators_->pixel_store.IsValid(pname)) {
@@ -7628,7 +7680,10 @@ error::Error GLES2DecoderImpl::HandlePixelStorei(
}
error::Error GLES2DecoderImpl::HandlePostSubBufferCHROMIUM(
- uint32 immediate_data_size, const cmds::PostSubBufferCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::PostSubBufferCHROMIUM& c =
+ *static_cast<const gles2::cmds::PostSubBufferCHROMIUM*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandlePostSubBufferCHROMIUM");
{
TRACE_EVENT_SYNTHETIC_DELAY("gpu.PresentingFrame");
@@ -7658,7 +7713,9 @@ error::Error GLES2DecoderImpl::HandlePostSubBufferCHROMIUM(
error::Error GLES2DecoderImpl::HandleScheduleOverlayPlaneCHROMIUM(
uint32 immediate_data_size,
- const cmds::ScheduleOverlayPlaneCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::ScheduleOverlayPlaneCHROMIUM& c =
+ *static_cast<const gles2::cmds::ScheduleOverlayPlaneCHROMIUM*>(cmd_data);
TextureRef* ref = texture_manager()->GetTexture(c.overlay_texture_id);
if (!ref) {
LOCAL_SET_GL_ERROR(GL_INVALID_VALUE,
@@ -7727,7 +7784,10 @@ error::Error GLES2DecoderImpl::GetAttribLocationHelper(
}
error::Error GLES2DecoderImpl::HandleGetAttribLocation(
- uint32 immediate_data_size, const cmds::GetAttribLocation& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetAttribLocation& c =
+ *static_cast<const gles2::cmds::GetAttribLocation*>(cmd_data);
Bucket* bucket = GetBucket(c.name_bucket_id);
if (!bucket) {
return error::kInvalidArguments;
@@ -7773,7 +7833,10 @@ error::Error GLES2DecoderImpl::GetUniformLocationHelper(
}
error::Error GLES2DecoderImpl::HandleGetUniformLocation(
- uint32 immediate_data_size, const cmds::GetUniformLocation& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetUniformLocation& c =
+ *static_cast<const gles2::cmds::GetUniformLocation*>(cmd_data);
Bucket* bucket = GetBucket(c.name_bucket_id);
if (!bucket) {
return error::kInvalidArguments;
@@ -7786,8 +7849,10 @@ error::Error GLES2DecoderImpl::HandleGetUniformLocation(
c.program, c.location_shm_id, c.location_shm_offset, name_str);
}
-error::Error GLES2DecoderImpl::HandleGetString(
- uint32 immediate_data_size, const cmds::GetString& c) {
+error::Error GLES2DecoderImpl::HandleGetString(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetString& c =
+ *static_cast<const gles2::cmds::GetString*>(cmd_data);
GLenum name = static_cast<GLenum>(c.name);
if (!validators_->string_type.IsValid(name)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetString", name, "name");
@@ -7860,8 +7925,10 @@ error::Error GLES2DecoderImpl::HandleGetString(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleBufferData(
- uint32 immediate_data_size, const cmds::BufferData& c) {
+error::Error GLES2DecoderImpl::HandleBufferData(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BufferData& c =
+ *static_cast<const gles2::cmds::BufferData*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLsizeiptr size = static_cast<GLsizeiptr>(c.size);
uint32 data_shm_id = static_cast<uint32>(c.data_shm_id);
@@ -8265,7 +8332,10 @@ error::Error GLES2DecoderImpl::DoCompressedTexImage2D(
}
error::Error GLES2DecoderImpl::HandleCompressedTexImage2D(
- uint32 immediate_data_size, const cmds::CompressedTexImage2D& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::CompressedTexImage2D& c =
+ *static_cast<const gles2::cmds::CompressedTexImage2D*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
GLenum internal_format = static_cast<GLenum>(c.internalformat);
@@ -8288,7 +8358,10 @@ error::Error GLES2DecoderImpl::HandleCompressedTexImage2D(
}
error::Error GLES2DecoderImpl::HandleCompressedTexImage2DBucket(
- uint32 immediate_data_size, const cmds::CompressedTexImage2DBucket& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::CompressedTexImage2DBucket& c =
+ *static_cast<const gles2::cmds::CompressedTexImage2DBucket*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
GLenum internal_format = static_cast<GLenum>(c.internalformat);
@@ -8312,7 +8385,9 @@ error::Error GLES2DecoderImpl::HandleCompressedTexImage2DBucket(
error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2DBucket(
uint32 immediate_data_size,
- const cmds::CompressedTexSubImage2DBucket& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CompressedTexSubImage2DBucket& c =
+ *static_cast<const gles2::cmds::CompressedTexSubImage2DBucket*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
GLint xoffset = static_cast<GLint>(c.xoffset);
@@ -8360,8 +8435,10 @@ error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2DBucket(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleTexImage2D(
- uint32 immediate_data_size, const cmds::TexImage2D& c) {
+error::Error GLES2DecoderImpl::HandleTexImage2D(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::TexImage2D& c =
+ *static_cast<const gles2::cmds::TexImage2D*>(cmd_data);
TRACE_EVENT2("gpu", "GLES2DecoderImpl::HandleTexImage2D",
"width", c.width, "height", c.height);
// Set as failed for now, but if it successed, this will be set to not failed.
@@ -8844,8 +8921,10 @@ error::Error GLES2DecoderImpl::DoTexSubImage2D(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleTexSubImage2D(
- uint32 immediate_data_size, const cmds::TexSubImage2D& c) {
+error::Error GLES2DecoderImpl::HandleTexSubImage2D(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::TexSubImage2D& c =
+ *static_cast<const gles2::cmds::TexSubImage2D*>(cmd_data);
TRACE_EVENT2("gpu", "GLES2DecoderImpl::HandleTexSubImage2D",
"width", c.width, "height", c.height);
GLboolean internal = static_cast<GLboolean>(c.internal);
@@ -8873,7 +8952,10 @@ error::Error GLES2DecoderImpl::HandleTexSubImage2D(
}
error::Error GLES2DecoderImpl::HandleGetVertexAttribPointerv(
- uint32 immediate_data_size, const cmds::GetVertexAttribPointerv& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetVertexAttribPointerv& c =
+ *static_cast<const gles2::cmds::GetVertexAttribPointerv*>(cmd_data);
GLuint index = static_cast<GLuint>(c.index);
GLenum pname = static_cast<GLenum>(c.pname);
typedef cmds::GetVertexAttribPointerv::Result Result;
@@ -8962,8 +9044,10 @@ bool GLES2DecoderImpl::GetUniformSetup(
return true;
}
-error::Error GLES2DecoderImpl::HandleGetUniformiv(
- uint32 immediate_data_size, const cmds::GetUniformiv& c) {
+error::Error GLES2DecoderImpl::HandleGetUniformiv(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetUniformiv& c =
+ *static_cast<const gles2::cmds::GetUniformiv*>(cmd_data);
GLuint program = c.program;
GLint fake_location = c.location;
GLuint service_id;
@@ -8981,8 +9065,10 @@ error::Error GLES2DecoderImpl::HandleGetUniformiv(
return error;
}
-error::Error GLES2DecoderImpl::HandleGetUniformfv(
- uint32 immediate_data_size, const cmds::GetUniformfv& c) {
+error::Error GLES2DecoderImpl::HandleGetUniformfv(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetUniformfv& c =
+ *static_cast<const gles2::cmds::GetUniformfv*>(cmd_data);
GLuint program = c.program;
GLint fake_location = c.location;
GLuint service_id;
@@ -9012,7 +9098,10 @@ error::Error GLES2DecoderImpl::HandleGetUniformfv(
}
error::Error GLES2DecoderImpl::HandleGetShaderPrecisionFormat(
- uint32 immediate_data_size, const cmds::GetShaderPrecisionFormat& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetShaderPrecisionFormat& c =
+ *static_cast<const gles2::cmds::GetShaderPrecisionFormat*>(cmd_data);
GLenum shader_type = static_cast<GLenum>(c.shadertype);
GLenum precision_type = static_cast<GLenum>(c.precisiontype);
typedef cmds::GetShaderPrecisionFormat::Result Result;
@@ -9050,7 +9139,10 @@ error::Error GLES2DecoderImpl::HandleGetShaderPrecisionFormat(
}
error::Error GLES2DecoderImpl::HandleGetAttachedShaders(
- uint32 immediate_data_size, const cmds::GetAttachedShaders& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetAttachedShaders& c =
+ *static_cast<const gles2::cmds::GetAttachedShaders*>(cmd_data);
uint32 result_size = c.result_size;
GLuint program_id = static_cast<GLuint>(c.program);
Program* program = GetProgramInfoNotShader(
@@ -9084,7 +9176,10 @@ error::Error GLES2DecoderImpl::HandleGetAttachedShaders(
}
error::Error GLES2DecoderImpl::HandleGetActiveUniform(
- uint32 immediate_data_size, const cmds::GetActiveUniform& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetActiveUniform& c =
+ *static_cast<const gles2::cmds::GetActiveUniform*>(cmd_data);
GLuint program_id = c.program;
GLuint index = c.index;
uint32 name_bucket_id = c.name_bucket_id;
@@ -9118,8 +9213,10 @@ error::Error GLES2DecoderImpl::HandleGetActiveUniform(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleGetActiveAttrib(
- uint32 immediate_data_size, const cmds::GetActiveAttrib& c) {
+error::Error GLES2DecoderImpl::HandleGetActiveAttrib(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetActiveAttrib& c =
+ *static_cast<const gles2::cmds::GetActiveAttrib*>(cmd_data);
GLuint program_id = c.program;
GLuint index = c.index;
uint32 name_bucket_id = c.name_bucket_id;
@@ -9153,8 +9250,8 @@ error::Error GLES2DecoderImpl::HandleGetActiveAttrib(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleShaderBinary(
- uint32 immediate_data_size, const cmds::ShaderBinary& c) {
+error::Error GLES2DecoderImpl::HandleShaderBinary(uint32 immediate_data_size,
+ const void* cmd_data) {
#if 1 // No binary shader support.
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glShaderBinary", "not supported");
return error::kNoError;
@@ -9310,7 +9407,10 @@ void GLES2DecoderImpl::DoSwapBuffers() {
}
error::Error GLES2DecoderImpl::HandleEnableFeatureCHROMIUM(
- uint32 immediate_data_size, const cmds::EnableFeatureCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::EnableFeatureCHROMIUM& c =
+ *static_cast<const gles2::cmds::EnableFeatureCHROMIUM*>(cmd_data);
Bucket* bucket = GetBucket(c.bucket_id);
if (!bucket || bucket->size() == 0) {
return error::kInvalidArguments;
@@ -9358,7 +9458,10 @@ error::Error GLES2DecoderImpl::HandleEnableFeatureCHROMIUM(
error::Error GLES2DecoderImpl::HandleGetRequestableExtensionsCHROMIUM(
uint32 immediate_data_size,
- const cmds::GetRequestableExtensionsCHROMIUM& c) {
+ const void* cmd_data) {
+ const gles2::cmds::GetRequestableExtensionsCHROMIUM& c =
+ *static_cast<const gles2::cmds::GetRequestableExtensionsCHROMIUM*>(
+ cmd_data);
Bucket* bucket = CreateBucket(c.bucket_id);
scoped_refptr<FeatureInfo> info(new FeatureInfo());
info->Initialize(disallowed_features_);
@@ -9367,7 +9470,10 @@ error::Error GLES2DecoderImpl::HandleGetRequestableExtensionsCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleRequestExtensionCHROMIUM(
- uint32 immediate_data_size, const cmds::RequestExtensionCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::RequestExtensionCHROMIUM& c =
+ *static_cast<const gles2::cmds::RequestExtensionCHROMIUM*>(cmd_data);
Bucket* bucket = GetBucket(c.bucket_id);
if (!bucket || bucket->size() == 0) {
return error::kInvalidArguments;
@@ -9412,7 +9518,10 @@ error::Error GLES2DecoderImpl::HandleRequestExtensionCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleGetMultipleIntegervCHROMIUM(
- uint32 immediate_data_size, const cmds::GetMultipleIntegervCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetMultipleIntegervCHROMIUM& c =
+ *static_cast<const gles2::cmds::GetMultipleIntegervCHROMIUM*>(cmd_data);
GLuint count = c.count;
uint32 pnames_size;
if (!SafeMultiplyUint32(count, sizeof(GLenum), &pnames_size)) {
@@ -9491,7 +9600,10 @@ error::Error GLES2DecoderImpl::HandleGetMultipleIntegervCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleGetProgramInfoCHROMIUM(
- uint32 immediate_data_size, const cmds::GetProgramInfoCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GetProgramInfoCHROMIUM& c =
+ *static_cast<const gles2::cmds::GetProgramInfoCHROMIUM*>(cmd_data);
GLuint program_id = static_cast<GLuint>(c.program);
uint32 bucket_id = c.bucket_id;
Bucket* bucket = CreateBucket(bucket_id);
@@ -9560,12 +9672,16 @@ void GLES2DecoderImpl::LoseContext(uint32 reset_status) {
}
error::Error GLES2DecoderImpl::HandleInsertSyncPointCHROMIUM(
- uint32 immediate_data_size, const cmds::InsertSyncPointCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
return error::kUnknownCommand;
}
error::Error GLES2DecoderImpl::HandleWaitSyncPointCHROMIUM(
- uint32 immediate_data_size, const cmds::WaitSyncPointCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::WaitSyncPointCHROMIUM& c =
+ *static_cast<const gles2::cmds::WaitSyncPointCHROMIUM*>(cmd_data);
group_->mailbox_manager()->PullTextureUpdates();
if (wait_sync_point_callback_.is_null())
return error::kNoError;
@@ -9575,7 +9691,8 @@ error::Error GLES2DecoderImpl::HandleWaitSyncPointCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleDiscardBackbufferCHROMIUM(
- uint32 immediate_data_size, const cmds::DiscardBackbufferCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
if (surface_->DeferDraws())
return error::kDeferCommandUntilLater;
if (!surface_->SetBackbufferAllocation(false))
@@ -9658,8 +9775,10 @@ void GLES2DecoderImpl::PerformIdleWork() {
ProcessFinishedAsyncTransfers();
}
-error::Error GLES2DecoderImpl::HandleBeginQueryEXT(
- uint32 immediate_data_size, const cmds::BeginQueryEXT& c) {
+error::Error GLES2DecoderImpl::HandleBeginQueryEXT(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BeginQueryEXT& c =
+ *static_cast<const gles2::cmds::BeginQueryEXT*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
GLuint client_id = static_cast<GLuint>(c.id);
int32 sync_shm_id = static_cast<int32>(c.sync_data_shm_id);
@@ -9731,8 +9850,10 @@ error::Error GLES2DecoderImpl::HandleBeginQueryEXT(
return error::kNoError;
}
-error::Error GLES2DecoderImpl::HandleEndQueryEXT(
- uint32 immediate_data_size, const cmds::EndQueryEXT& c) {
+error::Error GLES2DecoderImpl::HandleEndQueryEXT(uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::EndQueryEXT& c =
+ *static_cast<const gles2::cmds::EndQueryEXT*>(cmd_data);
GLenum target = static_cast<GLenum>(c.target);
uint32 submit_count = static_cast<GLuint>(c.submit_count);
ContextState::QueryMap::iterator it = state_.current_queries.find(target);
@@ -10292,7 +10413,8 @@ void GLES2DecoderImpl::DoTexStorage2DEXT(
}
error::Error GLES2DecoderImpl::HandleGenMailboxCHROMIUM(
- uint32 immediate_data_size, const cmds::GenMailboxCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
return error::kUnknownCommand;
}
@@ -10412,7 +10534,11 @@ void GLES2DecoderImpl::DoConsumeTextureCHROMIUM(GLenum target,
error::Error GLES2DecoderImpl::HandleCreateAndConsumeTextureCHROMIUMImmediate(
uint32_t immediate_data_size,
- const gles2::cmds::CreateAndConsumeTextureCHROMIUMImmediate& c) {
+ const void* cmd_data) {
+ const gles2::cmds::CreateAndConsumeTextureCHROMIUMImmediate& c =
+ *static_cast<
+ const gles2::cmds::CreateAndConsumeTextureCHROMIUMImmediate*>(
+ cmd_data);
GLenum target = static_cast<GLenum>(c.target);
uint32_t data_size;
if (!ComputeDataSize(1, sizeof(GLbyte), 64, &data_size)) {
@@ -10585,7 +10711,10 @@ void GLES2DecoderImpl::DoReleaseTexImage2DCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleTraceBeginCHROMIUM(
- uint32 immediate_data_size, const cmds::TraceBeginCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::TraceBeginCHROMIUM& c =
+ *static_cast<const gles2::cmds::TraceBeginCHROMIUM*>(cmd_data);
Bucket* bucket = GetBucket(c.bucket_id);
if (!bucket || bucket->size() == 0) {
return error::kInvalidArguments;
@@ -10763,7 +10892,10 @@ base::Closure GLES2DecoderImpl::AsyncUploadTokenCompletionClosure(
}
error::Error GLES2DecoderImpl::HandleAsyncTexImage2DCHROMIUM(
- uint32 immediate_data_size, const cmds::AsyncTexImage2DCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::AsyncTexImage2DCHROMIUM& c =
+ *static_cast<const gles2::cmds::AsyncTexImage2DCHROMIUM*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleAsyncTexImage2DCHROMIUM");
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
@@ -10867,7 +10999,10 @@ error::Error GLES2DecoderImpl::HandleAsyncTexImage2DCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleAsyncTexSubImage2DCHROMIUM(
- uint32 immediate_data_size, const cmds::AsyncTexSubImage2DCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::AsyncTexSubImage2DCHROMIUM& c =
+ *static_cast<const gles2::cmds::AsyncTexSubImage2DCHROMIUM*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleAsyncTexSubImage2DCHROMIUM");
GLenum target = static_cast<GLenum>(c.target);
GLint level = static_cast<GLint>(c.level);
@@ -10964,7 +11099,10 @@ error::Error GLES2DecoderImpl::HandleAsyncTexSubImage2DCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleWaitAsyncTexImage2DCHROMIUM(
- uint32 immediate_data_size, const cmds::WaitAsyncTexImage2DCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::WaitAsyncTexImage2DCHROMIUM& c =
+ *static_cast<const gles2::cmds::WaitAsyncTexImage2DCHROMIUM*>(cmd_data);
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleWaitAsyncTexImage2DCHROMIUM");
GLenum target = static_cast<GLenum>(c.target);
@@ -10995,7 +11133,8 @@ error::Error GLES2DecoderImpl::HandleWaitAsyncTexImage2DCHROMIUM(
}
error::Error GLES2DecoderImpl::HandleWaitAllAsyncTexImage2DCHROMIUM(
- uint32 immediate_data_size, const cmds::WaitAllAsyncTexImage2DCHROMIUM& c) {
+ uint32 immediate_data_size,
+ const void* data) {
TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleWaitAsyncTexImage2DCHROMIUM");
GetAsyncPixelTransferManager()->WaitAllAsyncTexImage2D();
« no previous file with comments | « gpu/command_buffer/build_gles2_cmd_buffer.py ('k') | gpu/command_buffer/service/gles2_cmd_decoder_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698