summaryrefslogtreecommitdiff
path: root/gpu
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2014-11-12 17:59:43 +0000
committerTorne (Richard Coles) <torne@google.com>2014-11-12 17:59:43 +0000
commit1850ca92fc5c5faa2907b3befcf40067265148cc (patch)
tree7d10585f25356b3ee63b5ab4255161fe27725ee4 /gpu
parente9e1f6521e4fef99aa1a1928c70ef3dfb55a8d9e (diff)
downloadchromium_org-1850ca92fc5c5faa2907b3befcf40067265148cc.tar.gz
Merge from Chromium at DEPS revision 03655fd3f6d7
This commit was generated by merge_to_master.py. Change-Id: Ifba5396691b9164ba027be04398f7bc8e938750d
Diffstat (limited to 'gpu')
-rw-r--r--gpu/BUILD.gn2
-rw-r--r--gpu/GLES2/extensions/CHROMIUM/CHROMIUM_subscribe_uniform.txt113
-rw-r--r--gpu/GLES2/gl2chromium_autogen.h8
-rw-r--r--gpu/GLES2/gl2extchromium.h29
-rwxr-xr-xgpu/command_buffer/build_gles2_cmd_buffer.py63
-rw-r--r--gpu/command_buffer/client/client_test_helper.cc11
-rw-r--r--gpu/command_buffer/client/client_test_helper.h2
-rw-r--r--gpu/command_buffer/client/cmd_buffer_helper_test.cc2
-rw-r--r--gpu/command_buffer/client/gles2_c_lib_autogen.h169
-rw-r--r--gpu/command_buffer/client/gles2_cmd_helper_autogen.h188
-rw-r--r--gpu/command_buffer/client/gles2_implementation.cc55
-rw-r--r--gpu/command_buffer/client/gles2_implementation.h8
-rw-r--r--gpu/command_buffer/client/gles2_implementation_autogen.h16
-rw-r--r--gpu/command_buffer/client/gles2_implementation_impl_autogen.h231
-rw-r--r--gpu/command_buffer/client/gles2_implementation_unittest.cc4
-rw-r--r--gpu/command_buffer/client/gles2_implementation_unittest_autogen.h144
-rw-r--r--gpu/command_buffer/client/gles2_interface_autogen.h10
-rw-r--r--gpu/command_buffer/client/gles2_interface_stub_autogen.h9
-rw-r--r--gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h22
-rw-r--r--gpu/command_buffer/client/gles2_trace_implementation_autogen.h9
-rw-r--r--gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h133
-rw-r--r--gpu/command_buffer/cmd_buffer_functions.txt7
-rw-r--r--gpu/command_buffer/common/command_buffer.h10
-rw-r--r--gpu/command_buffer/common/command_buffer_mock.h1
-rw-r--r--gpu/command_buffer/common/command_buffer_shared_test.cc1
-rw-r--r--gpu/command_buffer/common/gles2_cmd_format.h1
-rw-r--r--gpu/command_buffer/common/gles2_cmd_format_autogen.h458
-rw-r--r--gpu/command_buffer/common/gles2_cmd_format_test_autogen.h912
-rw-r--r--gpu/command_buffer/common/gles2_cmd_ids_autogen.h43
-rw-r--r--gpu/command_buffer/common/gles2_cmd_utils_autogen.h2
-rw-r--r--gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h249
-rw-r--r--gpu/command_buffer/service/BUILD.gn2
-rw-r--r--gpu/command_buffer/service/command_buffer_service.cc6
-rw-r--r--gpu/command_buffer/service/command_buffer_service.h4
-rw-r--r--gpu/command_buffer/service/command_buffer_service_unittest.cc4
-rw-r--r--gpu/command_buffer/service/context_group.cc7
-rw-r--r--gpu/command_buffer/service/context_group.h7
-rw-r--r--gpu/command_buffer/service/context_state.h4
-rw-r--r--gpu/command_buffer/service/context_state_impl_autogen.h78
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc217
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_autogen.h387
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h211
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h86
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h9
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc1
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h10
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_valuebuffer.cc130
-rw-r--r--gpu/command_buffer/service/gles2_cmd_validation_autogen.h2
-rw-r--r--gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h12
-rw-r--r--gpu/command_buffer/service/gpu_scheduler.cc4
-rw-r--r--gpu/command_buffer/service/gpu_scheduler_unittest.cc14
-rw-r--r--gpu/command_buffer/service/program_manager.cc3
-rw-r--r--gpu/command_buffer/service/program_manager.h1
-rw-r--r--gpu/command_buffer/service/valuebuffer_manager.cc117
-rw-r--r--gpu/command_buffer/service/valuebuffer_manager.h123
-rw-r--r--gpu/command_buffer/service/valuebuffer_manager_unittest.cc100
-rw-r--r--gpu/command_buffer_service.gypi2
-rw-r--r--gpu/command_buffer_service.target.darwin-arm.mk1
-rw-r--r--gpu/command_buffer_service.target.darwin-arm64.mk1
-rw-r--r--gpu/command_buffer_service.target.darwin-mips.mk1
-rw-r--r--gpu/command_buffer_service.target.darwin-mips64.mk1
-rw-r--r--gpu/command_buffer_service.target.darwin-x86.mk1
-rw-r--r--gpu/command_buffer_service.target.darwin-x86_64.mk1
-rw-r--r--gpu/command_buffer_service.target.linux-arm.mk1
-rw-r--r--gpu/command_buffer_service.target.linux-arm64.mk1
-rw-r--r--gpu/command_buffer_service.target.linux-mips.mk1
-rw-r--r--gpu/command_buffer_service.target.linux-mips64.mk1
-rw-r--r--gpu/command_buffer_service.target.linux-x86.mk1
-rw-r--r--gpu/command_buffer_service.target.linux-x86_64.mk1
-rw-r--r--gpu/config/BUILD.gn3
-rw-r--r--gpu/gpu.gyp2
-rw-r--r--gpu/ipc/gpu_command_buffer_traits.cc25
-rw-r--r--gpu/ipc/gpu_command_buffer_traits.h3
-rw-r--r--gpu/ipc/gpu_command_buffer_traits_multi.h29
74 files changed, 3034 insertions, 1493 deletions
diff --git a/gpu/BUILD.gn b/gpu/BUILD.gn
index 110fb443e9..c1857cef05 100644
--- a/gpu/BUILD.gn
+++ b/gpu/BUILD.gn
@@ -186,6 +186,7 @@ test("gpu_unittests") {
"command_buffer/service/gles2_cmd_decoder_unittest_programs.cc",
"command_buffer/service/gles2_cmd_decoder_unittest_textures.cc",
"command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc",
+ "command_buffer/service/gles2_cmd_decoder_unittest_valuebuffer.cc",
"command_buffer/service/gl_surface_mock.cc",
"command_buffer/service/gl_surface_mock.h",
"command_buffer/service/gpu_scheduler_unittest.cc",
@@ -197,6 +198,7 @@ test("gpu_unittests") {
"command_buffer/service/mocks.cc",
"command_buffer/service/mocks.h",
"command_buffer/service/program_manager_unittest.cc",
+ "command_buffer/service/valuebuffer_manager_unittest.cc",
"command_buffer/service/query_manager_unittest.cc",
"command_buffer/service/renderbuffer_manager_unittest.cc",
"command_buffer/service/program_cache_unittest.cc",
diff --git a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_subscribe_uniform.txt b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_subscribe_uniform.txt
new file mode 100644
index 0000000000..2427d329f3
--- /dev/null
+++ b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_subscribe_uniform.txt
@@ -0,0 +1,113 @@
+Name
+
+ CHROMIUM_subscribe_uniform
+
+Name Strings
+
+ CHROMIUM_subscribe_uniform
+
+Version
+
+ Last Modifed Date: October 30, 2014
+
+Dependencies
+
+ OpenGL ES 2.0 is required.
+
+Overview
+
+ Allows clients to subscribe to a set of input uniforms which can
+ be populated within buffers and used to modify uniform variables within
+ their programs.
+
+ Decreases percieved latency for operations performed against these
+ uniforms.
+
+New Tokens
+
+ Accepted by the <target> parameter of glBindValueBufferCHROMIUM,
+ glSubscribeValueCHROMIUM, glPopulateSubscribedValuesCHROMIUM and
+ glUniformValueBufferCHROMIUM
+
+ GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM 0x924B
+
+ Accepted by the <subscription> parameter of glSubscribeValueCHROMIUM and
+ glUniformValueBufferCHROMIUM:
+
+ GL_MOUSE_POSITION_CHROMIUM 0x924C
+
+New Procedures and Functions
+
+ The command
+
+ void glGenValuebuffersCHROMIUM(GLsizei n, GLuint* buffers)
+
+ Generates value buffer object names.
+ <n> Specifies the number of value buffer object names to be generated.
+ <buffers> Specifies an array in which the generated value buffer object
+ names are stored.
+
+ The command
+
+ void glDeleteValuebuffersCHROMIUM(GLsizei n, const GLuint* valuebuffers)
+
+ Deletes named value buffer objects.
+ <n> Specifies the number of value buffer objects to be deleted.
+ <buffers> Specifies an array of value buffer objects to be deleted.
+
+ The command
+
+ boolean glIsValuebufferCHROMIUM(GLuint buffer);
+
+ Returns whether an object is a value buffer object.
+ <buffer> Specifies the name of a buffer object.
+
+ The command
+
+ void glBindValuebufferCHROMIUM(GLenum target, GLuint buffer);
+
+ Lets you use a named value buffer object.
+ <target> Specifies the target to which the buffer object is bound.
+ <buffer> Specifies the name of a buffer object.
+
+ The command
+
+ void glSubscribeValueCHROMIUM(GLenum target, GLenum subscription)
+
+ Subscribes the currently bound buffer object to a subscription target.
+ <target> Specifies the target to which the buffer object is bound.
+ <subscription> Specifies the subscription to which the currently bound
+ buffer object should be subscribed.
+
+ The command
+
+ void glPopulateSubscribedValuesCHROMIUM(GLenum target)
+
+ Populates the currently bound buffer object with all subscription states
+ to which it is subscribed.
+ <target> Specifies the target to which the buffer object is bound.
+
+ The command
+
+ void glUniformValueBufferCHROMIUM(GLint location, GLenum target,
+ GLenum subscription)
+
+ Populates the uniform specified by location within the currently bound
+ program with the value in the currently bound buffer for the subscription
+ target.
+ <location> Specifies the location of the uniform variable to by modified.
+ <target> Specifies the target to which the buffer object is bound.
+ <subscription> Specifies the subscription in the currently bound buffer
+ whose value should be used to populate the uniform.
+
+Errors
+
+ None.
+
+New State
+
+ None.
+
+Revision History
+
+ 10/30/2014 Documented the extension
diff --git a/gpu/GLES2/gl2chromium_autogen.h b/gpu/GLES2/gl2chromium_autogen.h
index c6a3919856..44587e50a1 100644
--- a/gpu/GLES2/gl2chromium_autogen.h
+++ b/gpu/GLES2/gl2chromium_autogen.h
@@ -218,6 +218,14 @@
#define glCreateAndConsumeTextureCHROMIUM \
GLES2_GET_FUN(CreateAndConsumeTextureCHROMIUM)
#define glBindUniformLocationCHROMIUM GLES2_GET_FUN(BindUniformLocationCHROMIUM)
+#define glGenValuebuffersCHROMIUM GLES2_GET_FUN(GenValuebuffersCHROMIUM)
+#define glDeleteValuebuffersCHROMIUM GLES2_GET_FUN(DeleteValuebuffersCHROMIUM)
+#define glIsValuebufferCHROMIUM GLES2_GET_FUN(IsValuebufferCHROMIUM)
+#define glBindValuebufferCHROMIUM GLES2_GET_FUN(BindValuebufferCHROMIUM)
+#define glSubscribeValueCHROMIUM GLES2_GET_FUN(SubscribeValueCHROMIUM)
+#define glPopulateSubscribedValuesCHROMIUM \
+ GLES2_GET_FUN(PopulateSubscribedValuesCHROMIUM)
+#define glUniformValuebufferCHROMIUM GLES2_GET_FUN(UniformValuebufferCHROMIUM)
#define glBindTexImage2DCHROMIUM GLES2_GET_FUN(BindTexImage2DCHROMIUM)
#define glReleaseTexImage2DCHROMIUM GLES2_GET_FUN(ReleaseTexImage2DCHROMIUM)
#define glTraceBeginCHROMIUM GLES2_GET_FUN(TraceBeginCHROMIUM)
diff --git a/gpu/GLES2/gl2extchromium.h b/gpu/GLES2/gl2extchromium.h
index b52411243e..200c10f283 100644
--- a/gpu/GLES2/gl2extchromium.h
+++ b/gpu/GLES2/gl2extchromium.h
@@ -687,6 +687,35 @@ typedef void (GL_APIENTRYP PFNGLWAITSYNCPOINTCHROMIUMPROC) (GLuint sync_point);
#define GL_OVERLAY_TRANSFORM_ROTATE_270_CHROMIUM 0x924A
#endif
+/* GL_CHROMIUM_subscribe_uniform */
+#ifndef GL_CHROMIUM_subscribe_uniform
+#define GL_CHROMIUM_subscribe_uniform 1
+
+#ifndef GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM
+#define GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM 0x924B
+#endif
+
+#ifndef GL_MOUSE_POSITION_CHROMIUM
+#define GL_MOUSE_POSITION_CHROMIUM 0x924C
+#endif
+
+#ifdef GL_GLEXT_PROTOTYPES
+GL_APICALL void GL_APIENTRY
+glGenValuebuffersCHROMIUM(GLsizei n, GLuint* buffers);
+GL_APICALL void GL_APIENTRY
+glDeleteValuebuffersCHROMIUM(GLsizei n, const GLuint* valuebuffers);
+GL_APICALL GLboolean GL_APIENTRY glIsValuebufferCHROMIUM(GLuint valuebuffer);
+GL_APICALL void GL_APIENTRY
+glBindValuebufferCHROMIUM(GLenum target, GLuint valuebuffer);
+GL_APICALL void GL_APIENTRY
+glSubscribeValueCHROMIUM(GLenum target, GLenum subscription);
+GL_APICALL void GL_APIENTRY glPopulateSubscribedValuesCHROMIUM(GLenum target);
+GL_APICALL void GL_APIENTRY glUniformValuebufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription);
+#endif
+#endif /* GL_CHROMIUM_subscribe_uniform */
+
#ifdef GL_GLEXT_PROTOTYPES
GL_APICALL void GL_APIENTRY
glScheduleOverlayPlaneCHROMIUM(GLint plane_z_order,
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py
index 94c3b3457f..8d7332ffa6 100755
--- a/gpu/command_buffer/build_gles2_cmd_buffer.py
+++ b/gpu/command_buffer/build_gles2_cmd_buffer.py
@@ -1195,6 +1195,18 @@ _NAMED_TYPE_INFO = {
'GL_SCANOUT_CHROMIUM'
],
},
+ 'ValueBufferTarget': {
+ 'type': 'GLenum',
+ 'valid': [
+ 'GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM',
+ ],
+ },
+ 'SubscriptionTarget': {
+ 'type': 'GLenum',
+ 'valid': [
+ 'GL_MOUSE_POSITION_CHROMIUM',
+ ],
+ },
'VertexAttribType': {
'type': 'GLenum',
'valid': [
@@ -1448,6 +1460,57 @@ _FUNCTION_INFO = {
'extension': "CHROMIUM_texture_mailbox",
'chromium': True,
},
+ 'GenValuebuffersCHROMIUM': {
+ 'type': 'GENn',
+ 'gl_test_func': 'glGenValuebuffersCHROMIUM',
+ 'resource_type': 'Valuebuffer',
+ 'resource_types': 'Valuebuffers',
+ 'unit_test': False,
+ 'extension': True,
+ 'chromium': True,
+ },
+ 'DeleteValuebuffersCHROMIUM': {
+ 'type': 'DELn',
+ 'gl_test_func': 'glDeleteValuebuffersCHROMIUM',
+ 'resource_type': 'Valuebuffer',
+ 'resource_types': 'Valuebuffers',
+ 'unit_test': False,
+ 'extension': True,
+ 'chromium': True,
+ },
+ 'IsValuebufferCHROMIUM': {
+ 'type': 'Is',
+ 'decoder_func': 'DoIsValuebufferCHROMIUM',
+ 'expectation': False,
+ 'extension': True,
+ 'chromium': True,
+ },
+ 'BindValuebufferCHROMIUM': {
+ 'type': 'Bind',
+ 'decoder_func': 'DoBindValueBufferCHROMIUM',
+ 'gen_func': 'GenValueBuffersCHROMIUM',
+ 'unit_test': False,
+ 'extension': True,
+ 'chromium': True,
+ },
+ 'SubscribeValueCHROMIUM': {
+ 'decoder_func': 'DoSubscribeValueCHROMIUM',
+ 'unit_test': False,
+ 'extension': True,
+ 'chromium': True,
+ },
+ 'PopulateSubscribedValuesCHROMIUM': {
+ 'decoder_func': 'DoPopulateSubscribedValuesCHROMIUM',
+ 'unit_test': False,
+ 'extension': True,
+ 'chromium': True,
+ },
+ 'UniformValuebufferCHROMIUM': {
+ 'decoder_func': 'DoUniformValueBufferCHROMIUM',
+ 'unit_test': False,
+ 'extension': True,
+ 'chromium': True,
+ },
'ClearStencil': {
'type': 'StateSet',
'state': 'ClearStencil',
diff --git a/gpu/command_buffer/client/client_test_helper.cc b/gpu/command_buffer/client/client_test_helper.cc
index 8c633efebe..3c50f6b20c 100644
--- a/gpu/command_buffer/client/client_test_helper.cc
+++ b/gpu/command_buffer/client/client_test_helper.cc
@@ -15,7 +15,7 @@ using ::testing::Invoke;
namespace gpu {
-MockCommandBufferBase::MockCommandBufferBase() {
+MockCommandBufferBase::MockCommandBufferBase() : put_offset_(0) {
}
MockCommandBufferBase::~MockCommandBufferBase() {
@@ -40,7 +40,7 @@ void MockCommandBufferBase::SetGetOffset(int32 get_offset) {
void MockCommandBufferBase::WaitForTokenInRange(int32 start, int32 end) {}
void MockCommandBufferBase::WaitForGetOffsetInRange(int32 start, int32 end) {
- state_.get_offset = state_.put_offset;
+ state_.get_offset = put_offset_;
OnFlush();
}
@@ -48,7 +48,6 @@ void MockCommandBufferBase::SetGetBuffer(int transfer_buffer_id) {
ring_buffer_buffer_ = GetTransferBuffer(transfer_buffer_id);
ring_buffer_ =
static_cast<CommandBufferEntry*>(ring_buffer_buffer_->memory());
- state_.num_entries = ring_buffer_buffer_->size() / sizeof(ring_buffer_[0]);
state_.token = 10000; // All token checks in the tests should pass.
}
@@ -91,7 +90,7 @@ scoped_refptr<Buffer> MockCommandBufferBase::GetTransferBuffer(int32 id) {
}
void MockCommandBufferBase::FlushHelper(int32 put_offset) {
- state_.put_offset = put_offset;
+ put_offset_ = put_offset;
}
void MockCommandBufferBase::SetToken(int32 token) {
@@ -110,6 +109,10 @@ void MockCommandBufferBase::SetContextLostReason(
state_.context_lost_reason = reason;
}
+int32 MockCommandBufferBase::GetPutOffset() {
+ return put_offset_;
+}
+
// GCC requires these declarations, but MSVC requires they not be present
#ifndef _MSC_VER
const int32 MockCommandBufferBase::kTransferBufferBaseId;
diff --git a/gpu/command_buffer/client/client_test_helper.h b/gpu/command_buffer/client/client_test_helper.h
index 2cf18e63c4..6778a831e4 100644
--- a/gpu/command_buffer/client/client_test_helper.h
+++ b/gpu/command_buffer/client/client_test_helper.h
@@ -41,6 +41,7 @@ class MockCommandBufferBase : public CommandBufferServiceBase {
void SetToken(int32 token) override;
void SetParseError(error::Error error) override;
void SetContextLostReason(error::ContextLostReason reason) override;
+ int32 GetPutOffset() override;
// Get's the Id of the next transfer buffer that will be returned
// by CreateTransferBuffer. This is useful for testing expected ids.
@@ -56,6 +57,7 @@ class MockCommandBufferBase : public CommandBufferServiceBase {
CommandBufferEntry* ring_buffer_;
scoped_refptr<Buffer> ring_buffer_buffer_;
State state_;
+ int32 put_offset_;
};
class MockClientCommandBuffer : public MockCommandBufferBase {
diff --git a/gpu/command_buffer/client/cmd_buffer_helper_test.cc b/gpu/command_buffer/client/cmd_buffer_helper_test.cc
index 3ff9d3a257..fe68887923 100644
--- a/gpu/command_buffer/client/cmd_buffer_helper_test.cc
+++ b/gpu/command_buffer/client/cmd_buffer_helper_test.cc
@@ -241,7 +241,7 @@ class CommandBufferHelperTest : public testing::Test {
}
int32 GetPutOffset() {
- return command_buffer_->GetLastState().put_offset;
+ return command_buffer_->GetPutOffset();
}
int32 GetHelperGetOffset() { return helper_->get_offset(); }
diff --git a/gpu/command_buffer/client/gles2_c_lib_autogen.h b/gpu/command_buffer/client/gles2_c_lib_autogen.h
index 392bb22f8e..f78007f64a 100644
--- a/gpu/command_buffer/client/gles2_c_lib_autogen.h
+++ b/gpu/command_buffer/client/gles2_c_lib_autogen.h
@@ -124,8 +124,8 @@ void GLES2CopyTexImage2D(GLenum target,
GLsizei width,
GLsizei height,
GLint border) {
- gles2::GetGLContext()->CopyTexImage2D(
- target, level, internalformat, x, y, width, height, border);
+ gles2::GetGLContext()->CopyTexImage2D(target, level, internalformat, x, y,
+ width, height, border);
}
void GLES2CopyTexSubImage2D(GLenum target,
GLint level,
@@ -135,8 +135,8 @@ void GLES2CopyTexSubImage2D(GLenum target,
GLint y,
GLsizei width,
GLsizei height) {
- gles2::GetGLContext()->CopyTexSubImage2D(
- target, level, xoffset, yoffset, x, y, width, height);
+ gles2::GetGLContext()->CopyTexSubImage2D(target, level, xoffset, yoffset, x,
+ y, width, height);
}
GLuint GLES2CreateProgram() {
return gles2::GetGLContext()->CreateProgram();
@@ -216,8 +216,8 @@ void GLES2FramebufferTexture2D(GLenum target,
GLenum textarget,
GLuint texture,
GLint level) {
- gles2::GetGLContext()->FramebufferTexture2D(
- target, attachment, textarget, texture, level);
+ gles2::GetGLContext()->FramebufferTexture2D(target, attachment, textarget,
+ texture, level);
}
void GLES2FrontFace(GLenum mode) {
gles2::GetGLContext()->FrontFace(mode);
@@ -244,8 +244,8 @@ void GLES2GetActiveAttrib(GLuint program,
GLint* size,
GLenum* type,
char* name) {
- gles2::GetGLContext()->GetActiveAttrib(
- program, index, bufsize, length, size, type, name);
+ gles2::GetGLContext()->GetActiveAttrib(program, index, bufsize, length, size,
+ type, name);
}
void GLES2GetActiveUniform(GLuint program,
GLuint index,
@@ -254,8 +254,8 @@ void GLES2GetActiveUniform(GLuint program,
GLint* size,
GLenum* type,
char* name) {
- gles2::GetGLContext()->GetActiveUniform(
- program, index, bufsize, length, size, type, name);
+ gles2::GetGLContext()->GetActiveUniform(program, index, bufsize, length, size,
+ type, name);
}
void GLES2GetAttachedShaders(GLuint program,
GLsizei maxcount,
@@ -282,8 +282,8 @@ void GLES2GetFramebufferAttachmentParameteriv(GLenum target,
GLenum attachment,
GLenum pname,
GLint* params) {
- gles2::GetGLContext()->GetFramebufferAttachmentParameteriv(
- target, attachment, pname, params);
+ gles2::GetGLContext()->GetFramebufferAttachmentParameteriv(target, attachment,
+ pname, params);
}
void GLES2GetIntegerv(GLenum pname, GLint* params) {
gles2::GetGLContext()->GetIntegerv(pname, params);
@@ -315,8 +315,8 @@ void GLES2GetShaderPrecisionFormat(GLenum shadertype,
GLenum precisiontype,
GLint* range,
GLint* precision) {
- gles2::GetGLContext()->GetShaderPrecisionFormat(
- shadertype, precisiontype, range, precision);
+ gles2::GetGLContext()->GetShaderPrecisionFormat(shadertype, precisiontype,
+ range, precision);
}
void GLES2GetShaderSource(GLuint shader,
GLsizei bufsize,
@@ -403,8 +403,8 @@ void GLES2RenderbufferStorage(GLenum target,
GLenum internalformat,
GLsizei width,
GLsizei height) {
- gles2::GetGLContext()->RenderbufferStorage(
- target, internalformat, width, height);
+ gles2::GetGLContext()->RenderbufferStorage(target, internalformat, width,
+ height);
}
void GLES2SampleCoverage(GLclampf value, GLboolean invert) {
gles2::GetGLContext()->SampleCoverage(value, invert);
@@ -464,15 +464,8 @@ void GLES2TexImage2D(GLenum target,
GLenum format,
GLenum type,
const void* pixels) {
- gles2::GetGLContext()->TexImage2D(target,
- level,
- internalformat,
- width,
- height,
- border,
- format,
- type,
- pixels);
+ gles2::GetGLContext()->TexImage2D(target, level, internalformat, width,
+ height, border, format, type, pixels);
}
void GLES2TexParameterf(GLenum target, GLenum pname, GLfloat param) {
gles2::GetGLContext()->TexParameterf(target, pname, param);
@@ -495,8 +488,8 @@ void GLES2TexSubImage2D(GLenum target,
GLenum format,
GLenum type,
const void* pixels) {
- gles2::GetGLContext()->TexSubImage2D(
- target, level, xoffset, yoffset, width, height, format, type, pixels);
+ gles2::GetGLContext()->TexSubImage2D(target, level, xoffset, yoffset, width,
+ height, format, type, pixels);
}
void GLES2Uniform1f(GLint location, GLfloat x) {
gles2::GetGLContext()->Uniform1f(location, x);
@@ -608,8 +601,8 @@ void GLES2VertexAttribPointer(GLuint indx,
GLboolean normalized,
GLsizei stride,
const void* ptr) {
- gles2::GetGLContext()->VertexAttribPointer(
- indx, size, type, normalized, stride, ptr);
+ gles2::GetGLContext()->VertexAttribPointer(indx, size, type, normalized,
+ stride, ptr);
}
void GLES2Viewport(GLint x, GLint y, GLsizei width, GLsizei height) {
gles2::GetGLContext()->Viewport(x, y, width, height);
@@ -657,8 +650,8 @@ void GLES2TexStorage2DEXT(GLenum target,
GLenum internalFormat,
GLsizei width,
GLsizei height) {
- gles2::GetGLContext()->TexStorage2DEXT(
- target, levels, internalFormat, width, height);
+ gles2::GetGLContext()->TexStorage2DEXT(target, levels, internalFormat, width,
+ height);
}
void GLES2GenQueriesEXT(GLsizei n, GLuint* queries) {
gles2::GetGLContext()->GenQueriesEXT(n, queries);
@@ -709,8 +702,8 @@ GLuint GLES2GetMaxValueInBufferCHROMIUM(GLuint buffer_id,
GLsizei count,
GLenum type,
GLuint offset) {
- return gles2::GetGLContext()->GetMaxValueInBufferCHROMIUM(
- buffer_id, count, type, offset);
+ return gles2::GetGLContext()->GetMaxValueInBufferCHROMIUM(buffer_id, count,
+ type, offset);
}
GLboolean GLES2EnableFeatureCHROMIUM(const char* feature) {
return gles2::GetGLContext()->EnableFeatureCHROMIUM(feature);
@@ -725,8 +718,8 @@ void* GLES2MapBufferSubDataCHROMIUM(GLuint target,
GLintptr offset,
GLsizeiptr size,
GLenum access) {
- return gles2::GetGLContext()->MapBufferSubDataCHROMIUM(
- target, offset, size, access);
+ return gles2::GetGLContext()->MapBufferSubDataCHROMIUM(target, offset, size,
+ access);
}
void GLES2UnmapBufferSubDataCHROMIUM(const void* mem) {
gles2::GetGLContext()->UnmapBufferSubDataCHROMIUM(mem);
@@ -762,8 +755,8 @@ void GLES2GetMultipleIntegervCHROMIUM(const GLenum* pnames,
GLuint count,
GLint* results,
GLsizeiptr size) {
- gles2::GetGLContext()->GetMultipleIntegervCHROMIUM(
- pnames, count, results, size);
+ gles2::GetGLContext()->GetMultipleIntegervCHROMIUM(pnames, count, results,
+ size);
}
void GLES2GetProgramInfoCHROMIUM(GLuint program,
GLsizei bufsize,
@@ -778,8 +771,8 @@ GLuint GLES2CreateImageCHROMIUM(ClientBuffer buffer,
GLsizei width,
GLsizei height,
GLenum internalformat) {
- return gles2::GetGLContext()->CreateImageCHROMIUM(
- buffer, width, height, internalformat);
+ return gles2::GetGLContext()->CreateImageCHROMIUM(buffer, width, height,
+ internalformat);
}
void GLES2DestroyImageCHROMIUM(GLuint image_id) {
gles2::GetGLContext()->DestroyImageCHROMIUM(image_id);
@@ -795,8 +788,8 @@ void GLES2GetTranslatedShaderSourceANGLE(GLuint shader,
GLsizei bufsize,
GLsizei* length,
char* source) {
- gles2::GetGLContext()->GetTranslatedShaderSourceANGLE(
- shader, bufsize, length, source);
+ gles2::GetGLContext()->GetTranslatedShaderSourceANGLE(shader, bufsize, length,
+ source);
}
void GLES2PostSubBufferCHROMIUM(GLint x, GLint y, GLint width, GLint height) {
gles2::GetGLContext()->PostSubBufferCHROMIUM(x, y, width, height);
@@ -806,8 +799,8 @@ void GLES2TexImageIOSurface2DCHROMIUM(GLenum target,
GLsizei height,
GLuint ioSurfaceId,
GLuint plane) {
- gles2::GetGLContext()->TexImageIOSurface2DCHROMIUM(
- target, width, height, ioSurfaceId, plane);
+ gles2::GetGLContext()->TexImageIOSurface2DCHROMIUM(target, width, height,
+ ioSurfaceId, plane);
}
void GLES2CopyTextureCHROMIUM(GLenum target,
GLenum source_id,
@@ -815,23 +808,23 @@ void GLES2CopyTextureCHROMIUM(GLenum target,
GLint level,
GLint internalformat,
GLenum dest_type) {
- gles2::GetGLContext()->CopyTextureCHROMIUM(
- target, source_id, dest_id, level, internalformat, dest_type);
+ gles2::GetGLContext()->CopyTextureCHROMIUM(target, source_id, dest_id, level,
+ internalformat, dest_type);
}
void GLES2DrawArraysInstancedANGLE(GLenum mode,
GLint first,
GLsizei count,
GLsizei primcount) {
- gles2::GetGLContext()->DrawArraysInstancedANGLE(
- mode, first, count, primcount);
+ gles2::GetGLContext()->DrawArraysInstancedANGLE(mode, first, count,
+ primcount);
}
void GLES2DrawElementsInstancedANGLE(GLenum mode,
GLsizei count,
GLenum type,
const void* indices,
GLsizei primcount) {
- gles2::GetGLContext()->DrawElementsInstancedANGLE(
- mode, count, type, indices, primcount);
+ gles2::GetGLContext()->DrawElementsInstancedANGLE(mode, count, type, indices,
+ primcount);
}
void GLES2VertexAttribDivisorANGLE(GLuint index, GLuint divisor) {
gles2::GetGLContext()->VertexAttribDivisorANGLE(index, divisor);
@@ -860,6 +853,30 @@ void GLES2BindUniformLocationCHROMIUM(GLuint program,
const char* name) {
gles2::GetGLContext()->BindUniformLocationCHROMIUM(program, location, name);
}
+void GLES2GenValuebuffersCHROMIUM(GLsizei n, GLuint* buffers) {
+ gles2::GetGLContext()->GenValuebuffersCHROMIUM(n, buffers);
+}
+void GLES2DeleteValuebuffersCHROMIUM(GLsizei n, const GLuint* valuebuffers) {
+ gles2::GetGLContext()->DeleteValuebuffersCHROMIUM(n, valuebuffers);
+}
+GLboolean GLES2IsValuebufferCHROMIUM(GLuint valuebuffer) {
+ return gles2::GetGLContext()->IsValuebufferCHROMIUM(valuebuffer);
+}
+void GLES2BindValuebufferCHROMIUM(GLenum target, GLuint valuebuffer) {
+ gles2::GetGLContext()->BindValuebufferCHROMIUM(target, valuebuffer);
+}
+void GLES2SubscribeValueCHROMIUM(GLenum target, GLenum subscription) {
+ gles2::GetGLContext()->SubscribeValueCHROMIUM(target, subscription);
+}
+void GLES2PopulateSubscribedValuesCHROMIUM(GLenum target) {
+ gles2::GetGLContext()->PopulateSubscribedValuesCHROMIUM(target);
+}
+void GLES2UniformValuebufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription) {
+ gles2::GetGLContext()->UniformValuebufferCHROMIUM(location, target,
+ subscription);
+}
void GLES2BindTexImage2DCHROMIUM(GLenum target, GLint imageId) {
gles2::GetGLContext()->BindTexImage2DCHROMIUM(target, imageId);
}
@@ -893,15 +910,9 @@ void GLES2AsyncTexImage2DCHROMIUM(GLenum target,
GLenum format,
GLenum type,
const void* pixels) {
- gles2::GetGLContext()->AsyncTexImage2DCHROMIUM(target,
- level,
- internalformat,
- width,
- height,
- border,
- format,
- type,
- pixels);
+ gles2::GetGLContext()->AsyncTexImage2DCHROMIUM(target, level, internalformat,
+ width, height, border, format,
+ type, pixels);
}
void GLES2WaitAsyncTexImage2DCHROMIUM(GLenum target) {
gles2::GetGLContext()->WaitAsyncTexImage2DCHROMIUM(target);
@@ -940,17 +951,9 @@ void GLES2ScheduleOverlayPlaneCHROMIUM(GLint plane_z_order,
GLfloat uv_y,
GLfloat uv_width,
GLfloat uv_height) {
- gles2::GetGLContext()->ScheduleOverlayPlaneCHROMIUM(plane_z_order,
- plane_transform,
- overlay_texture_id,
- bounds_x,
- bounds_y,
- bounds_width,
- bounds_height,
- uv_x,
- uv_y,
- uv_width,
- uv_height);
+ gles2::GetGLContext()->ScheduleOverlayPlaneCHROMIUM(
+ plane_z_order, plane_transform, overlay_texture_id, bounds_x, bounds_y,
+ bounds_width, bounds_height, uv_x, uv_y, uv_width, uv_height);
}
void GLES2MatrixLoadfCHROMIUM(GLenum matrixMode, const GLfloat* m) {
gles2::GetGLContext()->MatrixLoadfCHROMIUM(matrixMode, m);
@@ -1752,6 +1755,34 @@ extern const NameToFunc g_gles2_function_table[] = {
reinterpret_cast<GLES2FunctionPointer>(glBindUniformLocationCHROMIUM),
},
{
+ "glGenValuebuffersCHROMIUM",
+ reinterpret_cast<GLES2FunctionPointer>(glGenValuebuffersCHROMIUM),
+ },
+ {
+ "glDeleteValuebuffersCHROMIUM",
+ reinterpret_cast<GLES2FunctionPointer>(glDeleteValuebuffersCHROMIUM),
+ },
+ {
+ "glIsValuebufferCHROMIUM",
+ reinterpret_cast<GLES2FunctionPointer>(glIsValuebufferCHROMIUM),
+ },
+ {
+ "glBindValuebufferCHROMIUM",
+ reinterpret_cast<GLES2FunctionPointer>(glBindValuebufferCHROMIUM),
+ },
+ {
+ "glSubscribeValueCHROMIUM",
+ reinterpret_cast<GLES2FunctionPointer>(glSubscribeValueCHROMIUM),
+ },
+ {
+ "glPopulateSubscribedValuesCHROMIUM",
+ reinterpret_cast<GLES2FunctionPointer>(glPopulateSubscribedValuesCHROMIUM),
+ },
+ {
+ "glUniformValuebufferCHROMIUM",
+ reinterpret_cast<GLES2FunctionPointer>(glUniformValuebufferCHROMIUM),
+ },
+ {
"glBindTexImage2DCHROMIUM",
reinterpret_cast<GLES2FunctionPointer>(glBindTexImage2DCHROMIUM),
},
diff --git a/gpu/command_buffer/client/gles2_cmd_helper_autogen.h b/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
index 24d8be24c6..cfa7a5ddde 100644
--- a/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
+++ b/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
@@ -205,14 +205,8 @@ void CompressedTexImage2D(GLenum target,
gles2::cmds::CompressedTexImage2D* c =
GetCmdSpace<gles2::cmds::CompressedTexImage2D>();
if (c) {
- c->Init(target,
- level,
- internalformat,
- width,
- height,
- imageSize,
- data_shm_id,
- data_shm_offset);
+ c->Init(target, level, internalformat, width, height, imageSize,
+ data_shm_id, data_shm_offset);
}
}
@@ -244,16 +238,8 @@ void CompressedTexSubImage2D(GLenum target,
gles2::cmds::CompressedTexSubImage2D* c =
GetCmdSpace<gles2::cmds::CompressedTexSubImage2D>();
if (c) {
- c->Init(target,
- level,
- xoffset,
- yoffset,
- width,
- height,
- format,
- imageSize,
- data_shm_id,
- data_shm_offset);
+ c->Init(target, level, xoffset, yoffset, width, height, format, imageSize,
+ data_shm_id, data_shm_offset);
}
}
@@ -892,17 +878,8 @@ void ReadPixels(GLint x,
GLboolean async) {
gles2::cmds::ReadPixels* c = GetCmdSpace<gles2::cmds::ReadPixels>();
if (c) {
- c->Init(x,
- y,
- width,
- height,
- format,
- type,
- pixels_shm_id,
- pixels_shm_offset,
- result_shm_id,
- result_shm_offset,
- async);
+ c->Init(x, y, width, height, format, type, pixels_shm_id, pixels_shm_offset,
+ result_shm_id, result_shm_offset, async);
}
}
@@ -948,13 +925,8 @@ void ShaderBinary(GLsizei n,
GLsizei length) {
gles2::cmds::ShaderBinary* c = GetCmdSpace<gles2::cmds::ShaderBinary>();
if (c) {
- c->Init(n,
- shaders_shm_id,
- shaders_shm_offset,
- binaryformat,
- binary_shm_id,
- binary_shm_offset,
- length);
+ c->Init(n, shaders_shm_id, shaders_shm_offset, binaryformat, binary_shm_id,
+ binary_shm_offset, length);
}
}
@@ -1022,15 +994,8 @@ void TexImage2D(GLenum target,
uint32_t pixels_shm_offset) {
gles2::cmds::TexImage2D* c = GetCmdSpace<gles2::cmds::TexImage2D>();
if (c) {
- c->Init(target,
- level,
- internalformat,
- width,
- height,
- format,
- type,
- pixels_shm_id,
- pixels_shm_offset);
+ c->Init(target, level, internalformat, width, height, format, type,
+ pixels_shm_id, pixels_shm_offset);
}
}
@@ -1081,17 +1046,8 @@ void TexSubImage2D(GLenum target,
GLboolean internal) {
gles2::cmds::TexSubImage2D* c = GetCmdSpace<gles2::cmds::TexSubImage2D>();
if (c) {
- c->Init(target,
- level,
- xoffset,
- yoffset,
- width,
- height,
- format,
- type,
- pixels_shm_id,
- pixels_shm_offset,
- internal);
+ c->Init(target, level, xoffset, yoffset, width, height, format, type,
+ pixels_shm_id, pixels_shm_offset, internal);
}
}
@@ -1377,8 +1333,8 @@ void BlitFramebufferCHROMIUM(GLint srcX0,
gles2::cmds::BlitFramebufferCHROMIUM* c =
GetCmdSpace<gles2::cmds::BlitFramebufferCHROMIUM>();
if (c) {
- c->Init(
- srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+ c->Init(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask,
+ filter);
}
}
@@ -1591,12 +1547,8 @@ void GetMultipleIntegervCHROMIUM(uint32_t pnames_shm_id,
gles2::cmds::GetMultipleIntegervCHROMIUM* c =
GetCmdSpace<gles2::cmds::GetMultipleIntegervCHROMIUM>();
if (c) {
- c->Init(pnames_shm_id,
- pnames_shm_offset,
- count,
- results_shm_id,
- results_shm_offset,
- size);
+ c->Init(pnames_shm_id, pnames_shm_offset, count, results_shm_id,
+ results_shm_offset, size);
}
}
@@ -1725,6 +1677,73 @@ void BindUniformLocationCHROMIUMBucket(GLuint program,
}
}
+void GenValuebuffersCHROMIUMImmediate(GLsizei n, GLuint* buffers) {
+ const uint32_t size =
+ gles2::cmds::GenValuebuffersCHROMIUMImmediate::ComputeSize(n);
+ gles2::cmds::GenValuebuffersCHROMIUMImmediate* c =
+ GetImmediateCmdSpaceTotalSize<
+ gles2::cmds::GenValuebuffersCHROMIUMImmediate>(size);
+ if (c) {
+ c->Init(n, buffers);
+ }
+}
+
+void DeleteValuebuffersCHROMIUMImmediate(GLsizei n,
+ const GLuint* valuebuffers) {
+ const uint32_t size =
+ gles2::cmds::DeleteValuebuffersCHROMIUMImmediate::ComputeSize(n);
+ gles2::cmds::DeleteValuebuffersCHROMIUMImmediate* c =
+ GetImmediateCmdSpaceTotalSize<
+ gles2::cmds::DeleteValuebuffersCHROMIUMImmediate>(size);
+ if (c) {
+ c->Init(n, valuebuffers);
+ }
+}
+
+void IsValuebufferCHROMIUM(GLuint valuebuffer,
+ uint32_t result_shm_id,
+ uint32_t result_shm_offset) {
+ gles2::cmds::IsValuebufferCHROMIUM* c =
+ GetCmdSpace<gles2::cmds::IsValuebufferCHROMIUM>();
+ if (c) {
+ c->Init(valuebuffer, result_shm_id, result_shm_offset);
+ }
+}
+
+void BindValuebufferCHROMIUM(GLenum target, GLuint valuebuffer) {
+ gles2::cmds::BindValuebufferCHROMIUM* c =
+ GetCmdSpace<gles2::cmds::BindValuebufferCHROMIUM>();
+ if (c) {
+ c->Init(target, valuebuffer);
+ }
+}
+
+void SubscribeValueCHROMIUM(GLenum target, GLenum subscription) {
+ gles2::cmds::SubscribeValueCHROMIUM* c =
+ GetCmdSpace<gles2::cmds::SubscribeValueCHROMIUM>();
+ if (c) {
+ c->Init(target, subscription);
+ }
+}
+
+void PopulateSubscribedValuesCHROMIUM(GLenum target) {
+ gles2::cmds::PopulateSubscribedValuesCHROMIUM* c =
+ GetCmdSpace<gles2::cmds::PopulateSubscribedValuesCHROMIUM>();
+ if (c) {
+ c->Init(target);
+ }
+}
+
+void UniformValuebufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription) {
+ gles2::cmds::UniformValuebufferCHROMIUM* c =
+ GetCmdSpace<gles2::cmds::UniformValuebufferCHROMIUM>();
+ if (c) {
+ c->Init(location, target, subscription);
+ }
+}
+
void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) {
gles2::cmds::BindTexImage2DCHROMIUM* c =
GetCmdSpace<gles2::cmds::BindTexImage2DCHROMIUM>();
@@ -1773,18 +1792,8 @@ void AsyncTexSubImage2DCHROMIUM(GLenum target,
gles2::cmds::AsyncTexSubImage2DCHROMIUM* c =
GetCmdSpace<gles2::cmds::AsyncTexSubImage2DCHROMIUM>();
if (c) {
- c->Init(target,
- level,
- xoffset,
- yoffset,
- width,
- height,
- format,
- type,
- data_shm_id,
- data_shm_offset,
- async_upload_token,
- sync_data_shm_id,
+ c->Init(target, level, xoffset, yoffset, width, height, format, type,
+ data_shm_id, data_shm_offset, async_upload_token, sync_data_shm_id,
sync_data_shm_offset);
}
}
@@ -1804,18 +1813,9 @@ void AsyncTexImage2DCHROMIUM(GLenum target,
gles2::cmds::AsyncTexImage2DCHROMIUM* c =
GetCmdSpace<gles2::cmds::AsyncTexImage2DCHROMIUM>();
if (c) {
- c->Init(target,
- level,
- internalformat,
- width,
- height,
- format,
- type,
- pixels_shm_id,
- pixels_shm_offset,
- async_upload_token,
- sync_data_shm_id,
- sync_data_shm_offset);
+ c->Init(target, level, internalformat, width, height, format, type,
+ pixels_shm_id, pixels_shm_offset, async_upload_token,
+ sync_data_shm_id, sync_data_shm_offset);
}
}
@@ -1896,16 +1896,8 @@ void ScheduleOverlayPlaneCHROMIUM(GLint plane_z_order,
gles2::cmds::ScheduleOverlayPlaneCHROMIUM* c =
GetCmdSpace<gles2::cmds::ScheduleOverlayPlaneCHROMIUM>();
if (c) {
- c->Init(plane_z_order,
- plane_transform,
- overlay_texture_id,
- bounds_x,
- bounds_y,
- bounds_width,
- bounds_height,
- uv_x,
- uv_y,
- uv_width,
+ c->Init(plane_z_order, plane_transform, overlay_texture_id, bounds_x,
+ bounds_y, bounds_width, bounds_height, uv_x, uv_y, uv_width,
uv_height);
}
}
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc
index 66d8c2bb13..241056cefd 100644
--- a/gpu/command_buffer/client/gles2_implementation.cc
+++ b/gpu/command_buffer/client/gles2_implementation.cc
@@ -99,6 +99,7 @@ GLES2Implementation::GLES2Implementation(
bound_framebuffer_(0),
bound_read_framebuffer_(0),
bound_renderbuffer_(0),
+ bound_valuebuffer_(0),
current_program_(0),
bound_array_buffer_id_(0),
bound_pixel_pack_transfer_buffer_id_(0),
@@ -2364,6 +2365,11 @@ void GLES2Implementation::GenQueriesEXTHelper(
GLsizei /* n */, const GLuint* /* queries */) {
}
+void GLES2Implementation::GenValuebuffersCHROMIUMHelper(
+ GLsizei /* n */,
+ const GLuint* /* valuebuffers */) {
+}
+
// NOTE #1: On old versions of OpenGL, calling glBindXXX with an unused id
// generates a new resource. On newer versions of OpenGL they don't. The code
// related to binding below will need to change if we switch to the new OpenGL
@@ -2513,6 +2519,26 @@ bool GLES2Implementation::BindVertexArrayOESHelper(GLuint array) {
return changed;
}
+bool GLES2Implementation::BindValuebufferCHROMIUMHelper(GLenum target,
+ GLuint valuebuffer) {
+ bool changed = false;
+ switch (target) {
+ case GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM:
+ if (bound_valuebuffer_ != valuebuffer) {
+ bound_valuebuffer_ = valuebuffer;
+ changed = true;
+ }
+ break;
+ default:
+ changed = true;
+ break;
+ }
+ // TODO(gman): There's a bug here. If the target is invalid the ID will not be
+ // used even though it's marked it as used here.
+ GetIdHandler(id_namespaces::kValuebuffers)->MarkAsUsedForBind(valuebuffer);
+ return changed;
+}
+
bool GLES2Implementation::UseProgramHelper(GLuint program) {
bool changed = false;
if (current_program_ != program) {
@@ -2629,6 +2655,11 @@ void GLES2Implementation::DeleteTexturesHelper(
}
}
+void GLES2Implementation::DeleteTexturesStub(GLsizei n,
+ const GLuint* textures) {
+ helper_->DeleteTexturesImmediate(n, textures);
+}
+
void GLES2Implementation::DeleteVertexArraysOESHelper(
GLsizei n, const GLuint* arrays) {
vertex_array_object_manager_->DeleteVertexArrays(n, arrays);
@@ -2646,9 +2677,27 @@ void GLES2Implementation::DeleteVertexArraysOESStub(
helper_->DeleteVertexArraysOESImmediate(n, arrays);
}
-void GLES2Implementation::DeleteTexturesStub(
- GLsizei n, const GLuint* textures) {
- helper_->DeleteTexturesImmediate(n, textures);
+void GLES2Implementation::DeleteValuebuffersCHROMIUMHelper(
+ GLsizei n,
+ const GLuint* valuebuffers) {
+ if (!GetIdHandler(id_namespaces::kValuebuffers)
+ ->FreeIds(this, n, valuebuffers,
+ &GLES2Implementation::DeleteValuebuffersCHROMIUMStub)) {
+ SetGLError(GL_INVALID_VALUE, "glDeleteValuebuffersCHROMIUM",
+ "id not created by this context.");
+ return;
+ }
+ for (GLsizei ii = 0; ii < n; ++ii) {
+ if (valuebuffers[ii] == bound_valuebuffer_) {
+ bound_valuebuffer_ = 0;
+ }
+ }
+}
+
+void GLES2Implementation::DeleteValuebuffersCHROMIUMStub(
+ GLsizei n,
+ const GLuint* valuebuffers) {
+ helper_->DeleteValuebuffersCHROMIUMImmediate(n, valuebuffers);
}
void GLES2Implementation::DisableVertexAttribArray(GLuint index) {
diff --git a/gpu/command_buffer/client/gles2_implementation.h b/gpu/command_buffer/client/gles2_implementation.h
index a612ac2f9a..c2e9edb3e7 100644
--- a/gpu/command_buffer/client/gles2_implementation.h
+++ b/gpu/command_buffer/client/gles2_implementation.h
@@ -495,17 +495,19 @@ class GLES2_IMPL_EXPORT GLES2Implementation
// Returns true if id is reserved.
bool IsBufferReservedId(GLuint id);
- bool IsFramebufferReservedId(GLuint id) { return false; }
+ bool IsFramebufferReservedId(GLuint id) { return false; }
bool IsRenderbufferReservedId(GLuint id) { return false; }
bool IsTextureReservedId(GLuint id) { return false; }
bool IsVertexArrayReservedId(GLuint id) { return false; }
bool IsProgramReservedId(GLuint id) { return false; }
+ bool IsValuebufferReservedId(GLuint id) { return false; }
bool BindBufferHelper(GLenum target, GLuint texture);
bool BindFramebufferHelper(GLenum target, GLuint texture);
bool BindRenderbufferHelper(GLenum target, GLuint texture);
bool BindTextureHelper(GLenum target, GLuint texture);
bool BindVertexArrayOESHelper(GLuint array);
+ bool BindValuebufferCHROMIUMHelper(GLenum target, GLuint valuebuffer);
bool UseProgramHelper(GLuint program);
void GenBuffersHelper(GLsizei n, const GLuint* buffers);
@@ -514,6 +516,7 @@ class GLES2_IMPL_EXPORT GLES2Implementation
void GenTexturesHelper(GLsizei n, const GLuint* textures);
void GenVertexArraysOESHelper(GLsizei n, const GLuint* arrays);
void GenQueriesEXTHelper(GLsizei n, const GLuint* queries);
+ void GenValuebuffersCHROMIUMHelper(GLsizei n, const GLuint* valuebuffers);
void DeleteBuffersHelper(GLsizei n, const GLuint* buffers);
void DeleteFramebuffersHelper(GLsizei n, const GLuint* framebuffers);
@@ -523,6 +526,7 @@ class GLES2_IMPL_EXPORT GLES2Implementation
bool DeleteShaderHelper(GLuint shader);
void DeleteQueriesEXTHelper(GLsizei n, const GLuint* queries);
void DeleteVertexArraysOESHelper(GLsizei n, const GLuint* arrays);
+ void DeleteValuebuffersCHROMIUMHelper(GLsizei n, const GLuint* valuebuffers);
void DeleteBuffersStub(GLsizei n, const GLuint* buffers);
void DeleteFramebuffersStub(GLsizei n, const GLuint* framebuffers);
@@ -531,6 +535,7 @@ class GLES2_IMPL_EXPORT GLES2Implementation
void DeleteProgramStub(GLsizei n, const GLuint* programs);
void DeleteShaderStub(GLsizei n, const GLuint* shaders);
void DeleteVertexArraysOESStub(GLsizei n, const GLuint* arrays);
+ void DeleteValuebuffersCHROMIUMStub(GLsizei n, const GLuint* valuebuffers);
void BufferDataHelper(
GLenum target, GLsizeiptr size, const void* data, GLenum usage);
@@ -699,6 +704,7 @@ class GLES2_IMPL_EXPORT GLES2Implementation
GLuint bound_framebuffer_;
GLuint bound_read_framebuffer_;
GLuint bound_renderbuffer_;
+ GLuint bound_valuebuffer_;
// The program in use by glUseProgram
GLuint current_program_;
diff --git a/gpu/command_buffer/client/gles2_implementation_autogen.h b/gpu/command_buffer/client/gles2_implementation_autogen.h
index 4e547d9264..3a11f10564 100644
--- a/gpu/command_buffer/client/gles2_implementation_autogen.h
+++ b/gpu/command_buffer/client/gles2_implementation_autogen.h
@@ -629,6 +629,22 @@ void BindUniformLocationCHROMIUM(GLuint program,
GLint location,
const char* name) override;
+void GenValuebuffersCHROMIUM(GLsizei n, GLuint* buffers) override;
+
+void DeleteValuebuffersCHROMIUM(GLsizei n, const GLuint* valuebuffers) override;
+
+GLboolean IsValuebufferCHROMIUM(GLuint valuebuffer) override;
+
+void BindValuebufferCHROMIUM(GLenum target, GLuint valuebuffer) override;
+
+void SubscribeValueCHROMIUM(GLenum target, GLenum subscription) override;
+
+void PopulateSubscribedValuesCHROMIUM(GLenum target) override;
+
+void UniformValuebufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription) override;
+
void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) override;
void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) override;
diff --git a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
index 32b134763e..8541e77742 100644
--- a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
+++ b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
@@ -42,8 +42,8 @@ void GLES2Implementation::BindFramebuffer(GLenum target, GLuint framebuffer) {
<< GLES2Util::GetStringFrameBufferTarget(target) << ", "
<< framebuffer << ")");
if (IsFramebufferReservedId(framebuffer)) {
- SetGLError(
- GL_INVALID_OPERATION, "BindFramebuffer", "framebuffer reserved id");
+ SetGLError(GL_INVALID_OPERATION, "BindFramebuffer",
+ "framebuffer reserved id");
return;
}
if (BindFramebufferHelper(target, framebuffer)) {
@@ -58,8 +58,8 @@ void GLES2Implementation::BindRenderbuffer(GLenum target, GLuint renderbuffer) {
<< GLES2Util::GetStringRenderBufferTarget(target) << ", "
<< renderbuffer << ")");
if (IsRenderbufferReservedId(renderbuffer)) {
- SetGLError(
- GL_INVALID_OPERATION, "BindRenderbuffer", "renderbuffer reserved id");
+ SetGLError(GL_INVALID_OPERATION, "BindRenderbuffer",
+ "renderbuffer reserved id");
return;
}
if (BindRenderbufferHelper(target, renderbuffer)) {
@@ -146,8 +146,8 @@ GLenum GLES2Implementation::CheckFramebufferStatus(GLenum target) {
return GL_FRAMEBUFFER_UNSUPPORTED;
}
*result = 0;
- helper_->CheckFramebufferStatus(
- target, GetResultShmId(), GetResultShmOffset());
+ helper_->CheckFramebufferStatus(target, GetResultShmId(),
+ GetResultShmOffset());
WaitForCmd();
GLenum result_value = *result;
GPU_CLIENT_LOG("returned " << result_value);
@@ -261,8 +261,8 @@ void GLES2Implementation::CopyTexSubImage2D(GLenum target,
SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0");
return;
}
- helper_->CopyTexSubImage2D(
- target, level, xoffset, yoffset, x, y, width, height);
+ helper_->CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width,
+ height);
CheckGLError();
}
@@ -449,8 +449,8 @@ void GLES2Implementation::FramebufferRenderbuffer(GLenum target,
<< GLES2Util::GetStringAttachment(attachment) << ", "
<< GLES2Util::GetStringRenderBufferTarget(
renderbuffertarget) << ", " << renderbuffer << ")");
- helper_->FramebufferRenderbuffer(
- target, attachment, renderbuffertarget, renderbuffer);
+ helper_->FramebufferRenderbuffer(target, attachment, renderbuffertarget,
+ renderbuffer);
CheckGLError();
}
@@ -466,8 +466,8 @@ void GLES2Implementation::FramebufferTexture2D(GLenum target,
<< GLES2Util::GetStringTextureTarget(textarget) << ", "
<< texture << ", " << level << ")");
if (level != 0) {
- SetGLError(
- GL_INVALID_VALUE, "glFramebufferTexture2D", "level GL_INVALID_VALUE");
+ SetGLError(GL_INVALID_VALUE, "glFramebufferTexture2D",
+ "level GL_INVALID_VALUE");
return;
}
helper_->FramebufferTexture2D(target, attachment, textarget, texture);
@@ -620,8 +620,8 @@ void GLES2Implementation::GetBufferParameteriv(GLenum target,
return;
}
result->SetNumResults(0);
- helper_->GetBufferParameteriv(
- target, pname, GetResultShmId(), GetResultShmOffset());
+ helper_->GetBufferParameteriv(target, pname, GetResultShmId(),
+ GetResultShmOffset());
WaitForCmd();
result->CopyResult(params);
GPU_CLIENT_LOG_CODE_BLOCK({
@@ -670,8 +670,8 @@ void GLES2Implementation::GetFramebufferAttachmentParameteriv(GLenum target,
<< static_cast<const void*>(params) << ")");
TRACE_EVENT0("gpu",
"GLES2Implementation::GetFramebufferAttachmentParameteriv");
- if (GetFramebufferAttachmentParameterivHelper(
- target, attachment, pname, params)) {
+ if (GetFramebufferAttachmentParameterivHelper(target, attachment, pname,
+ params)) {
return;
}
typedef cmds::GetFramebufferAttachmentParameteriv::Result Result;
@@ -791,8 +791,8 @@ void GLES2Implementation::GetRenderbufferParameteriv(GLenum target,
return;
}
result->SetNumResults(0);
- helper_->GetRenderbufferParameteriv(
- target, pname, GetResultShmId(), GetResultShmOffset());
+ helper_->GetRenderbufferParameteriv(target, pname, GetResultShmId(),
+ GetResultShmOffset());
WaitForCmd();
result->CopyResult(params);
GPU_CLIENT_LOG_CODE_BLOCK({
@@ -902,8 +902,8 @@ void GLES2Implementation::GetTexParameterfv(GLenum target,
return;
}
result->SetNumResults(0);
- helper_->GetTexParameterfv(
- target, pname, GetResultShmId(), GetResultShmOffset());
+ helper_->GetTexParameterfv(target, pname, GetResultShmId(),
+ GetResultShmOffset());
WaitForCmd();
result->CopyResult(params);
GPU_CLIENT_LOG_CODE_BLOCK({
@@ -932,8 +932,8 @@ void GLES2Implementation::GetTexParameteriv(GLenum target,
return;
}
result->SetNumResults(0);
- helper_->GetTexParameteriv(
- target, pname, GetResultShmId(), GetResultShmOffset());
+ helper_->GetTexParameteriv(target, pname, GetResultShmId(),
+ GetResultShmOffset());
WaitForCmd();
result->CopyResult(params);
GPU_CLIENT_LOG_CODE_BLOCK({
@@ -1497,8 +1497,8 @@ void GLES2Implementation::UniformMatrix2fv(GLint location,
return;
}
if (transpose != false) {
- SetGLError(
- GL_INVALID_VALUE, "glUniformMatrix2fv", "transpose GL_INVALID_VALUE");
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix2fv",
+ "transpose GL_INVALID_VALUE");
return;
}
helper_->UniformMatrix2fvImmediate(location, count, value);
@@ -1529,8 +1529,8 @@ void GLES2Implementation::UniformMatrix3fv(GLint location,
return;
}
if (transpose != false) {
- SetGLError(
- GL_INVALID_VALUE, "glUniformMatrix3fv", "transpose GL_INVALID_VALUE");
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix3fv",
+ "transpose GL_INVALID_VALUE");
return;
}
helper_->UniformMatrix3fvImmediate(location, count, value);
@@ -1564,8 +1564,8 @@ void GLES2Implementation::UniformMatrix4fv(GLint location,
return;
}
if (transpose != false) {
- SetGLError(
- GL_INVALID_VALUE, "glUniformMatrix4fv", "transpose GL_INVALID_VALUE");
+ SetGLError(GL_INVALID_VALUE, "glUniformMatrix4fv",
+ "transpose GL_INVALID_VALUE");
return;
}
helper_->UniformMatrix4fvImmediate(location, count, value);
@@ -1705,8 +1705,8 @@ void GLES2Implementation::BlitFramebufferCHROMIUM(GLint srcX0,
<< ", " << dstX0 << ", " << dstY0 << ", " << dstX1 << ", "
<< dstY1 << ", " << mask << ", "
<< GLES2Util::GetStringBlitFilter(filter) << ")");
- helper_->BlitFramebufferCHROMIUM(
- srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+ helper_->BlitFramebufferCHROMIUM(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
+ dstX1, dstY1, mask, filter);
CheckGLError();
}
@@ -1723,20 +1723,17 @@ void GLES2Implementation::RenderbufferStorageMultisampleCHROMIUM(
<< ", " << GLES2Util::GetStringRenderBufferFormat(internalformat)
<< ", " << width << ", " << height << ")");
if (samples < 0) {
- SetGLError(GL_INVALID_VALUE,
- "glRenderbufferStorageMultisampleCHROMIUM",
+ SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM",
"samples < 0");
return;
}
if (width < 0) {
- SetGLError(GL_INVALID_VALUE,
- "glRenderbufferStorageMultisampleCHROMIUM",
+ SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM",
"width < 0");
return;
}
if (height < 0) {
- SetGLError(GL_INVALID_VALUE,
- "glRenderbufferStorageMultisampleCHROMIUM",
+ SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleCHROMIUM",
"height < 0");
return;
}
@@ -1758,22 +1755,22 @@ void GLES2Implementation::RenderbufferStorageMultisampleEXT(
<< ", " << GLES2Util::GetStringRenderBufferFormat(internalformat)
<< ", " << width << ", " << height << ")");
if (samples < 0) {
- SetGLError(
- GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0");
+ SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+ "samples < 0");
return;
}
if (width < 0) {
- SetGLError(
- GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0");
+ SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+ "width < 0");
return;
}
if (height < 0) {
- SetGLError(
- GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0");
+ SetGLError(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+ "height < 0");
return;
}
- helper_->RenderbufferStorageMultisampleEXT(
- target, samples, internalformat, width, height);
+ helper_->RenderbufferStorageMultisampleEXT(target, samples, internalformat,
+ width, height);
CheckGLError();
}
@@ -1791,19 +1788,17 @@ void GLES2Implementation::FramebufferTexture2DMultisampleEXT(GLenum target,
<< GLES2Util::GetStringTextureTarget(textarget) << ", "
<< texture << ", " << level << ", " << samples << ")");
if (level != 0) {
- SetGLError(GL_INVALID_VALUE,
- "glFramebufferTexture2DMultisampleEXT",
+ SetGLError(GL_INVALID_VALUE, "glFramebufferTexture2DMultisampleEXT",
"level GL_INVALID_VALUE");
return;
}
if (samples < 0) {
- SetGLError(GL_INVALID_VALUE,
- "glFramebufferTexture2DMultisampleEXT",
+ SetGLError(GL_INVALID_VALUE, "glFramebufferTexture2DMultisampleEXT",
"samples < 0");
return;
}
- helper_->FramebufferTexture2DMultisampleEXT(
- target, attachment, textarget, texture, samples);
+ helper_->FramebufferTexture2DMultisampleEXT(target, attachment, textarget,
+ texture, samples);
CheckGLError();
}
@@ -2001,8 +1996,8 @@ void GLES2Implementation::TexImageIOSurface2DCHROMIUM(GLenum target,
SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0");
return;
}
- helper_->TexImageIOSurface2DCHROMIUM(
- target, width, height, ioSurfaceId, plane);
+ helper_->TexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId,
+ plane);
CheckGLError();
}
@@ -2019,8 +2014,122 @@ void GLES2Implementation::CopyTextureCHROMIUM(GLenum target,
<< GLES2Util::GetStringEnum(dest_id) << ", " << level
<< ", " << internalformat << ", "
<< GLES2Util::GetStringPixelType(dest_type) << ")");
- helper_->CopyTextureCHROMIUM(
- target, source_id, dest_id, level, internalformat, dest_type);
+ helper_->CopyTextureCHROMIUM(target, source_id, dest_id, level,
+ internalformat, dest_type);
+ CheckGLError();
+}
+
+void GLES2Implementation::GenValuebuffersCHROMIUM(GLsizei n, GLuint* buffers) {
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenValuebuffersCHROMIUM(" << n
+ << ", " << static_cast<const void*>(buffers) << ")");
+ if (n < 0) {
+ SetGLError(GL_INVALID_VALUE, "glGenValuebuffersCHROMIUM", "n < 0");
+ return;
+ }
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GetIdHandler(id_namespaces::kValuebuffers)->MakeIds(this, 0, n, buffers);
+ GenValuebuffersCHROMIUMHelper(n, buffers);
+ helper_->GenValuebuffersCHROMIUMImmediate(n, buffers);
+ if (share_group_->bind_generates_resource())
+ helper_->CommandBufferHelper::Flush();
+ GPU_CLIENT_LOG_CODE_BLOCK({
+ for (GLsizei i = 0; i < n; ++i) {
+ GPU_CLIENT_LOG(" " << i << ": " << buffers[i]);
+ }
+ });
+ CheckGLError();
+}
+
+void GLES2Implementation::DeleteValuebuffersCHROMIUM(
+ GLsizei n,
+ const GLuint* valuebuffers) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteValuebuffersCHROMIUM(" << n
+ << ", " << static_cast<const void*>(valuebuffers) << ")");
+ GPU_CLIENT_LOG_CODE_BLOCK({
+ for (GLsizei i = 0; i < n; ++i) {
+ GPU_CLIENT_LOG(" " << i << ": " << valuebuffers[i]);
+ }
+ });
+ GPU_CLIENT_DCHECK_CODE_BLOCK({
+ for (GLsizei i = 0; i < n; ++i) {
+ DCHECK(valuebuffers[i] != 0);
+ }
+ });
+ if (n < 0) {
+ SetGLError(GL_INVALID_VALUE, "glDeleteValuebuffersCHROMIUM", "n < 0");
+ return;
+ }
+ DeleteValuebuffersCHROMIUMHelper(n, valuebuffers);
+ CheckGLError();
+}
+
+GLboolean GLES2Implementation::IsValuebufferCHROMIUM(GLuint valuebuffer) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ TRACE_EVENT0("gpu", "GLES2Implementation::IsValuebufferCHROMIUM");
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsValuebufferCHROMIUM("
+ << valuebuffer << ")");
+ typedef cmds::IsValuebufferCHROMIUM::Result Result;
+ Result* result = GetResultAs<Result*>();
+ if (!result) {
+ return GL_FALSE;
+ }
+ *result = 0;
+ helper_->IsValuebufferCHROMIUM(valuebuffer, GetResultShmId(),
+ GetResultShmOffset());
+ WaitForCmd();
+ GLboolean result_value = *result != 0;
+ GPU_CLIENT_LOG("returned " << result_value);
+ CheckGLError();
+ return result_value;
+}
+
+void GLES2Implementation::BindValuebufferCHROMIUM(GLenum target,
+ GLuint valuebuffer) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindValuebufferCHROMIUM("
+ << GLES2Util::GetStringValueBufferTarget(target) << ", "
+ << valuebuffer << ")");
+ if (IsValuebufferReservedId(valuebuffer)) {
+ SetGLError(GL_INVALID_OPERATION, "BindValuebufferCHROMIUM",
+ "valuebuffer reserved id");
+ return;
+ }
+ if (BindValuebufferCHROMIUMHelper(target, valuebuffer)) {
+ helper_->BindValuebufferCHROMIUM(target, valuebuffer);
+ }
+ CheckGLError();
+}
+
+void GLES2Implementation::SubscribeValueCHROMIUM(GLenum target,
+ GLenum subscription) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glSubscribeValueCHROMIUM("
+ << GLES2Util::GetStringValueBufferTarget(target) << ", "
+ << GLES2Util::GetStringSubscriptionTarget(subscription)
+ << ")");
+ helper_->SubscribeValueCHROMIUM(target, subscription);
+ CheckGLError();
+}
+
+void GLES2Implementation::PopulateSubscribedValuesCHROMIUM(GLenum target) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix()
+ << "] glPopulateSubscribedValuesCHROMIUM("
+ << GLES2Util::GetStringValueBufferTarget(target) << ")");
+ helper_->PopulateSubscribedValuesCHROMIUM(target);
+ CheckGLError();
+}
+
+void GLES2Implementation::UniformValuebufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG(
+ "[" << GetLogPrefix() << "] glUniformValuebufferCHROMIUM(" << location
+ << ", " << GLES2Util::GetStringValueBufferTarget(target) << ", "
+ << GLES2Util::GetStringSubscriptionTarget(subscription) << ")");
+ helper_->UniformValuebufferCHROMIUM(location, target, subscription);
CheckGLError();
}
@@ -2124,17 +2233,9 @@ void GLES2Implementation::ScheduleOverlayPlaneCHROMIUM(
<< ", " << overlay_texture_id << ", " << bounds_x << ", " << bounds_y
<< ", " << bounds_width << ", " << bounds_height << ", " << uv_x
<< ", " << uv_y << ", " << uv_width << ", " << uv_height << ")");
- helper_->ScheduleOverlayPlaneCHROMIUM(plane_z_order,
- plane_transform,
- overlay_texture_id,
- bounds_x,
- bounds_y,
- bounds_width,
- bounds_height,
- uv_x,
- uv_y,
- uv_width,
- uv_height);
+ helper_->ScheduleOverlayPlaneCHROMIUM(
+ plane_z_order, plane_transform, overlay_texture_id, bounds_x, bounds_y,
+ bounds_width, bounds_height, uv_x, uv_y, uv_width, uv_height);
CheckGLError();
}
diff --git a/gpu/command_buffer/client/gles2_implementation_unittest.cc b/gpu/command_buffer/client/gles2_implementation_unittest.cc
index 3d2f089e95..799618cb4d 100644
--- a/gpu/command_buffer/client/gles2_implementation_unittest.cc
+++ b/gpu/command_buffer/client/gles2_implementation_unittest.cc
@@ -383,6 +383,7 @@ class GLES2ImplementationTest : public testing::Test {
static const GLuint kTexturesStartId = 1;
static const GLuint kQueriesStartId = 1;
static const GLuint kVertexArraysStartId = 1;
+ static const GLuint kValuebuffersStartId = 1;
typedef MockTransferBuffer::ExpectedMemoryInfo ExpectedMemoryInfo;
@@ -467,7 +468,7 @@ class GLES2ImplementationTest : public testing::Test {
scoped_refptr<Buffer> ring_buffer = helper_->get_ring_buffer();
commands_ = static_cast<CommandBufferEntry*>(ring_buffer->memory()) +
- command_buffer()->GetLastState().put_offset;
+ command_buffer()->GetPutOffset();
ClearCommands();
EXPECT_TRUE(transfer_buffer_->InSync());
@@ -755,6 +756,7 @@ const GLuint GLES2ImplementationTest::kRenderbuffersStartId;
const GLuint GLES2ImplementationTest::kTexturesStartId;
const GLuint GLES2ImplementationTest::kQueriesStartId;
const GLuint GLES2ImplementationTest::kVertexArraysStartId;
+const GLuint GLES2ImplementationTest::kValuebuffersStartId;
#endif
TEST_F(GLES2ImplementationTest, Basic) {
diff --git a/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h b/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
index a42d6d5d78..74a438c0f6 100644
--- a/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
+++ b/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
@@ -421,8 +421,8 @@ TEST_F(GLES2ImplementationTest, FramebufferRenderbuffer) {
Cmds expected;
expected.cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, 4);
- gl_->FramebufferRenderbuffer(
- GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, 4);
+ gl_->FramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_RENDERBUFFER, 4);
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
}
@@ -433,14 +433,14 @@ TEST_F(GLES2ImplementationTest, FramebufferTexture2D) {
Cmds expected;
expected.cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4);
- gl_->FramebufferTexture2D(
- GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 0);
+ gl_->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+ 4, 0);
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
}
TEST_F(GLES2ImplementationTest, FramebufferTexture2DInvalidConstantArg4) {
- gl_->FramebufferTexture2D(
- GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 1);
+ gl_->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+ 4, 1);
EXPECT_TRUE(NoCommandsWritten());
EXPECT_EQ(GL_INVALID_VALUE, CheckError());
}
@@ -602,18 +602,14 @@ TEST_F(GLES2ImplementationTest, GetFramebufferAttachmentParameteriv) {
Result::Type result = 0;
Cmds expected;
ExpectedMemoryInfo result1 = GetExpectedResultMemory(4);
- expected.cmd.Init(123,
- GL_COLOR_ATTACHMENT0,
- GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
- result1.id,
+ expected.cmd.Init(123, GL_COLOR_ATTACHMENT0,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, result1.id,
result1.offset);
EXPECT_CALL(*command_buffer(), OnFlush())
.WillOnce(SetMemory(result1.ptr, SizedResultHelper<Result::Type>(1)))
.RetiresOnSaturation();
gl_->GetFramebufferAttachmentParameteriv(
- 123,
- GL_COLOR_ATTACHMENT0,
- GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
+ 123, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
&result);
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
EXPECT_EQ(static_cast<Result::Type>(1), result);
@@ -735,8 +731,8 @@ TEST_F(GLES2ImplementationTest, GetVertexAttribfv) {
Result::Type result = 0;
Cmds expected;
ExpectedMemoryInfo result1 = GetExpectedResultMemory(4);
- expected.cmd.Init(
- 123, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, result1.id, result1.offset);
+ expected.cmd.Init(123, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, result1.id,
+ result1.offset);
EXPECT_CALL(*command_buffer(), OnFlush())
.WillOnce(SetMemory(result1.ptr, SizedResultHelper<Result::Type>(1)))
.RetiresOnSaturation();
@@ -753,8 +749,8 @@ TEST_F(GLES2ImplementationTest, GetVertexAttribiv) {
Result::Type result = 0;
Cmds expected;
ExpectedMemoryInfo result1 = GetExpectedResultMemory(4);
- expected.cmd.Init(
- 123, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, result1.id, result1.offset);
+ expected.cmd.Init(123, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, result1.id,
+ result1.offset);
EXPECT_CALL(*command_buffer(), OnFlush())
.WillOnce(SetMemory(result1.ptr, SizedResultHelper<Result::Type>(1)))
.RetiresOnSaturation();
@@ -1599,8 +1595,8 @@ TEST_F(GLES2ImplementationTest, RenderbufferStorageMultisampleCHROMIUM) {
Cmds expected;
expected.cmd.Init(GL_RENDERBUFFER, 2, GL_RGBA4, 4, 5);
- gl_->RenderbufferStorageMultisampleCHROMIUM(
- GL_RENDERBUFFER, 2, GL_RGBA4, 4, 5);
+ gl_->RenderbufferStorageMultisampleCHROMIUM(GL_RENDERBUFFER, 2, GL_RGBA4, 4,
+ 5);
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
}
@@ -1622,15 +1618,15 @@ TEST_F(GLES2ImplementationTest, FramebufferTexture2DMultisampleEXT) {
Cmds expected;
expected.cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 6);
- gl_->FramebufferTexture2DMultisampleEXT(
- GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 0, 6);
+ gl_->FramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_TEXTURE_2D, 4, 0, 6);
EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
}
TEST_F(GLES2ImplementationTest,
FramebufferTexture2DMultisampleEXTInvalidConstantArg4) {
- gl_->FramebufferTexture2DMultisampleEXT(
- GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, 4, 1, 6);
+ gl_->FramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_TEXTURE_2D, 4, 1, 6);
EXPECT_TRUE(NoCommandsWritten());
EXPECT_EQ(GL_INVALID_VALUE, CheckError());
}
@@ -1804,6 +1800,108 @@ TEST_F(GLES2ImplementationTest, VertexAttribDivisorANGLE) {
// TODO: Implement unit test for GenMailboxCHROMIUM
// TODO: Implement unit test for BindUniformLocationCHROMIUM
+TEST_F(GLES2ImplementationTest, GenValuebuffersCHROMIUM) {
+ GLuint ids[2] = {
+ 0,
+ };
+ struct Cmds {
+ cmds::GenValuebuffersCHROMIUMImmediate gen;
+ GLuint data[2];
+ };
+ Cmds expected;
+ expected.gen.Init(arraysize(ids), &ids[0]);
+ expected.data[0] = kValuebuffersStartId;
+ expected.data[1] = kValuebuffersStartId + 1;
+ gl_->GenValuebuffersCHROMIUM(arraysize(ids), &ids[0]);
+ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
+ EXPECT_EQ(kValuebuffersStartId, ids[0]);
+ EXPECT_EQ(kValuebuffersStartId + 1, ids[1]);
+}
+
+TEST_F(GLES2ImplementationTest, DeleteValuebuffersCHROMIUM) {
+ GLuint ids[2] = {kValuebuffersStartId, kValuebuffersStartId + 1};
+ struct Cmds {
+ cmds::DeleteValuebuffersCHROMIUMImmediate del;
+ GLuint data[2];
+ };
+ Cmds expected;
+ expected.del.Init(arraysize(ids), &ids[0]);
+ expected.data[0] = kValuebuffersStartId;
+ expected.data[1] = kValuebuffersStartId + 1;
+ gl_->DeleteValuebuffersCHROMIUM(arraysize(ids), &ids[0]);
+ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
+}
+
+TEST_F(GLES2ImplementationTest, IsValuebufferCHROMIUM) {
+ struct Cmds {
+ cmds::IsValuebufferCHROMIUM cmd;
+ };
+
+ Cmds expected;
+ ExpectedMemoryInfo result1 =
+ GetExpectedResultMemory(sizeof(cmds::IsValuebufferCHROMIUM::Result));
+ expected.cmd.Init(1, result1.id, result1.offset);
+
+ EXPECT_CALL(*command_buffer(), OnFlush())
+ .WillOnce(SetMemory(result1.ptr, uint32_t(1)))
+ .RetiresOnSaturation();
+
+ GLboolean result = gl_->IsValuebufferCHROMIUM(1);
+ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
+ EXPECT_TRUE(result);
+}
+
+TEST_F(GLES2ImplementationTest, BindValuebufferCHROMIUM) {
+ struct Cmds {
+ cmds::BindValuebufferCHROMIUM cmd;
+ };
+ Cmds expected;
+ expected.cmd.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, 2);
+
+ gl_->BindValuebufferCHROMIUM(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, 2);
+ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
+ ClearCommands();
+ gl_->BindValuebufferCHROMIUM(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, 2);
+ EXPECT_TRUE(NoCommandsWritten());
+}
+
+TEST_F(GLES2ImplementationTest, SubscribeValueCHROMIUM) {
+ struct Cmds {
+ cmds::SubscribeValueCHROMIUM cmd;
+ };
+ Cmds expected;
+ expected.cmd.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
+ GL_MOUSE_POSITION_CHROMIUM);
+
+ gl_->SubscribeValueCHROMIUM(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
+ GL_MOUSE_POSITION_CHROMIUM);
+ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
+}
+
+TEST_F(GLES2ImplementationTest, PopulateSubscribedValuesCHROMIUM) {
+ struct Cmds {
+ cmds::PopulateSubscribedValuesCHROMIUM cmd;
+ };
+ Cmds expected;
+ expected.cmd.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM);
+
+ gl_->PopulateSubscribedValuesCHROMIUM(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM);
+ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
+}
+
+TEST_F(GLES2ImplementationTest, UniformValuebufferCHROMIUM) {
+ struct Cmds {
+ cmds::UniformValuebufferCHROMIUM cmd;
+ };
+ Cmds expected;
+ expected.cmd.Init(1, GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
+ GL_MOUSE_POSITION_CHROMIUM);
+
+ gl_->UniformValuebufferCHROMIUM(1, GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
+ GL_MOUSE_POSITION_CHROMIUM);
+ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
+}
+
TEST_F(GLES2ImplementationTest, BindTexImage2DCHROMIUM) {
struct Cmds {
cmds::BindTexImage2DCHROMIUM cmd;
diff --git a/gpu/command_buffer/client/gles2_interface_autogen.h b/gpu/command_buffer/client/gles2_interface_autogen.h
index d8408047b9..af5db19d11 100644
--- a/gpu/command_buffer/client/gles2_interface_autogen.h
+++ b/gpu/command_buffer/client/gles2_interface_autogen.h
@@ -450,6 +450,16 @@ virtual GLuint CreateAndConsumeTextureCHROMIUM(GLenum target,
virtual void BindUniformLocationCHROMIUM(GLuint program,
GLint location,
const char* name) = 0;
+virtual void GenValuebuffersCHROMIUM(GLsizei n, GLuint* buffers) = 0;
+virtual void DeleteValuebuffersCHROMIUM(GLsizei n,
+ const GLuint* valuebuffers) = 0;
+virtual GLboolean IsValuebufferCHROMIUM(GLuint valuebuffer) = 0;
+virtual void BindValuebufferCHROMIUM(GLenum target, GLuint valuebuffer) = 0;
+virtual void SubscribeValueCHROMIUM(GLenum target, GLenum subscription) = 0;
+virtual void PopulateSubscribedValuesCHROMIUM(GLenum target) = 0;
+virtual void UniformValuebufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription) = 0;
virtual void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) = 0;
virtual void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) = 0;
virtual void TraceBeginCHROMIUM(const char* name) = 0;
diff --git a/gpu/command_buffer/client/gles2_interface_stub_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_autogen.h
index 687ff48e77..c540360d87 100644
--- a/gpu/command_buffer/client/gles2_interface_stub_autogen.h
+++ b/gpu/command_buffer/client/gles2_interface_stub_autogen.h
@@ -441,6 +441,15 @@ GLuint CreateAndConsumeTextureCHROMIUM(GLenum target,
void BindUniformLocationCHROMIUM(GLuint program,
GLint location,
const char* name) override;
+void GenValuebuffersCHROMIUM(GLsizei n, GLuint* buffers) override;
+void DeleteValuebuffersCHROMIUM(GLsizei n, const GLuint* valuebuffers) override;
+GLboolean IsValuebufferCHROMIUM(GLuint valuebuffer) override;
+void BindValuebufferCHROMIUM(GLenum target, GLuint valuebuffer) override;
+void SubscribeValueCHROMIUM(GLenum target, GLenum subscription) override;
+void PopulateSubscribedValuesCHROMIUM(GLenum target) override;
+void UniformValuebufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription) override;
void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) override;
void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) override;
void TraceBeginCHROMIUM(const char* name) override;
diff --git a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
index e78b07cd9d..78fe6d36b7 100644
--- a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
+++ b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
@@ -781,6 +781,28 @@ void GLES2InterfaceStub::BindUniformLocationCHROMIUM(GLuint /* program */,
GLint /* location */,
const char* /* name */) {
}
+void GLES2InterfaceStub::GenValuebuffersCHROMIUM(GLsizei /* n */,
+ GLuint* /* buffers */) {
+}
+void GLES2InterfaceStub::DeleteValuebuffersCHROMIUM(
+ GLsizei /* n */,
+ const GLuint* /* valuebuffers */) {
+}
+GLboolean GLES2InterfaceStub::IsValuebufferCHROMIUM(GLuint /* valuebuffer */) {
+ return 0;
+}
+void GLES2InterfaceStub::BindValuebufferCHROMIUM(GLenum /* target */,
+ GLuint /* valuebuffer */) {
+}
+void GLES2InterfaceStub::SubscribeValueCHROMIUM(GLenum /* target */,
+ GLenum /* subscription */) {
+}
+void GLES2InterfaceStub::PopulateSubscribedValuesCHROMIUM(GLenum /* target */) {
+}
+void GLES2InterfaceStub::UniformValuebufferCHROMIUM(GLint /* location */,
+ GLenum /* target */,
+ GLenum /* subscription */) {
+}
void GLES2InterfaceStub::BindTexImage2DCHROMIUM(GLenum /* target */,
GLint /* imageId */) {
}
diff --git a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
index a599eb4058..cb6091084b 100644
--- a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
+++ b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
@@ -441,6 +441,15 @@ GLuint CreateAndConsumeTextureCHROMIUM(GLenum target,
void BindUniformLocationCHROMIUM(GLuint program,
GLint location,
const char* name) override;
+void GenValuebuffersCHROMIUM(GLsizei n, GLuint* buffers) override;
+void DeleteValuebuffersCHROMIUM(GLsizei n, const GLuint* valuebuffers) override;
+GLboolean IsValuebufferCHROMIUM(GLuint valuebuffer) override;
+void BindValuebufferCHROMIUM(GLenum target, GLuint valuebuffer) override;
+void SubscribeValueCHROMIUM(GLenum target, GLenum subscription) override;
+void PopulateSubscribedValuesCHROMIUM(GLenum target) override;
+void UniformValuebufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription) override;
void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) override;
void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) override;
void TraceBeginCHROMIUM(const char* name) override;
diff --git a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
index 3173a25e5e..dd9d201d6a 100644
--- a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
+++ b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
@@ -149,8 +149,8 @@ void GLES2TraceImplementation::CompressedTexImage2D(GLenum target,
GLsizei imageSize,
const void* data) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::CompressedTexImage2D");
- gl_->CompressedTexImage2D(
- target, level, internalformat, width, height, border, imageSize, data);
+ gl_->CompressedTexImage2D(target, level, internalformat, width, height,
+ border, imageSize, data);
}
void GLES2TraceImplementation::CompressedTexSubImage2D(GLenum target,
@@ -163,8 +163,8 @@ void GLES2TraceImplementation::CompressedTexSubImage2D(GLenum target,
GLsizei imageSize,
const void* data) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::CompressedTexSubImage2D");
- gl_->CompressedTexSubImage2D(
- target, level, xoffset, yoffset, width, height, format, imageSize, data);
+ gl_->CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height,
+ format, imageSize, data);
}
void GLES2TraceImplementation::CopyTexImage2D(GLenum target,
@@ -176,8 +176,8 @@ void GLES2TraceImplementation::CopyTexImage2D(GLenum target,
GLsizei height,
GLint border) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::CopyTexImage2D");
- gl_->CopyTexImage2D(
- target, level, internalformat, x, y, width, height, border);
+ gl_->CopyTexImage2D(target, level, internalformat, x, y, width, height,
+ border);
}
void GLES2TraceImplementation::CopyTexSubImage2D(GLenum target,
@@ -312,8 +312,8 @@ void GLES2TraceImplementation::FramebufferRenderbuffer(
GLenum renderbuffertarget,
GLuint renderbuffer) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::FramebufferRenderbuffer");
- gl_->FramebufferRenderbuffer(
- target, attachment, renderbuffertarget, renderbuffer);
+ gl_->FramebufferRenderbuffer(target, attachment, renderbuffertarget,
+ renderbuffer);
}
void GLES2TraceImplementation::FramebufferTexture2D(GLenum target,
@@ -719,15 +719,8 @@ void GLES2TraceImplementation::TexImage2D(GLenum target,
GLenum type,
const void* pixels) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::TexImage2D");
- gl_->TexImage2D(target,
- level,
- internalformat,
- width,
- height,
- border,
- format,
- type,
- pixels);
+ gl_->TexImage2D(target, level, internalformat, width, height, border, format,
+ type, pixels);
}
void GLES2TraceImplementation::TexParameterf(GLenum target,
@@ -768,8 +761,8 @@ void GLES2TraceImplementation::TexSubImage2D(GLenum target,
GLenum type,
const void* pixels) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::TexSubImage2D");
- gl_->TexSubImage2D(
- target, level, xoffset, yoffset, width, height, format, type, pixels);
+ gl_->TexSubImage2D(target, level, xoffset, yoffset, width, height, format,
+ type, pixels);
}
void GLES2TraceImplementation::Uniform1f(GLint location, GLfloat x) {
@@ -998,8 +991,8 @@ void GLES2TraceImplementation::BlitFramebufferCHROMIUM(GLint srcX0,
GLbitfield mask,
GLenum filter) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::BlitFramebufferCHROMIUM");
- gl_->BlitFramebufferCHROMIUM(
- srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+ gl_->BlitFramebufferCHROMIUM(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1,
+ dstY1, mask, filter);
}
void GLES2TraceImplementation::RenderbufferStorageMultisampleCHROMIUM(
@@ -1010,8 +1003,8 @@ void GLES2TraceImplementation::RenderbufferStorageMultisampleCHROMIUM(
GLsizei height) {
TRACE_EVENT_BINARY_EFFICIENT0(
"gpu", "GLES2Trace::RenderbufferStorageMultisampleCHROMIUM");
- gl_->RenderbufferStorageMultisampleCHROMIUM(
- target, samples, internalformat, width, height);
+ gl_->RenderbufferStorageMultisampleCHROMIUM(target, samples, internalformat,
+ width, height);
}
void GLES2TraceImplementation::RenderbufferStorageMultisampleEXT(
@@ -1022,8 +1015,8 @@ void GLES2TraceImplementation::RenderbufferStorageMultisampleEXT(
GLsizei height) {
TRACE_EVENT_BINARY_EFFICIENT0(
"gpu", "GLES2Trace::RenderbufferStorageMultisampleEXT");
- gl_->RenderbufferStorageMultisampleEXT(
- target, samples, internalformat, width, height);
+ gl_->RenderbufferStorageMultisampleEXT(target, samples, internalformat, width,
+ height);
}
void GLES2TraceImplementation::FramebufferTexture2DMultisampleEXT(
@@ -1035,8 +1028,8 @@ void GLES2TraceImplementation::FramebufferTexture2DMultisampleEXT(
GLsizei samples) {
TRACE_EVENT_BINARY_EFFICIENT0(
"gpu", "GLES2Trace::FramebufferTexture2DMultisampleEXT");
- gl_->FramebufferTexture2DMultisampleEXT(
- target, attachment, textarget, texture, level, samples);
+ gl_->FramebufferTexture2DMultisampleEXT(target, attachment, textarget,
+ texture, level, samples);
}
void GLES2TraceImplementation::TexStorage2DEXT(GLenum target,
@@ -1180,8 +1173,8 @@ void* GLES2TraceImplementation::MapTexSubImage2DCHROMIUM(GLenum target,
GLenum type,
GLenum access) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::MapTexSubImage2DCHROMIUM");
- return gl_->MapTexSubImage2DCHROMIUM(
- target, level, xoffset, yoffset, width, height, format, type, access);
+ return gl_->MapTexSubImage2DCHROMIUM(target, level, xoffset, yoffset, width,
+ height, format, type, access);
}
void GLES2TraceImplementation::UnmapTexSubImage2DCHROMIUM(const void* mem) {
@@ -1257,8 +1250,8 @@ GLuint GLES2TraceImplementation::CreateGpuMemoryBufferImageCHROMIUM(
GLenum usage) {
TRACE_EVENT_BINARY_EFFICIENT0(
"gpu", "GLES2Trace::CreateGpuMemoryBufferImageCHROMIUM");
- return gl_->CreateGpuMemoryBufferImageCHROMIUM(
- width, height, internalformat, usage);
+ return gl_->CreateGpuMemoryBufferImageCHROMIUM(width, height, internalformat,
+ usage);
}
void GLES2TraceImplementation::GetTranslatedShaderSourceANGLE(GLuint shader,
@@ -1295,8 +1288,8 @@ void GLES2TraceImplementation::CopyTextureCHROMIUM(GLenum target,
GLint internalformat,
GLenum dest_type) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::CopyTextureCHROMIUM");
- gl_->CopyTextureCHROMIUM(
- target, source_id, dest_id, level, internalformat, dest_type);
+ gl_->CopyTextureCHROMIUM(target, source_id, dest_id, level, internalformat,
+ dest_type);
}
void GLES2TraceImplementation::DrawArraysInstancedANGLE(GLenum mode,
@@ -1365,6 +1358,51 @@ void GLES2TraceImplementation::BindUniformLocationCHROMIUM(GLuint program,
gl_->BindUniformLocationCHROMIUM(program, location, name);
}
+void GLES2TraceImplementation::GenValuebuffersCHROMIUM(GLsizei n,
+ GLuint* buffers) {
+ TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::GenValuebuffersCHROMIUM");
+ gl_->GenValuebuffersCHROMIUM(n, buffers);
+}
+
+void GLES2TraceImplementation::DeleteValuebuffersCHROMIUM(
+ GLsizei n,
+ const GLuint* valuebuffers) {
+ TRACE_EVENT_BINARY_EFFICIENT0("gpu",
+ "GLES2Trace::DeleteValuebuffersCHROMIUM");
+ gl_->DeleteValuebuffersCHROMIUM(n, valuebuffers);
+}
+
+GLboolean GLES2TraceImplementation::IsValuebufferCHROMIUM(GLuint valuebuffer) {
+ TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::IsValuebufferCHROMIUM");
+ return gl_->IsValuebufferCHROMIUM(valuebuffer);
+}
+
+void GLES2TraceImplementation::BindValuebufferCHROMIUM(GLenum target,
+ GLuint valuebuffer) {
+ TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::BindValuebufferCHROMIUM");
+ gl_->BindValuebufferCHROMIUM(target, valuebuffer);
+}
+
+void GLES2TraceImplementation::SubscribeValueCHROMIUM(GLenum target,
+ GLenum subscription) {
+ TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::SubscribeValueCHROMIUM");
+ gl_->SubscribeValueCHROMIUM(target, subscription);
+}
+
+void GLES2TraceImplementation::PopulateSubscribedValuesCHROMIUM(GLenum target) {
+ TRACE_EVENT_BINARY_EFFICIENT0("gpu",
+ "GLES2Trace::PopulateSubscribedValuesCHROMIUM");
+ gl_->PopulateSubscribedValuesCHROMIUM(target);
+}
+
+void GLES2TraceImplementation::UniformValuebufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription) {
+ TRACE_EVENT_BINARY_EFFICIENT0("gpu",
+ "GLES2Trace::UniformValuebufferCHROMIUM");
+ gl_->UniformValuebufferCHROMIUM(location, target, subscription);
+}
+
void GLES2TraceImplementation::BindTexImage2DCHROMIUM(GLenum target,
GLint imageId) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::BindTexImage2DCHROMIUM");
@@ -1398,8 +1436,8 @@ void GLES2TraceImplementation::AsyncTexSubImage2DCHROMIUM(GLenum target,
const void* data) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu",
"GLES2Trace::AsyncTexSubImage2DCHROMIUM");
- gl_->AsyncTexSubImage2DCHROMIUM(
- target, level, xoffset, yoffset, width, height, format, type, data);
+ gl_->AsyncTexSubImage2DCHROMIUM(target, level, xoffset, yoffset, width,
+ height, format, type, data);
}
void GLES2TraceImplementation::AsyncTexImage2DCHROMIUM(GLenum target,
@@ -1412,15 +1450,8 @@ void GLES2TraceImplementation::AsyncTexImage2DCHROMIUM(GLenum target,
GLenum type,
const void* pixels) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::AsyncTexImage2DCHROMIUM");
- gl_->AsyncTexImage2DCHROMIUM(target,
- level,
- internalformat,
- width,
- height,
- border,
- format,
- type,
- pixels);
+ gl_->AsyncTexImage2DCHROMIUM(target, level, internalformat, width, height,
+ border, format, type, pixels);
}
void GLES2TraceImplementation::WaitAsyncTexImage2DCHROMIUM(GLenum target) {
@@ -1484,17 +1515,9 @@ void GLES2TraceImplementation::ScheduleOverlayPlaneCHROMIUM(
GLfloat uv_height) {
TRACE_EVENT_BINARY_EFFICIENT0("gpu",
"GLES2Trace::ScheduleOverlayPlaneCHROMIUM");
- gl_->ScheduleOverlayPlaneCHROMIUM(plane_z_order,
- plane_transform,
- overlay_texture_id,
- bounds_x,
- bounds_y,
- bounds_width,
- bounds_height,
- uv_x,
- uv_y,
- uv_width,
- uv_height);
+ gl_->ScheduleOverlayPlaneCHROMIUM(
+ plane_z_order, plane_transform, overlay_texture_id, bounds_x, bounds_y,
+ bounds_width, bounds_height, uv_x, uv_y, uv_width, uv_height);
}
void GLES2TraceImplementation::MatrixLoadfCHROMIUM(GLenum matrixMode,
diff --git a/gpu/command_buffer/cmd_buffer_functions.txt b/gpu/command_buffer/cmd_buffer_functions.txt
index 37c33be0a2..92053e02d8 100644
--- a/gpu/command_buffer/cmd_buffer_functions.txt
+++ b/gpu/command_buffer/cmd_buffer_functions.txt
@@ -202,6 +202,13 @@ GL_APICALL void GL_APIENTRY glProduceTextureDirectCHROMIUM (GLidBindText
GL_APICALL void GL_APIENTRY glConsumeTextureCHROMIUM (GLenumTextureBindTarget target, const GLbyte* mailbox);
GL_APICALL GLuint GL_APIENTRY glCreateAndConsumeTextureCHROMIUM (GLenumTextureBindTarget target, const GLbyte* mailbox);
GL_APICALL void GL_APIENTRY glBindUniformLocationCHROMIUM (GLidProgram program, GLint location, const char* name);
+GL_APICALL void GL_APIENTRY glGenValuebuffersCHROMIUM (GLsizeiNotNegative n, GLuint* buffers);
+GL_APICALL void GL_APIENTRY glDeleteValuebuffersCHROMIUM (GLsizeiNotNegative n, const GLuint* valuebuffers);
+GL_APICALL GLboolean GL_APIENTRY glIsValuebufferCHROMIUM (GLidBindValuebuffer valuebuffer);
+GL_APICALL void GL_APIENTRY glBindValuebufferCHROMIUM (GLenumValueBufferTarget target, GLidBindValuebuffer valuebuffer);
+GL_APICALL void GL_APIENTRY glSubscribeValueCHROMIUM (GLenumValueBufferTarget target, GLenumSubscriptionTarget subscription);
+GL_APICALL void GL_APIENTRY glPopulateSubscribedValuesCHROMIUM (GLenumValueBufferTarget target);
+GL_APICALL void GL_APIENTRY glUniformValuebufferCHROMIUM (GLintUniformLocation location, GLenumValueBufferTarget target, GLenumSubscriptionTarget subscription);
GL_APICALL void GL_APIENTRY glBindTexImage2DCHROMIUM (GLenumTextureBindTarget target, GLint imageId);
GL_APICALL void GL_APIENTRY glReleaseTexImage2DCHROMIUM (GLenumTextureBindTarget target, GLint imageId);
GL_APICALL void GL_APIENTRY glTraceBeginCHROMIUM (const char* name);
diff --git a/gpu/command_buffer/common/command_buffer.h b/gpu/command_buffer/common/command_buffer.h
index 61b91428f6..d846ec11a6 100644
--- a/gpu/command_buffer/common/command_buffer.h
+++ b/gpu/command_buffer/common/command_buffer.h
@@ -20,24 +20,16 @@ class GPU_EXPORT CommandBuffer {
public:
struct State {
State()
- : num_entries(0),
- get_offset(0),
- put_offset(0),
+ : get_offset(0),
token(-1),
error(error::kNoError),
context_lost_reason(error::kUnknown),
generation(0) {
}
- // Size of the command buffer in command buffer entries.
- int32 num_entries;
-
// The offset (in entries) from which the reader is reading.
int32 get_offset;
- // The offset (in entries) at which the writer is writing.
- int32 put_offset;
-
// The current token value. This is used by the writer to defer
// changes to shared memory objects until the reader has reached a certain
// point in the command buffer. The reader is responsible for updating the
diff --git a/gpu/command_buffer/common/command_buffer_mock.h b/gpu/command_buffer/common/command_buffer_mock.h
index 1877470a09..b7366f8c47 100644
--- a/gpu/command_buffer/common/command_buffer_mock.h
+++ b/gpu/command_buffer/common/command_buffer_mock.h
@@ -38,6 +38,7 @@ class MockCommandBuffer : public CommandBufferServiceBase {
MOCK_METHOD1(SetContextLostReason,
void(error::ContextLostReason context_lost_reason));
MOCK_METHOD0(InsertSyncPoint, uint32());
+ MOCK_METHOD0(GetPutOffset, int32());
private:
DISALLOW_COPY_AND_ASSIGN(MockCommandBuffer);
diff --git a/gpu/command_buffer/common/command_buffer_shared_test.cc b/gpu/command_buffer/common/command_buffer_shared_test.cc
index 65a2429f48..0615f7421d 100644
--- a/gpu/command_buffer/common/command_buffer_shared_test.cc
+++ b/gpu/command_buffer/common/command_buffer_shared_test.cc
@@ -29,7 +29,6 @@ TEST_F(CommandBufferSharedTest, TestBasic) {
EXPECT_LT(state.generation, 0x80000000);
EXPECT_EQ(state.get_offset, 0);
- EXPECT_EQ(state.put_offset, 0);
EXPECT_EQ(state.token, -1);
EXPECT_EQ(state.error, gpu::error::kNoError);
EXPECT_EQ(state.context_lost_reason, gpu::error::kUnknown);
diff --git a/gpu/command_buffer/common/gles2_cmd_format.h b/gpu/command_buffer/common/gles2_cmd_format.h
index 393303ec5c..c0bc66309b 100644
--- a/gpu/command_buffer/common/gles2_cmd_format.h
+++ b/gpu/command_buffer/common/gles2_cmd_format.h
@@ -59,6 +59,7 @@ enum IdNamespaces {
kTextures,
kQueries,
kVertexArrays,
+ kValuebuffers,
kNumIdNamespaces
};
diff --git a/gpu/command_buffer/common/gles2_cmd_format_autogen.h b/gpu/command_buffer/common/gles2_cmd_format_autogen.h
index 487e8b799d..726a30c55b 100644
--- a/gpu/command_buffer/common/gles2_cmd_format_autogen.h
+++ b/gpu/command_buffer/common/gles2_cmd_format_autogen.h
@@ -962,13 +962,8 @@ struct CompressedTexImage2D {
GLsizei _imageSize,
uint32_t _data_shm_id,
uint32_t _data_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(_target,
- _level,
- _internalformat,
- _width,
- _height,
- _imageSize,
- _data_shm_id,
+ static_cast<ValueType*>(cmd)->Init(_target, _level, _internalformat, _width,
+ _height, _imageSize, _data_shm_id,
_data_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -1046,14 +1041,8 @@ struct CompressedTexSubImage2DBucket {
GLsizei _height,
GLenum _format,
GLuint _bucket_id) {
- static_cast<ValueType*>(cmd)->Init(_target,
- _level,
- _xoffset,
- _yoffset,
- _width,
- _height,
- _format,
- _bucket_id);
+ static_cast<ValueType*>(cmd)->Init(_target, _level, _xoffset, _yoffset,
+ _width, _height, _format, _bucket_id);
return NextCmdAddress<ValueType>(cmd);
}
@@ -1135,16 +1124,9 @@ struct CompressedTexSubImage2D {
GLsizei _imageSize,
uint32_t _data_shm_id,
uint32_t _data_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(_target,
- _level,
- _xoffset,
- _yoffset,
- _width,
- _height,
- _format,
- _imageSize,
- _data_shm_id,
- _data_shm_offset);
+ static_cast<ValueType*>(cmd)->Init(_target, _level, _xoffset, _yoffset,
+ _width, _height, _format, _imageSize,
+ _data_shm_id, _data_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -2436,8 +2418,8 @@ struct GetActiveAttrib {
uint32_t _name_bucket_id,
uint32_t _result_shm_id,
uint32_t _result_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(
- _program, _index, _name_bucket_id, _result_shm_id, _result_shm_offset);
+ static_cast<ValueType*>(cmd)->Init(_program, _index, _name_bucket_id,
+ _result_shm_id, _result_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -2506,8 +2488,8 @@ struct GetActiveUniform {
uint32_t _name_bucket_id,
uint32_t _result_shm_id,
uint32_t _result_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(
- _program, _index, _name_bucket_id, _result_shm_id, _result_shm_offset);
+ static_cast<ValueType*>(cmd)->Init(_program, _index, _name_bucket_id,
+ _result_shm_id, _result_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -2625,8 +2607,8 @@ struct GetAttribLocation {
uint32_t _name_bucket_id,
uint32_t _location_shm_id,
uint32_t _location_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(
- _program, _name_bucket_id, _location_shm_id, _location_shm_offset);
+ static_cast<ValueType*>(cmd)->Init(_program, _name_bucket_id,
+ _location_shm_id, _location_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -2870,8 +2852,8 @@ struct GetFramebufferAttachmentParameteriv {
GLenum _pname,
uint32_t _params_shm_id,
uint32_t _params_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(
- _target, _attachment, _pname, _params_shm_id, _params_shm_offset);
+ static_cast<ValueType*>(cmd)->Init(_target, _attachment, _pname,
+ _params_shm_id, _params_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -3572,8 +3554,8 @@ struct GetUniformLocation {
uint32_t _name_bucket_id,
uint32_t _location_shm_id,
uint32_t _location_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(
- _program, _name_bucket_id, _location_shm_id, _location_shm_offset);
+ static_cast<ValueType*>(cmd)->Init(_program, _name_bucket_id,
+ _location_shm_id, _location_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -4313,17 +4295,9 @@ struct ReadPixels {
uint32_t _result_shm_id,
uint32_t _result_shm_offset,
GLboolean _async) {
- static_cast<ValueType*>(cmd)->Init(_x,
- _y,
- _width,
- _height,
- _format,
- _type,
- _pixels_shm_id,
- _pixels_shm_offset,
- _result_shm_id,
- _result_shm_offset,
- _async);
+ static_cast<ValueType*>(cmd)
+ ->Init(_x, _y, _width, _height, _format, _type, _pixels_shm_id,
+ _pixels_shm_offset, _result_shm_id, _result_shm_offset, _async);
return NextCmdAddress<ValueType>(cmd);
}
@@ -4557,13 +4531,9 @@ struct ShaderBinary {
uint32_t _binary_shm_id,
uint32_t _binary_shm_offset,
GLsizei _length) {
- static_cast<ValueType*>(cmd)->Init(_n,
- _shaders_shm_id,
- _shaders_shm_offset,
- _binaryformat,
- _binary_shm_id,
- _binary_shm_offset,
- _length);
+ static_cast<ValueType*>(cmd)->Init(_n, _shaders_shm_id, _shaders_shm_offset,
+ _binaryformat, _binary_shm_id,
+ _binary_shm_offset, _length);
return NextCmdAddress<ValueType>(cmd);
}
@@ -4914,14 +4884,8 @@ struct TexImage2D {
GLenum _type,
uint32_t _pixels_shm_id,
uint32_t _pixels_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(_target,
- _level,
- _internalformat,
- _width,
- _height,
- _format,
- _type,
- _pixels_shm_id,
+ static_cast<ValueType*>(cmd)->Init(_target, _level, _internalformat, _width,
+ _height, _format, _type, _pixels_shm_id,
_pixels_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -5178,17 +5142,9 @@ struct TexSubImage2D {
uint32_t _pixels_shm_id,
uint32_t _pixels_shm_offset,
GLboolean _internal) {
- static_cast<ValueType*>(cmd)->Init(_target,
- _level,
- _xoffset,
- _yoffset,
- _width,
- _height,
- _format,
- _type,
- _pixels_shm_id,
- _pixels_shm_offset,
- _internal);
+ static_cast<ValueType*>(cmd)
+ ->Init(_target, _level, _xoffset, _yoffset, _width, _height, _format,
+ _type, _pixels_shm_id, _pixels_shm_offset, _internal);
return NextCmdAddress<ValueType>(cmd);
}
@@ -6615,16 +6571,8 @@ struct BlitFramebufferCHROMIUM {
GLint _dstY1,
GLbitfield _mask,
GLenum _filter) {
- static_cast<ValueType*>(cmd)->Init(_srcX0,
- _srcY0,
- _srcX1,
- _srcY1,
- _dstX0,
- _dstY0,
- _dstX1,
- _dstY1,
- _mask,
- _filter);
+ static_cast<ValueType*>(cmd)->Init(_srcX0, _srcY0, _srcX1, _srcY1, _dstX0,
+ _dstY0, _dstX1, _dstY1, _mask, _filter);
return NextCmdAddress<ValueType>(cmd);
}
@@ -7399,8 +7347,8 @@ struct GetMaxValueInBufferCHROMIUM {
GLuint _offset,
uint32_t _result_shm_id,
uint32_t _result_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(
- _buffer_id, _count, _type, _offset, _result_shm_id, _result_shm_offset);
+ static_cast<ValueType*>(cmd)->Init(_buffer_id, _count, _type, _offset,
+ _result_shm_id, _result_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -7619,12 +7567,9 @@ struct GetMultipleIntegervCHROMIUM {
uint32_t _results_shm_id,
uint32_t _results_shm_offset,
GLsizeiptr _size) {
- static_cast<ValueType*>(cmd)->Init(_pnames_shm_id,
- _pnames_shm_offset,
- _count,
- _results_shm_id,
- _results_shm_offset,
- _size);
+ static_cast<ValueType*>(cmd)->Init(_pnames_shm_id, _pnames_shm_offset,
+ _count, _results_shm_id,
+ _results_shm_offset, _size);
return NextCmdAddress<ValueType>(cmd);
}
@@ -7878,8 +7823,8 @@ struct CopyTextureCHROMIUM {
GLint _level,
GLint _internalformat,
GLenum _dest_type) {
- static_cast<ValueType*>(cmd)->Init(
- _target, _source_id, _dest_id, _level, _internalformat, _dest_type);
+ static_cast<ValueType*>(cmd)->Init(_target, _source_id, _dest_id, _level,
+ _internalformat, _dest_type);
return NextCmdAddress<ValueType>(cmd);
}
@@ -8226,6 +8171,287 @@ COMPILE_ASSERT(
offsetof(BindUniformLocationCHROMIUMBucket, name_bucket_id) == 12,
OffsetOf_BindUniformLocationCHROMIUMBucket_name_bucket_id_not_12);
+struct GenValuebuffersCHROMIUMImmediate {
+ typedef GenValuebuffersCHROMIUMImmediate ValueType;
+ static const CommandId kCmdId = kGenValuebuffersCHROMIUMImmediate;
+ static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN;
+ static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3);
+
+ static uint32_t ComputeDataSize(GLsizei n) {
+ return static_cast<uint32_t>(sizeof(GLuint) * n); // NOLINT
+ }
+
+ static uint32_t ComputeSize(GLsizei n) {
+ return static_cast<uint32_t>(sizeof(ValueType) +
+ ComputeDataSize(n)); // NOLINT
+ }
+
+ void SetHeader(GLsizei n) {
+ header.SetCmdByTotalSize<ValueType>(ComputeSize(n));
+ }
+
+ void Init(GLsizei _n, GLuint* _buffers) {
+ SetHeader(_n);
+ n = _n;
+ memcpy(ImmediateDataAddress(this), _buffers, ComputeDataSize(_n));
+ }
+
+ void* Set(void* cmd, GLsizei _n, GLuint* _buffers) {
+ static_cast<ValueType*>(cmd)->Init(_n, _buffers);
+ const uint32_t size = ComputeSize(_n);
+ return NextImmediateCmdAddressTotalSize<ValueType>(cmd, size);
+ }
+
+ gpu::CommandHeader header;
+ int32_t n;
+};
+
+COMPILE_ASSERT(sizeof(GenValuebuffersCHROMIUMImmediate) == 8,
+ Sizeof_GenValuebuffersCHROMIUMImmediate_is_not_8);
+COMPILE_ASSERT(offsetof(GenValuebuffersCHROMIUMImmediate, header) == 0,
+ OffsetOf_GenValuebuffersCHROMIUMImmediate_header_not_0);
+COMPILE_ASSERT(offsetof(GenValuebuffersCHROMIUMImmediate, n) == 4,
+ OffsetOf_GenValuebuffersCHROMIUMImmediate_n_not_4);
+
+struct DeleteValuebuffersCHROMIUMImmediate {
+ typedef DeleteValuebuffersCHROMIUMImmediate ValueType;
+ static const CommandId kCmdId = kDeleteValuebuffersCHROMIUMImmediate;
+ static const cmd::ArgFlags kArgFlags = cmd::kAtLeastN;
+ static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3);
+
+ static uint32_t ComputeDataSize(GLsizei n) {
+ return static_cast<uint32_t>(sizeof(GLuint) * n); // NOLINT
+ }
+
+ static uint32_t ComputeSize(GLsizei n) {
+ return static_cast<uint32_t>(sizeof(ValueType) +
+ ComputeDataSize(n)); // NOLINT
+ }
+
+ void SetHeader(GLsizei n) {
+ header.SetCmdByTotalSize<ValueType>(ComputeSize(n));
+ }
+
+ void Init(GLsizei _n, const GLuint* _valuebuffers) {
+ SetHeader(_n);
+ n = _n;
+ memcpy(ImmediateDataAddress(this), _valuebuffers, ComputeDataSize(_n));
+ }
+
+ void* Set(void* cmd, GLsizei _n, const GLuint* _valuebuffers) {
+ static_cast<ValueType*>(cmd)->Init(_n, _valuebuffers);
+ const uint32_t size = ComputeSize(_n);
+ return NextImmediateCmdAddressTotalSize<ValueType>(cmd, size);
+ }
+
+ gpu::CommandHeader header;
+ int32_t n;
+};
+
+COMPILE_ASSERT(sizeof(DeleteValuebuffersCHROMIUMImmediate) == 8,
+ Sizeof_DeleteValuebuffersCHROMIUMImmediate_is_not_8);
+COMPILE_ASSERT(offsetof(DeleteValuebuffersCHROMIUMImmediate, header) == 0,
+ OffsetOf_DeleteValuebuffersCHROMIUMImmediate_header_not_0);
+COMPILE_ASSERT(offsetof(DeleteValuebuffersCHROMIUMImmediate, n) == 4,
+ OffsetOf_DeleteValuebuffersCHROMIUMImmediate_n_not_4);
+
+struct IsValuebufferCHROMIUM {
+ typedef IsValuebufferCHROMIUM ValueType;
+ static const CommandId kCmdId = kIsValuebufferCHROMIUM;
+ static const cmd::ArgFlags kArgFlags = cmd::kFixed;
+ static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3);
+
+ typedef uint32_t Result;
+
+ static uint32_t ComputeSize() {
+ return static_cast<uint32_t>(sizeof(ValueType)); // NOLINT
+ }
+
+ void SetHeader() { header.SetCmd<ValueType>(); }
+
+ void Init(GLuint _valuebuffer,
+ uint32_t _result_shm_id,
+ uint32_t _result_shm_offset) {
+ SetHeader();
+ valuebuffer = _valuebuffer;
+ result_shm_id = _result_shm_id;
+ result_shm_offset = _result_shm_offset;
+ }
+
+ void* Set(void* cmd,
+ GLuint _valuebuffer,
+ uint32_t _result_shm_id,
+ uint32_t _result_shm_offset) {
+ static_cast<ValueType*>(cmd)
+ ->Init(_valuebuffer, _result_shm_id, _result_shm_offset);
+ return NextCmdAddress<ValueType>(cmd);
+ }
+
+ gpu::CommandHeader header;
+ uint32_t valuebuffer;
+ uint32_t result_shm_id;
+ uint32_t result_shm_offset;
+};
+
+COMPILE_ASSERT(sizeof(IsValuebufferCHROMIUM) == 16,
+ Sizeof_IsValuebufferCHROMIUM_is_not_16);
+COMPILE_ASSERT(offsetof(IsValuebufferCHROMIUM, header) == 0,
+ OffsetOf_IsValuebufferCHROMIUM_header_not_0);
+COMPILE_ASSERT(offsetof(IsValuebufferCHROMIUM, valuebuffer) == 4,
+ OffsetOf_IsValuebufferCHROMIUM_valuebuffer_not_4);
+COMPILE_ASSERT(offsetof(IsValuebufferCHROMIUM, result_shm_id) == 8,
+ OffsetOf_IsValuebufferCHROMIUM_result_shm_id_not_8);
+COMPILE_ASSERT(offsetof(IsValuebufferCHROMIUM, result_shm_offset) == 12,
+ OffsetOf_IsValuebufferCHROMIUM_result_shm_offset_not_12);
+
+struct BindValuebufferCHROMIUM {
+ typedef BindValuebufferCHROMIUM ValueType;
+ static const CommandId kCmdId = kBindValuebufferCHROMIUM;
+ static const cmd::ArgFlags kArgFlags = cmd::kFixed;
+ static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3);
+
+ static uint32_t ComputeSize() {
+ return static_cast<uint32_t>(sizeof(ValueType)); // NOLINT
+ }
+
+ void SetHeader() { header.SetCmd<ValueType>(); }
+
+ void Init(GLenum _target, GLuint _valuebuffer) {
+ SetHeader();
+ target = _target;
+ valuebuffer = _valuebuffer;
+ }
+
+ void* Set(void* cmd, GLenum _target, GLuint _valuebuffer) {
+ static_cast<ValueType*>(cmd)->Init(_target, _valuebuffer);
+ return NextCmdAddress<ValueType>(cmd);
+ }
+
+ gpu::CommandHeader header;
+ uint32_t target;
+ uint32_t valuebuffer;
+};
+
+COMPILE_ASSERT(sizeof(BindValuebufferCHROMIUM) == 12,
+ Sizeof_BindValuebufferCHROMIUM_is_not_12);
+COMPILE_ASSERT(offsetof(BindValuebufferCHROMIUM, header) == 0,
+ OffsetOf_BindValuebufferCHROMIUM_header_not_0);
+COMPILE_ASSERT(offsetof(BindValuebufferCHROMIUM, target) == 4,
+ OffsetOf_BindValuebufferCHROMIUM_target_not_4);
+COMPILE_ASSERT(offsetof(BindValuebufferCHROMIUM, valuebuffer) == 8,
+ OffsetOf_BindValuebufferCHROMIUM_valuebuffer_not_8);
+
+struct SubscribeValueCHROMIUM {
+ typedef SubscribeValueCHROMIUM ValueType;
+ static const CommandId kCmdId = kSubscribeValueCHROMIUM;
+ static const cmd::ArgFlags kArgFlags = cmd::kFixed;
+ static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3);
+
+ static uint32_t ComputeSize() {
+ return static_cast<uint32_t>(sizeof(ValueType)); // NOLINT
+ }
+
+ void SetHeader() { header.SetCmd<ValueType>(); }
+
+ void Init(GLenum _target, GLenum _subscription) {
+ SetHeader();
+ target = _target;
+ subscription = _subscription;
+ }
+
+ void* Set(void* cmd, GLenum _target, GLenum _subscription) {
+ static_cast<ValueType*>(cmd)->Init(_target, _subscription);
+ return NextCmdAddress<ValueType>(cmd);
+ }
+
+ gpu::CommandHeader header;
+ uint32_t target;
+ uint32_t subscription;
+};
+
+COMPILE_ASSERT(sizeof(SubscribeValueCHROMIUM) == 12,
+ Sizeof_SubscribeValueCHROMIUM_is_not_12);
+COMPILE_ASSERT(offsetof(SubscribeValueCHROMIUM, header) == 0,
+ OffsetOf_SubscribeValueCHROMIUM_header_not_0);
+COMPILE_ASSERT(offsetof(SubscribeValueCHROMIUM, target) == 4,
+ OffsetOf_SubscribeValueCHROMIUM_target_not_4);
+COMPILE_ASSERT(offsetof(SubscribeValueCHROMIUM, subscription) == 8,
+ OffsetOf_SubscribeValueCHROMIUM_subscription_not_8);
+
+struct PopulateSubscribedValuesCHROMIUM {
+ typedef PopulateSubscribedValuesCHROMIUM ValueType;
+ static const CommandId kCmdId = kPopulateSubscribedValuesCHROMIUM;
+ static const cmd::ArgFlags kArgFlags = cmd::kFixed;
+ static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3);
+
+ static uint32_t ComputeSize() {
+ return static_cast<uint32_t>(sizeof(ValueType)); // NOLINT
+ }
+
+ void SetHeader() { header.SetCmd<ValueType>(); }
+
+ void Init(GLenum _target) {
+ SetHeader();
+ target = _target;
+ }
+
+ void* Set(void* cmd, GLenum _target) {
+ static_cast<ValueType*>(cmd)->Init(_target);
+ return NextCmdAddress<ValueType>(cmd);
+ }
+
+ gpu::CommandHeader header;
+ uint32_t target;
+};
+
+COMPILE_ASSERT(sizeof(PopulateSubscribedValuesCHROMIUM) == 8,
+ Sizeof_PopulateSubscribedValuesCHROMIUM_is_not_8);
+COMPILE_ASSERT(offsetof(PopulateSubscribedValuesCHROMIUM, header) == 0,
+ OffsetOf_PopulateSubscribedValuesCHROMIUM_header_not_0);
+COMPILE_ASSERT(offsetof(PopulateSubscribedValuesCHROMIUM, target) == 4,
+ OffsetOf_PopulateSubscribedValuesCHROMIUM_target_not_4);
+
+struct UniformValuebufferCHROMIUM {
+ typedef UniformValuebufferCHROMIUM ValueType;
+ static const CommandId kCmdId = kUniformValuebufferCHROMIUM;
+ static const cmd::ArgFlags kArgFlags = cmd::kFixed;
+ static const uint8 cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3);
+
+ static uint32_t ComputeSize() {
+ return static_cast<uint32_t>(sizeof(ValueType)); // NOLINT
+ }
+
+ void SetHeader() { header.SetCmd<ValueType>(); }
+
+ void Init(GLint _location, GLenum _target, GLenum _subscription) {
+ SetHeader();
+ location = _location;
+ target = _target;
+ subscription = _subscription;
+ }
+
+ void* Set(void* cmd, GLint _location, GLenum _target, GLenum _subscription) {
+ static_cast<ValueType*>(cmd)->Init(_location, _target, _subscription);
+ return NextCmdAddress<ValueType>(cmd);
+ }
+
+ gpu::CommandHeader header;
+ int32_t location;
+ uint32_t target;
+ uint32_t subscription;
+};
+
+COMPILE_ASSERT(sizeof(UniformValuebufferCHROMIUM) == 16,
+ Sizeof_UniformValuebufferCHROMIUM_is_not_16);
+COMPILE_ASSERT(offsetof(UniformValuebufferCHROMIUM, header) == 0,
+ OffsetOf_UniformValuebufferCHROMIUM_header_not_0);
+COMPILE_ASSERT(offsetof(UniformValuebufferCHROMIUM, location) == 4,
+ OffsetOf_UniformValuebufferCHROMIUM_location_not_4);
+COMPILE_ASSERT(offsetof(UniformValuebufferCHROMIUM, target) == 8,
+ OffsetOf_UniformValuebufferCHROMIUM_target_not_8);
+COMPILE_ASSERT(offsetof(UniformValuebufferCHROMIUM, subscription) == 12,
+ OffsetOf_UniformValuebufferCHROMIUM_subscription_not_12);
+
struct BindTexImage2DCHROMIUM {
typedef BindTexImage2DCHROMIUM ValueType;
static const CommandId kCmdId = kBindTexImage2DCHROMIUM;
@@ -8414,19 +8640,10 @@ struct AsyncTexSubImage2DCHROMIUM {
uint32_t _async_upload_token,
uint32_t _sync_data_shm_id,
uint32_t _sync_data_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(_target,
- _level,
- _xoffset,
- _yoffset,
- _width,
- _height,
- _format,
- _type,
- _data_shm_id,
- _data_shm_offset,
- _async_upload_token,
- _sync_data_shm_id,
- _sync_data_shm_offset);
+ static_cast<ValueType*>(cmd)
+ ->Init(_target, _level, _xoffset, _yoffset, _width, _height, _format,
+ _type, _data_shm_id, _data_shm_offset, _async_upload_token,
+ _sync_data_shm_id, _sync_data_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -8529,18 +8746,10 @@ struct AsyncTexImage2DCHROMIUM {
uint32_t _async_upload_token,
uint32_t _sync_data_shm_id,
uint32_t _sync_data_shm_offset) {
- static_cast<ValueType*>(cmd)->Init(_target,
- _level,
- _internalformat,
- _width,
- _height,
- _format,
- _type,
- _pixels_shm_id,
- _pixels_shm_offset,
- _async_upload_token,
- _sync_data_shm_id,
- _sync_data_shm_offset);
+ static_cast<ValueType*>(cmd)
+ ->Init(_target, _level, _internalformat, _width, _height, _format,
+ _type, _pixels_shm_id, _pixels_shm_offset, _async_upload_token,
+ _sync_data_shm_id, _sync_data_shm_offset);
return NextCmdAddress<ValueType>(cmd);
}
@@ -8886,17 +9095,10 @@ struct ScheduleOverlayPlaneCHROMIUM {
GLfloat _uv_y,
GLfloat _uv_width,
GLfloat _uv_height) {
- static_cast<ValueType*>(cmd)->Init(_plane_z_order,
- _plane_transform,
- _overlay_texture_id,
- _bounds_x,
- _bounds_y,
- _bounds_width,
- _bounds_height,
- _uv_x,
- _uv_y,
- _uv_width,
- _uv_height);
+ static_cast<ValueType*>(cmd)->Init(_plane_z_order, _plane_transform,
+ _overlay_texture_id, _bounds_x,
+ _bounds_y, _bounds_width, _bounds_height,
+ _uv_x, _uv_y, _uv_width, _uv_height);
return NextCmdAddress<ValueType>(cmd);
}
diff --git a/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h b/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
index b26afb1c97..a21c8b8bb2 100644
--- a/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
+++ b/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
@@ -39,10 +39,8 @@ TEST_F(GLES2FormatTest, AttachShader) {
TEST_F(GLES2FormatTest, BindAttribLocationBucket) {
cmds::BindAttribLocationBucket& cmd =
*GetBufferAs<cmds::BindAttribLocationBucket>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLuint>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+ static_cast<GLuint>(12), static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::BindAttribLocationBucket::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -102,11 +100,9 @@ TEST_F(GLES2FormatTest, BindTexture) {
TEST_F(GLES2FormatTest, BlendColor) {
cmds::BlendColor& cmd = *GetBufferAs<cmds::BlendColor>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLclampf>(11),
- static_cast<GLclampf>(12),
- static_cast<GLclampf>(13),
- static_cast<GLclampf>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLclampf>(11), static_cast<GLclampf>(12),
+ static_cast<GLclampf>(13), static_cast<GLclampf>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::BlendColor::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -153,11 +149,9 @@ TEST_F(GLES2FormatTest, BlendFunc) {
TEST_F(GLES2FormatTest, BlendFuncSeparate) {
cmds::BlendFuncSeparate& cmd = *GetBufferAs<cmds::BlendFuncSeparate>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLenum>(13),
- static_cast<GLenum>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<GLenum>(13), static_cast<GLenum>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::BlendFuncSeparate::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -170,12 +164,10 @@ TEST_F(GLES2FormatTest, BlendFuncSeparate) {
TEST_F(GLES2FormatTest, BufferData) {
cmds::BufferData& cmd = *GetBufferAs<cmds::BufferData>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLsizeiptr>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14),
- static_cast<GLenum>(15));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLsizeiptr>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14),
+ static_cast<GLenum>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::BufferData::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -189,12 +181,10 @@ TEST_F(GLES2FormatTest, BufferData) {
TEST_F(GLES2FormatTest, BufferSubData) {
cmds::BufferSubData& cmd = *GetBufferAs<cmds::BufferSubData>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLintptr>(12),
- static_cast<GLsizeiptr>(13),
- static_cast<uint32_t>(14),
- static_cast<uint32_t>(15));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLintptr>(12),
+ static_cast<GLsizeiptr>(13), static_cast<uint32_t>(14),
+ static_cast<uint32_t>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::BufferSubData::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -209,10 +199,9 @@ TEST_F(GLES2FormatTest, BufferSubData) {
TEST_F(GLES2FormatTest, CheckFramebufferStatus) {
cmds::CheckFramebufferStatus& cmd =
*GetBufferAs<cmds::CheckFramebufferStatus>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::CheckFramebufferStatus::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -233,11 +222,9 @@ TEST_F(GLES2FormatTest, Clear) {
TEST_F(GLES2FormatTest, ClearColor) {
cmds::ClearColor& cmd = *GetBufferAs<cmds::ClearColor>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLclampf>(11),
- static_cast<GLclampf>(12),
- static_cast<GLclampf>(13),
- static_cast<GLclampf>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLclampf>(11), static_cast<GLclampf>(12),
+ static_cast<GLclampf>(13), static_cast<GLclampf>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::ClearColor::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -270,11 +257,9 @@ TEST_F(GLES2FormatTest, ClearStencil) {
TEST_F(GLES2FormatTest, ColorMask) {
cmds::ColorMask& cmd = *GetBufferAs<cmds::ColorMask>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLboolean>(11),
- static_cast<GLboolean>(12),
- static_cast<GLboolean>(13),
- static_cast<GLboolean>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLboolean>(11), static_cast<GLboolean>(12),
+ static_cast<GLboolean>(13), static_cast<GLboolean>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::ColorMask::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLboolean>(11), cmd.red);
@@ -297,13 +282,10 @@ TEST_F(GLES2FormatTest, CompileShader) {
TEST_F(GLES2FormatTest, CompressedTexImage2DBucket) {
cmds::CompressedTexImage2DBucket& cmd =
*GetBufferAs<cmds::CompressedTexImage2DBucket>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLenum>(13),
- static_cast<GLsizei>(14),
- static_cast<GLsizei>(15),
- static_cast<GLuint>(16));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLenum>(13), static_cast<GLsizei>(14),
+ static_cast<GLsizei>(15), static_cast<GLuint>(16));
EXPECT_EQ(static_cast<uint32_t>(cmds::CompressedTexImage2DBucket::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -318,15 +300,11 @@ TEST_F(GLES2FormatTest, CompressedTexImage2DBucket) {
TEST_F(GLES2FormatTest, CompressedTexImage2D) {
cmds::CompressedTexImage2D& cmd = *GetBufferAs<cmds::CompressedTexImage2D>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLenum>(13),
- static_cast<GLsizei>(14),
- static_cast<GLsizei>(15),
- static_cast<GLsizei>(16),
- static_cast<uint32_t>(17),
- static_cast<uint32_t>(18));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLenum>(13), static_cast<GLsizei>(14),
+ static_cast<GLsizei>(15), static_cast<GLsizei>(16),
+ static_cast<uint32_t>(17), static_cast<uint32_t>(18));
EXPECT_EQ(static_cast<uint32_t>(cmds::CompressedTexImage2D::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -344,15 +322,11 @@ TEST_F(GLES2FormatTest, CompressedTexImage2D) {
TEST_F(GLES2FormatTest, CompressedTexSubImage2DBucket) {
cmds::CompressedTexSubImage2DBucket& cmd =
*GetBufferAs<cmds::CompressedTexSubImage2DBucket>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLint>(14),
- static_cast<GLsizei>(15),
- static_cast<GLsizei>(16),
- static_cast<GLenum>(17),
- static_cast<GLuint>(18));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLint>(14),
+ static_cast<GLsizei>(15), static_cast<GLsizei>(16),
+ static_cast<GLenum>(17), static_cast<GLuint>(18));
EXPECT_EQ(static_cast<uint32_t>(cmds::CompressedTexSubImage2DBucket::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -370,17 +344,12 @@ TEST_F(GLES2FormatTest, CompressedTexSubImage2DBucket) {
TEST_F(GLES2FormatTest, CompressedTexSubImage2D) {
cmds::CompressedTexSubImage2D& cmd =
*GetBufferAs<cmds::CompressedTexSubImage2D>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLint>(14),
- static_cast<GLsizei>(15),
- static_cast<GLsizei>(16),
- static_cast<GLenum>(17),
- static_cast<GLsizei>(18),
- static_cast<uint32_t>(19),
- static_cast<uint32_t>(20));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLint>(14),
+ static_cast<GLsizei>(15), static_cast<GLsizei>(16),
+ static_cast<GLenum>(17), static_cast<GLsizei>(18),
+ static_cast<uint32_t>(19), static_cast<uint32_t>(20));
EXPECT_EQ(static_cast<uint32_t>(cmds::CompressedTexSubImage2D::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -399,14 +368,10 @@ TEST_F(GLES2FormatTest, CompressedTexSubImage2D) {
TEST_F(GLES2FormatTest, CopyTexImage2D) {
cmds::CopyTexImage2D& cmd = *GetBufferAs<cmds::CopyTexImage2D>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLenum>(13),
- static_cast<GLint>(14),
- static_cast<GLint>(15),
- static_cast<GLsizei>(16),
- static_cast<GLsizei>(17));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLint>(12), static_cast<GLenum>(13),
+ static_cast<GLint>(14), static_cast<GLint>(15),
+ static_cast<GLsizei>(16), static_cast<GLsizei>(17));
EXPECT_EQ(static_cast<uint32_t>(cmds::CopyTexImage2D::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -422,15 +387,11 @@ TEST_F(GLES2FormatTest, CopyTexImage2D) {
TEST_F(GLES2FormatTest, CopyTexSubImage2D) {
cmds::CopyTexSubImage2D& cmd = *GetBufferAs<cmds::CopyTexSubImage2D>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLint>(14),
- static_cast<GLint>(15),
- static_cast<GLint>(16),
- static_cast<GLsizei>(17),
- static_cast<GLsizei>(18));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLint>(14),
+ static_cast<GLint>(15), static_cast<GLint>(16),
+ static_cast<GLsizei>(17), static_cast<GLsizei>(18));
EXPECT_EQ(static_cast<uint32_t>(cmds::CopyTexSubImage2D::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -632,10 +593,8 @@ TEST_F(GLES2FormatTest, DisableVertexAttribArray) {
TEST_F(GLES2FormatTest, DrawArrays) {
cmds::DrawArrays& cmd = *GetBufferAs<cmds::DrawArrays>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLsizei>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLint>(12), static_cast<GLsizei>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::DrawArrays::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -647,11 +606,9 @@ TEST_F(GLES2FormatTest, DrawArrays) {
TEST_F(GLES2FormatTest, DrawElements) {
cmds::DrawElements& cmd = *GetBufferAs<cmds::DrawElements>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLsizei>(12),
- static_cast<GLenum>(13),
- static_cast<GLuint>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLsizei>(12),
+ static_cast<GLenum>(13), static_cast<GLuint>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::DrawElements::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -701,11 +658,9 @@ TEST_F(GLES2FormatTest, Flush) {
TEST_F(GLES2FormatTest, FramebufferRenderbuffer) {
cmds::FramebufferRenderbuffer& cmd =
*GetBufferAs<cmds::FramebufferRenderbuffer>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLenum>(13),
- static_cast<GLuint>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<GLenum>(13), static_cast<GLuint>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::FramebufferRenderbuffer::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -718,11 +673,9 @@ TEST_F(GLES2FormatTest, FramebufferRenderbuffer) {
TEST_F(GLES2FormatTest, FramebufferTexture2D) {
cmds::FramebufferTexture2D& cmd = *GetBufferAs<cmds::FramebufferTexture2D>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLenum>(13),
- static_cast<GLuint>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<GLenum>(13), static_cast<GLuint>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::FramebufferTexture2D::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -824,12 +777,10 @@ TEST_F(GLES2FormatTest, GenTexturesImmediate) {
TEST_F(GLES2FormatTest, GetActiveAttrib) {
cmds::GetActiveAttrib& cmd = *GetBufferAs<cmds::GetActiveAttrib>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLuint>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14),
- static_cast<uint32_t>(15));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLuint>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14),
+ static_cast<uint32_t>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetActiveAttrib::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -843,12 +794,10 @@ TEST_F(GLES2FormatTest, GetActiveAttrib) {
TEST_F(GLES2FormatTest, GetActiveUniform) {
cmds::GetActiveUniform& cmd = *GetBufferAs<cmds::GetActiveUniform>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLuint>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14),
- static_cast<uint32_t>(15));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLuint>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14),
+ static_cast<uint32_t>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetActiveUniform::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -862,11 +811,9 @@ TEST_F(GLES2FormatTest, GetActiveUniform) {
TEST_F(GLES2FormatTest, GetAttachedShaders) {
cmds::GetAttachedShaders& cmd = *GetBufferAs<cmds::GetAttachedShaders>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetAttachedShaders::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -879,11 +826,9 @@ TEST_F(GLES2FormatTest, GetAttachedShaders) {
TEST_F(GLES2FormatTest, GetAttribLocation) {
cmds::GetAttribLocation& cmd = *GetBufferAs<cmds::GetAttribLocation>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetAttribLocation::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -896,10 +841,9 @@ TEST_F(GLES2FormatTest, GetAttribLocation) {
TEST_F(GLES2FormatTest, GetBooleanv) {
cmds::GetBooleanv& cmd = *GetBufferAs<cmds::GetBooleanv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetBooleanv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -911,11 +855,9 @@ TEST_F(GLES2FormatTest, GetBooleanv) {
TEST_F(GLES2FormatTest, GetBufferParameteriv) {
cmds::GetBufferParameteriv& cmd = *GetBufferAs<cmds::GetBufferParameteriv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetBufferParameteriv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -939,10 +881,9 @@ TEST_F(GLES2FormatTest, GetError) {
TEST_F(GLES2FormatTest, GetFloatv) {
cmds::GetFloatv& cmd = *GetBufferAs<cmds::GetFloatv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetFloatv::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLenum>(11), cmd.pname);
@@ -954,12 +895,10 @@ TEST_F(GLES2FormatTest, GetFloatv) {
TEST_F(GLES2FormatTest, GetFramebufferAttachmentParameteriv) {
cmds::GetFramebufferAttachmentParameteriv& cmd =
*GetBufferAs<cmds::GetFramebufferAttachmentParameteriv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLenum>(13),
- static_cast<uint32_t>(14),
- static_cast<uint32_t>(15));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<GLenum>(13), static_cast<uint32_t>(14),
+ static_cast<uint32_t>(15));
EXPECT_EQ(
static_cast<uint32_t>(cmds::GetFramebufferAttachmentParameteriv::kCmdId),
cmd.header.command);
@@ -974,10 +913,9 @@ TEST_F(GLES2FormatTest, GetFramebufferAttachmentParameteriv) {
TEST_F(GLES2FormatTest, GetIntegerv) {
cmds::GetIntegerv& cmd = *GetBufferAs<cmds::GetIntegerv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetIntegerv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -989,11 +927,9 @@ TEST_F(GLES2FormatTest, GetIntegerv) {
TEST_F(GLES2FormatTest, GetProgramiv) {
cmds::GetProgramiv& cmd = *GetBufferAs<cmds::GetProgramiv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetProgramiv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1019,11 +955,9 @@ TEST_F(GLES2FormatTest, GetProgramInfoLog) {
TEST_F(GLES2FormatTest, GetRenderbufferParameteriv) {
cmds::GetRenderbufferParameteriv& cmd =
*GetBufferAs<cmds::GetRenderbufferParameteriv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetRenderbufferParameteriv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1036,11 +970,9 @@ TEST_F(GLES2FormatTest, GetRenderbufferParameteriv) {
TEST_F(GLES2FormatTest, GetShaderiv) {
cmds::GetShaderiv& cmd = *GetBufferAs<cmds::GetShaderiv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetShaderiv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1066,11 +998,9 @@ TEST_F(GLES2FormatTest, GetShaderInfoLog) {
TEST_F(GLES2FormatTest, GetShaderPrecisionFormat) {
cmds::GetShaderPrecisionFormat& cmd =
*GetBufferAs<cmds::GetShaderPrecisionFormat>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetShaderPrecisionFormat::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1106,11 +1036,9 @@ TEST_F(GLES2FormatTest, GetString) {
TEST_F(GLES2FormatTest, GetTexParameterfv) {
cmds::GetTexParameterfv& cmd = *GetBufferAs<cmds::GetTexParameterfv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetTexParameterfv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1123,11 +1051,9 @@ TEST_F(GLES2FormatTest, GetTexParameterfv) {
TEST_F(GLES2FormatTest, GetTexParameteriv) {
cmds::GetTexParameteriv& cmd = *GetBufferAs<cmds::GetTexParameteriv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetTexParameteriv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1140,11 +1066,9 @@ TEST_F(GLES2FormatTest, GetTexParameteriv) {
TEST_F(GLES2FormatTest, GetUniformfv) {
cmds::GetUniformfv& cmd = *GetBufferAs<cmds::GetUniformfv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLint>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLint>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetUniformfv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1157,11 +1081,9 @@ TEST_F(GLES2FormatTest, GetUniformfv) {
TEST_F(GLES2FormatTest, GetUniformiv) {
cmds::GetUniformiv& cmd = *GetBufferAs<cmds::GetUniformiv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLint>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLint>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetUniformiv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1174,11 +1096,9 @@ TEST_F(GLES2FormatTest, GetUniformiv) {
TEST_F(GLES2FormatTest, GetUniformLocation) {
cmds::GetUniformLocation& cmd = *GetBufferAs<cmds::GetUniformLocation>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetUniformLocation::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1191,11 +1111,9 @@ TEST_F(GLES2FormatTest, GetUniformLocation) {
TEST_F(GLES2FormatTest, GetVertexAttribfv) {
cmds::GetVertexAttribfv& cmd = *GetBufferAs<cmds::GetVertexAttribfv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetVertexAttribfv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1208,11 +1126,9 @@ TEST_F(GLES2FormatTest, GetVertexAttribfv) {
TEST_F(GLES2FormatTest, GetVertexAttribiv) {
cmds::GetVertexAttribiv& cmd = *GetBufferAs<cmds::GetVertexAttribiv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetVertexAttribiv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1226,11 +1142,9 @@ TEST_F(GLES2FormatTest, GetVertexAttribiv) {
TEST_F(GLES2FormatTest, GetVertexAttribPointerv) {
cmds::GetVertexAttribPointerv& cmd =
*GetBufferAs<cmds::GetVertexAttribPointerv>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLenum>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLenum>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetVertexAttribPointerv::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1254,10 +1168,9 @@ TEST_F(GLES2FormatTest, Hint) {
TEST_F(GLES2FormatTest, IsBuffer) {
cmds::IsBuffer& cmd = *GetBufferAs<cmds::IsBuffer>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::IsBuffer::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLuint>(11), cmd.buffer);
@@ -1268,10 +1181,9 @@ TEST_F(GLES2FormatTest, IsBuffer) {
TEST_F(GLES2FormatTest, IsEnabled) {
cmds::IsEnabled& cmd = *GetBufferAs<cmds::IsEnabled>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::IsEnabled::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLenum>(11), cmd.cap);
@@ -1282,10 +1194,9 @@ TEST_F(GLES2FormatTest, IsEnabled) {
TEST_F(GLES2FormatTest, IsFramebuffer) {
cmds::IsFramebuffer& cmd = *GetBufferAs<cmds::IsFramebuffer>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::IsFramebuffer::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1297,10 +1208,9 @@ TEST_F(GLES2FormatTest, IsFramebuffer) {
TEST_F(GLES2FormatTest, IsProgram) {
cmds::IsProgram& cmd = *GetBufferAs<cmds::IsProgram>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::IsProgram::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLuint>(11), cmd.program);
@@ -1311,10 +1221,9 @@ TEST_F(GLES2FormatTest, IsProgram) {
TEST_F(GLES2FormatTest, IsRenderbuffer) {
cmds::IsRenderbuffer& cmd = *GetBufferAs<cmds::IsRenderbuffer>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::IsRenderbuffer::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1326,10 +1235,9 @@ TEST_F(GLES2FormatTest, IsRenderbuffer) {
TEST_F(GLES2FormatTest, IsShader) {
cmds::IsShader& cmd = *GetBufferAs<cmds::IsShader>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::IsShader::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLuint>(11), cmd.shader);
@@ -1340,10 +1248,9 @@ TEST_F(GLES2FormatTest, IsShader) {
TEST_F(GLES2FormatTest, IsTexture) {
cmds::IsTexture& cmd = *GetBufferAs<cmds::IsTexture>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::IsTexture::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLuint>(11), cmd.texture);
@@ -1397,17 +1304,11 @@ TEST_F(GLES2FormatTest, PolygonOffset) {
TEST_F(GLES2FormatTest, ReadPixels) {
cmds::ReadPixels& cmd = *GetBufferAs<cmds::ReadPixels>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLint>(12),
- static_cast<GLsizei>(13),
- static_cast<GLsizei>(14),
- static_cast<GLenum>(15),
- static_cast<GLenum>(16),
- static_cast<uint32_t>(17),
- static_cast<uint32_t>(18),
- static_cast<uint32_t>(19),
- static_cast<uint32_t>(20),
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+ static_cast<GLsizei>(13), static_cast<GLsizei>(14),
+ static_cast<GLenum>(15), static_cast<GLenum>(16),
+ static_cast<uint32_t>(17), static_cast<uint32_t>(18),
+ static_cast<uint32_t>(19), static_cast<uint32_t>(20),
static_cast<GLboolean>(21));
EXPECT_EQ(static_cast<uint32_t>(cmds::ReadPixels::kCmdId),
cmd.header.command);
@@ -1438,11 +1339,9 @@ TEST_F(GLES2FormatTest, ReleaseShaderCompiler) {
TEST_F(GLES2FormatTest, RenderbufferStorage) {
cmds::RenderbufferStorage& cmd = *GetBufferAs<cmds::RenderbufferStorage>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLsizei>(13),
- static_cast<GLsizei>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<GLsizei>(13), static_cast<GLsizei>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::RenderbufferStorage::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1467,11 +1366,8 @@ TEST_F(GLES2FormatTest, SampleCoverage) {
TEST_F(GLES2FormatTest, Scissor) {
cmds::Scissor& cmd = *GetBufferAs<cmds::Scissor>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLint>(12),
- static_cast<GLsizei>(13),
- static_cast<GLsizei>(14));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+ static_cast<GLsizei>(13), static_cast<GLsizei>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::Scissor::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLint>(11), cmd.x);
@@ -1483,14 +1379,10 @@ TEST_F(GLES2FormatTest, Scissor) {
TEST_F(GLES2FormatTest, ShaderBinary) {
cmds::ShaderBinary& cmd = *GetBufferAs<cmds::ShaderBinary>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLsizei>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13),
- static_cast<GLenum>(14),
- static_cast<uint32_t>(15),
- static_cast<uint32_t>(16),
- static_cast<GLsizei>(17));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(11),
+ static_cast<uint32_t>(12), static_cast<uint32_t>(13),
+ static_cast<GLenum>(14), static_cast<uint32_t>(15),
+ static_cast<uint32_t>(16), static_cast<GLsizei>(17));
EXPECT_EQ(static_cast<uint32_t>(cmds::ShaderBinary::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1518,10 +1410,8 @@ TEST_F(GLES2FormatTest, ShaderSourceBucket) {
TEST_F(GLES2FormatTest, StencilFunc) {
cmds::StencilFunc& cmd = *GetBufferAs<cmds::StencilFunc>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLuint>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLint>(12), static_cast<GLuint>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::StencilFunc::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1533,11 +1423,9 @@ TEST_F(GLES2FormatTest, StencilFunc) {
TEST_F(GLES2FormatTest, StencilFuncSeparate) {
cmds::StencilFuncSeparate& cmd = *GetBufferAs<cmds::StencilFuncSeparate>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLint>(13),
- static_cast<GLuint>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<GLint>(13), static_cast<GLuint>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::StencilFuncSeparate::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1572,10 +1460,8 @@ TEST_F(GLES2FormatTest, StencilMaskSeparate) {
TEST_F(GLES2FormatTest, StencilOp) {
cmds::StencilOp& cmd = *GetBufferAs<cmds::StencilOp>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLenum>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLenum>(12), static_cast<GLenum>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::StencilOp::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLenum>(11), cmd.fail);
@@ -1586,11 +1472,9 @@ TEST_F(GLES2FormatTest, StencilOp) {
TEST_F(GLES2FormatTest, StencilOpSeparate) {
cmds::StencilOpSeparate& cmd = *GetBufferAs<cmds::StencilOpSeparate>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLenum>(13),
- static_cast<GLenum>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<GLenum>(13), static_cast<GLenum>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::StencilOpSeparate::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1603,16 +1487,12 @@ TEST_F(GLES2FormatTest, StencilOpSeparate) {
TEST_F(GLES2FormatTest, TexImage2D) {
cmds::TexImage2D& cmd = *GetBufferAs<cmds::TexImage2D>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLsizei>(14),
- static_cast<GLsizei>(15),
- static_cast<GLenum>(16),
- static_cast<GLenum>(17),
- static_cast<uint32_t>(18),
- static_cast<uint32_t>(19));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLsizei>(14),
+ static_cast<GLsizei>(15), static_cast<GLenum>(16),
+ static_cast<GLenum>(17), static_cast<uint32_t>(18),
+ static_cast<uint32_t>(19));
EXPECT_EQ(static_cast<uint32_t>(cmds::TexImage2D::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1630,10 +1510,8 @@ TEST_F(GLES2FormatTest, TexImage2D) {
TEST_F(GLES2FormatTest, TexParameterf) {
cmds::TexParameterf& cmd = *GetBufferAs<cmds::TexParameterf>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLfloat>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLenum>(12), static_cast<GLfloat>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::TexParameterf::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1665,10 +1543,8 @@ TEST_F(GLES2FormatTest, TexParameterfvImmediate) {
TEST_F(GLES2FormatTest, TexParameteri) {
cmds::TexParameteri& cmd = *GetBufferAs<cmds::TexParameteri>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLint>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLenum>(12), static_cast<GLint>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::TexParameteri::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1700,18 +1576,12 @@ TEST_F(GLES2FormatTest, TexParameterivImmediate) {
TEST_F(GLES2FormatTest, TexSubImage2D) {
cmds::TexSubImage2D& cmd = *GetBufferAs<cmds::TexSubImage2D>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLint>(14),
- static_cast<GLsizei>(15),
- static_cast<GLsizei>(16),
- static_cast<GLenum>(17),
- static_cast<GLenum>(18),
- static_cast<uint32_t>(19),
- static_cast<uint32_t>(20),
- static_cast<GLboolean>(21));
+ void* next_cmd = cmd.Set(
+ &cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLint>(14), static_cast<GLsizei>(15),
+ static_cast<GLsizei>(16), static_cast<GLenum>(17),
+ static_cast<GLenum>(18), static_cast<uint32_t>(19),
+ static_cast<uint32_t>(20), static_cast<GLboolean>(21));
EXPECT_EQ(static_cast<uint32_t>(cmds::TexSubImage2D::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1797,10 +1667,8 @@ TEST_F(GLES2FormatTest, Uniform1ivImmediate) {
TEST_F(GLES2FormatTest, Uniform2f) {
cmds::Uniform2f& cmd = *GetBufferAs<cmds::Uniform2f>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLfloat>(12),
- static_cast<GLfloat>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11),
+ static_cast<GLfloat>(12), static_cast<GLfloat>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform2f::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLint>(11), cmd.location);
@@ -1835,9 +1703,7 @@ TEST_F(GLES2FormatTest, Uniform2fvImmediate) {
TEST_F(GLES2FormatTest, Uniform2i) {
cmds::Uniform2i& cmd = *GetBufferAs<cmds::Uniform2i>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLint>(12),
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
static_cast<GLint>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform2i::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -1873,11 +1739,9 @@ TEST_F(GLES2FormatTest, Uniform2ivImmediate) {
TEST_F(GLES2FormatTest, Uniform3f) {
cmds::Uniform3f& cmd = *GetBufferAs<cmds::Uniform3f>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLfloat>(12),
- static_cast<GLfloat>(13),
- static_cast<GLfloat>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLfloat>(12),
+ static_cast<GLfloat>(13), static_cast<GLfloat>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform3f::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLint>(11), cmd.location);
@@ -1915,11 +1779,8 @@ TEST_F(GLES2FormatTest, Uniform3fvImmediate) {
TEST_F(GLES2FormatTest, Uniform3i) {
cmds::Uniform3i& cmd = *GetBufferAs<cmds::Uniform3i>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLint>(14));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLint>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform3i::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLint>(11), cmd.location);
@@ -1957,12 +1818,9 @@ TEST_F(GLES2FormatTest, Uniform3ivImmediate) {
TEST_F(GLES2FormatTest, Uniform4f) {
cmds::Uniform4f& cmd = *GetBufferAs<cmds::Uniform4f>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLfloat>(12),
- static_cast<GLfloat>(13),
- static_cast<GLfloat>(14),
- static_cast<GLfloat>(15));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11),
+ static_cast<GLfloat>(12), static_cast<GLfloat>(13),
+ static_cast<GLfloat>(14), static_cast<GLfloat>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform4f::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLint>(11), cmd.location);
@@ -2003,11 +1861,8 @@ TEST_F(GLES2FormatTest, Uniform4fvImmediate) {
TEST_F(GLES2FormatTest, Uniform4i) {
cmds::Uniform4i& cmd = *GetBufferAs<cmds::Uniform4i>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLint>(14),
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLint>(14),
static_cast<GLint>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::Uniform4i::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2220,10 +2075,8 @@ TEST_F(GLES2FormatTest, VertexAttrib1fvImmediate) {
TEST_F(GLES2FormatTest, VertexAttrib2f) {
cmds::VertexAttrib2f& cmd = *GetBufferAs<cmds::VertexAttrib2f>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLfloat>(12),
- static_cast<GLfloat>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+ static_cast<GLfloat>(12), static_cast<GLfloat>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::VertexAttrib2f::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2254,11 +2107,9 @@ TEST_F(GLES2FormatTest, VertexAttrib2fvImmediate) {
TEST_F(GLES2FormatTest, VertexAttrib3f) {
cmds::VertexAttrib3f& cmd = *GetBufferAs<cmds::VertexAttrib3f>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLfloat>(12),
- static_cast<GLfloat>(13),
- static_cast<GLfloat>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLfloat>(12),
+ static_cast<GLfloat>(13), static_cast<GLfloat>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::VertexAttrib3f::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2291,12 +2142,9 @@ TEST_F(GLES2FormatTest, VertexAttrib3fvImmediate) {
TEST_F(GLES2FormatTest, VertexAttrib4f) {
cmds::VertexAttrib4f& cmd = *GetBufferAs<cmds::VertexAttrib4f>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLfloat>(12),
- static_cast<GLfloat>(13),
- static_cast<GLfloat>(14),
- static_cast<GLfloat>(15));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+ static_cast<GLfloat>(12), static_cast<GLfloat>(13),
+ static_cast<GLfloat>(14), static_cast<GLfloat>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::VertexAttrib4f::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2331,13 +2179,10 @@ TEST_F(GLES2FormatTest, VertexAttrib4fvImmediate) {
TEST_F(GLES2FormatTest, VertexAttribPointer) {
cmds::VertexAttribPointer& cmd = *GetBufferAs<cmds::VertexAttribPointer>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLint>(12),
- static_cast<GLenum>(13),
- static_cast<GLboolean>(14),
- static_cast<GLsizei>(15),
- static_cast<GLuint>(16));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLint>(12),
+ static_cast<GLenum>(13), static_cast<GLboolean>(14),
+ static_cast<GLsizei>(15), static_cast<GLuint>(16));
EXPECT_EQ(static_cast<uint32_t>(cmds::VertexAttribPointer::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2352,11 +2197,8 @@ TEST_F(GLES2FormatTest, VertexAttribPointer) {
TEST_F(GLES2FormatTest, Viewport) {
cmds::Viewport& cmd = *GetBufferAs<cmds::Viewport>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLint>(12),
- static_cast<GLsizei>(13),
- static_cast<GLsizei>(14));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+ static_cast<GLsizei>(13), static_cast<GLsizei>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::Viewport::kCmdId), cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
EXPECT_EQ(static_cast<GLint>(11), cmd.x);
@@ -2369,17 +2211,11 @@ TEST_F(GLES2FormatTest, Viewport) {
TEST_F(GLES2FormatTest, BlitFramebufferCHROMIUM) {
cmds::BlitFramebufferCHROMIUM& cmd =
*GetBufferAs<cmds::BlitFramebufferCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLint>(14),
- static_cast<GLint>(15),
- static_cast<GLint>(16),
- static_cast<GLint>(17),
- static_cast<GLint>(18),
- static_cast<GLbitfield>(19),
- static_cast<GLenum>(20));
+ void* next_cmd = cmd.Set(
+ &cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLint>(14), static_cast<GLint>(15),
+ static_cast<GLint>(16), static_cast<GLint>(17), static_cast<GLint>(18),
+ static_cast<GLbitfield>(19), static_cast<GLenum>(20));
EXPECT_EQ(static_cast<uint32_t>(cmds::BlitFramebufferCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2399,12 +2235,9 @@ TEST_F(GLES2FormatTest, BlitFramebufferCHROMIUM) {
TEST_F(GLES2FormatTest, RenderbufferStorageMultisampleCHROMIUM) {
cmds::RenderbufferStorageMultisampleCHROMIUM& cmd =
*GetBufferAs<cmds::RenderbufferStorageMultisampleCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLsizei>(12),
- static_cast<GLenum>(13),
- static_cast<GLsizei>(14),
- static_cast<GLsizei>(15));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLsizei>(12), static_cast<GLenum>(13),
+ static_cast<GLsizei>(14), static_cast<GLsizei>(15));
EXPECT_EQ(static_cast<uint32_t>(
cmds::RenderbufferStorageMultisampleCHROMIUM::kCmdId),
cmd.header.command);
@@ -2420,12 +2253,9 @@ TEST_F(GLES2FormatTest, RenderbufferStorageMultisampleCHROMIUM) {
TEST_F(GLES2FormatTest, RenderbufferStorageMultisampleEXT) {
cmds::RenderbufferStorageMultisampleEXT& cmd =
*GetBufferAs<cmds::RenderbufferStorageMultisampleEXT>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLsizei>(12),
- static_cast<GLenum>(13),
- static_cast<GLsizei>(14),
- static_cast<GLsizei>(15));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLsizei>(12), static_cast<GLenum>(13),
+ static_cast<GLsizei>(14), static_cast<GLsizei>(15));
EXPECT_EQ(
static_cast<uint32_t>(cmds::RenderbufferStorageMultisampleEXT::kCmdId),
cmd.header.command);
@@ -2441,12 +2271,9 @@ TEST_F(GLES2FormatTest, RenderbufferStorageMultisampleEXT) {
TEST_F(GLES2FormatTest, FramebufferTexture2DMultisampleEXT) {
cmds::FramebufferTexture2DMultisampleEXT& cmd =
*GetBufferAs<cmds::FramebufferTexture2DMultisampleEXT>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLenum>(13),
- static_cast<GLuint>(14),
- static_cast<GLsizei>(15));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLenum>(12), static_cast<GLenum>(13),
+ static_cast<GLuint>(14), static_cast<GLsizei>(15));
EXPECT_EQ(
static_cast<uint32_t>(cmds::FramebufferTexture2DMultisampleEXT::kCmdId),
cmd.header.command);
@@ -2461,12 +2288,9 @@ TEST_F(GLES2FormatTest, FramebufferTexture2DMultisampleEXT) {
TEST_F(GLES2FormatTest, TexStorage2DEXT) {
cmds::TexStorage2DEXT& cmd = *GetBufferAs<cmds::TexStorage2DEXT>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLsizei>(12),
- static_cast<GLenum>(13),
- static_cast<GLsizei>(14),
- static_cast<GLsizei>(15));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLsizei>(12), static_cast<GLenum>(13),
+ static_cast<GLsizei>(14), static_cast<GLsizei>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::TexStorage2DEXT::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2516,11 +2340,9 @@ TEST_F(GLES2FormatTest, DeleteQueriesEXTImmediate) {
TEST_F(GLES2FormatTest, BeginQueryEXT) {
cmds::BeginQueryEXT& cmd = *GetBufferAs<cmds::BeginQueryEXT>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLuint>(12),
- static_cast<uint32_t>(13),
- static_cast<uint32_t>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLuint>(12),
+ static_cast<uint32_t>(13), static_cast<uint32_t>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::BeginQueryEXT::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2610,10 +2432,9 @@ TEST_F(GLES2FormatTest, DeleteVertexArraysOESImmediate) {
TEST_F(GLES2FormatTest, IsVertexArrayOES) {
cmds::IsVertexArrayOES& cmd = *GetBufferAs<cmds::IsVertexArrayOES>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::IsVertexArrayOES::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2645,13 +2466,10 @@ TEST_F(GLES2FormatTest, SwapBuffers) {
TEST_F(GLES2FormatTest, GetMaxValueInBufferCHROMIUM) {
cmds::GetMaxValueInBufferCHROMIUM& cmd =
*GetBufferAs<cmds::GetMaxValueInBufferCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLsizei>(12),
- static_cast<GLenum>(13),
- static_cast<GLuint>(14),
- static_cast<uint32_t>(15),
- static_cast<uint32_t>(16));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLsizei>(12),
+ static_cast<GLenum>(13), static_cast<GLuint>(14),
+ static_cast<uint32_t>(15), static_cast<uint32_t>(16));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetMaxValueInBufferCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2667,10 +2485,9 @@ TEST_F(GLES2FormatTest, GetMaxValueInBufferCHROMIUM) {
TEST_F(GLES2FormatTest, EnableFeatureCHROMIUM) {
cmds::EnableFeatureCHROMIUM& cmd =
*GetBufferAs<cmds::EnableFeatureCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<uint32_t>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::EnableFeatureCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2682,10 +2499,8 @@ TEST_F(GLES2FormatTest, EnableFeatureCHROMIUM) {
TEST_F(GLES2FormatTest, ResizeCHROMIUM) {
cmds::ResizeCHROMIUM& cmd = *GetBufferAs<cmds::ResizeCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLuint>(12),
- static_cast<GLfloat>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+ static_cast<GLuint>(12), static_cast<GLfloat>(13));
EXPECT_EQ(static_cast<uint32_t>(cmds::ResizeCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2721,13 +2536,10 @@ TEST_F(GLES2FormatTest, RequestExtensionCHROMIUM) {
TEST_F(GLES2FormatTest, GetMultipleIntegervCHROMIUM) {
cmds::GetMultipleIntegervCHROMIUM& cmd =
*GetBufferAs<cmds::GetMultipleIntegervCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<uint32_t>(11),
- static_cast<uint32_t>(12),
- static_cast<GLuint>(13),
- static_cast<uint32_t>(14),
- static_cast<uint32_t>(15),
- static_cast<GLsizeiptr>(16));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<uint32_t>(11), static_cast<uint32_t>(12),
+ static_cast<GLuint>(13), static_cast<uint32_t>(14),
+ static_cast<uint32_t>(15), static_cast<GLsizeiptr>(16));
EXPECT_EQ(static_cast<uint32_t>(cmds::GetMultipleIntegervCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2769,11 +2581,8 @@ TEST_F(GLES2FormatTest, GetTranslatedShaderSourceANGLE) {
TEST_F(GLES2FormatTest, PostSubBufferCHROMIUM) {
cmds::PostSubBufferCHROMIUM& cmd =
*GetBufferAs<cmds::PostSubBufferCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLint>(14));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLint>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::PostSubBufferCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2787,12 +2596,9 @@ TEST_F(GLES2FormatTest, PostSubBufferCHROMIUM) {
TEST_F(GLES2FormatTest, TexImageIOSurface2DCHROMIUM) {
cmds::TexImageIOSurface2DCHROMIUM& cmd =
*GetBufferAs<cmds::TexImageIOSurface2DCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLsizei>(12),
- static_cast<GLsizei>(13),
- static_cast<GLuint>(14),
- static_cast<GLuint>(15));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLsizei>(12), static_cast<GLsizei>(13),
+ static_cast<GLuint>(14), static_cast<GLuint>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::TexImageIOSurface2DCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2806,13 +2612,10 @@ TEST_F(GLES2FormatTest, TexImageIOSurface2DCHROMIUM) {
TEST_F(GLES2FormatTest, CopyTextureCHROMIUM) {
cmds::CopyTextureCHROMIUM& cmd = *GetBufferAs<cmds::CopyTextureCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLenum>(12),
- static_cast<GLenum>(13),
- static_cast<GLint>(14),
- static_cast<GLint>(15),
- static_cast<GLenum>(16));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12),
+ static_cast<GLenum>(13), static_cast<GLint>(14),
+ static_cast<GLint>(15), static_cast<GLenum>(16));
EXPECT_EQ(static_cast<uint32_t>(cmds::CopyTextureCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2828,11 +2631,9 @@ TEST_F(GLES2FormatTest, CopyTextureCHROMIUM) {
TEST_F(GLES2FormatTest, DrawArraysInstancedANGLE) {
cmds::DrawArraysInstancedANGLE& cmd =
*GetBufferAs<cmds::DrawArraysInstancedANGLE>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLsizei>(13),
- static_cast<GLsizei>(14));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLsizei>(13), static_cast<GLsizei>(14));
EXPECT_EQ(static_cast<uint32_t>(cmds::DrawArraysInstancedANGLE::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -2846,12 +2647,9 @@ TEST_F(GLES2FormatTest, DrawArraysInstancedANGLE) {
TEST_F(GLES2FormatTest, DrawElementsInstancedANGLE) {
cmds::DrawElementsInstancedANGLE& cmd =
*GetBufferAs<cmds::DrawElementsInstancedANGLE>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLsizei>(12),
- static_cast<GLenum>(13),
- static_cast<GLuint>(14),
- static_cast<GLsizei>(15));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11),
+ static_cast<GLsizei>(12), static_cast<GLenum>(13),
+ static_cast<GLuint>(14), static_cast<GLsizei>(15));
EXPECT_EQ(static_cast<uint32_t>(cmds::DrawElementsInstancedANGLE::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -3129,10 +2927,8 @@ TEST_F(GLES2FormatTest, ConsumeTextureCHROMIUMImmediate) {
TEST_F(GLES2FormatTest, BindUniformLocationCHROMIUMBucket) {
cmds::BindUniformLocationCHROMIUMBucket& cmd =
*GetBufferAs<cmds::BindUniformLocationCHROMIUMBucket>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLuint>(11),
- static_cast<GLint>(12),
- static_cast<uint32_t>(13));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11),
+ static_cast<GLint>(12), static_cast<uint32_t>(13));
EXPECT_EQ(
static_cast<uint32_t>(cmds::BindUniformLocationCHROMIUMBucket::kCmdId),
cmd.header.command);
@@ -3143,6 +2939,111 @@ TEST_F(GLES2FormatTest, BindUniformLocationCHROMIUMBucket) {
CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd));
}
+TEST_F(GLES2FormatTest, GenValuebuffersCHROMIUMImmediate) {
+ static GLuint ids[] = {
+ 12, 23, 34,
+ };
+ cmds::GenValuebuffersCHROMIUMImmediate& cmd =
+ *GetBufferAs<cmds::GenValuebuffersCHROMIUMImmediate>();
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids);
+ EXPECT_EQ(
+ static_cast<uint32_t>(cmds::GenValuebuffersCHROMIUMImmediate::kCmdId),
+ cmd.header.command);
+ EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u),
+ cmd.header.size * 4u);
+ EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
+ CheckBytesWrittenMatchesExpectedSize(
+ next_cmd,
+ sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
+ // TODO(gman): Check that ids were inserted;
+}
+
+TEST_F(GLES2FormatTest, DeleteValuebuffersCHROMIUMImmediate) {
+ static GLuint ids[] = {
+ 12, 23, 34,
+ };
+ cmds::DeleteValuebuffersCHROMIUMImmediate& cmd =
+ *GetBufferAs<cmds::DeleteValuebuffersCHROMIUMImmediate>();
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids);
+ EXPECT_EQ(
+ static_cast<uint32_t>(cmds::DeleteValuebuffersCHROMIUMImmediate::kCmdId),
+ cmd.header.command);
+ EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u),
+ cmd.header.size * 4u);
+ EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n);
+ CheckBytesWrittenMatchesExpectedSize(
+ next_cmd,
+ sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u));
+ // TODO(gman): Check that ids were inserted;
+}
+
+TEST_F(GLES2FormatTest, IsValuebufferCHROMIUM) {
+ cmds::IsValuebufferCHROMIUM& cmd =
+ *GetBufferAs<cmds::IsValuebufferCHROMIUM>();
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32_t>(12),
+ static_cast<uint32_t>(13));
+ EXPECT_EQ(static_cast<uint32_t>(cmds::IsValuebufferCHROMIUM::kCmdId),
+ cmd.header.command);
+ EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
+ EXPECT_EQ(static_cast<GLuint>(11), cmd.valuebuffer);
+ EXPECT_EQ(static_cast<uint32_t>(12), cmd.result_shm_id);
+ EXPECT_EQ(static_cast<uint32_t>(13), cmd.result_shm_offset);
+ CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd));
+}
+
+TEST_F(GLES2FormatTest, BindValuebufferCHROMIUM) {
+ cmds::BindValuebufferCHROMIUM& cmd =
+ *GetBufferAs<cmds::BindValuebufferCHROMIUM>();
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLuint>(12));
+ EXPECT_EQ(static_cast<uint32_t>(cmds::BindValuebufferCHROMIUM::kCmdId),
+ cmd.header.command);
+ EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
+ EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
+ EXPECT_EQ(static_cast<GLuint>(12), cmd.valuebuffer);
+ CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd));
+}
+
+TEST_F(GLES2FormatTest, SubscribeValueCHROMIUM) {
+ cmds::SubscribeValueCHROMIUM& cmd =
+ *GetBufferAs<cmds::SubscribeValueCHROMIUM>();
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12));
+ EXPECT_EQ(static_cast<uint32_t>(cmds::SubscribeValueCHROMIUM::kCmdId),
+ cmd.header.command);
+ EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
+ EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
+ EXPECT_EQ(static_cast<GLenum>(12), cmd.subscription);
+ CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd));
+}
+
+TEST_F(GLES2FormatTest, PopulateSubscribedValuesCHROMIUM) {
+ cmds::PopulateSubscribedValuesCHROMIUM& cmd =
+ *GetBufferAs<cmds::PopulateSubscribedValuesCHROMIUM>();
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11));
+ EXPECT_EQ(
+ static_cast<uint32_t>(cmds::PopulateSubscribedValuesCHROMIUM::kCmdId),
+ cmd.header.command);
+ EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
+ EXPECT_EQ(static_cast<GLenum>(11), cmd.target);
+ CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd));
+}
+
+TEST_F(GLES2FormatTest, UniformValuebufferCHROMIUM) {
+ cmds::UniformValuebufferCHROMIUM& cmd =
+ *GetBufferAs<cmds::UniformValuebufferCHROMIUM>();
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11),
+ static_cast<GLenum>(12), static_cast<GLenum>(13));
+ EXPECT_EQ(static_cast<uint32_t>(cmds::UniformValuebufferCHROMIUM::kCmdId),
+ cmd.header.command);
+ EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
+ EXPECT_EQ(static_cast<GLint>(11), cmd.location);
+ EXPECT_EQ(static_cast<GLenum>(12), cmd.target);
+ EXPECT_EQ(static_cast<GLenum>(13), cmd.subscription);
+ CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd));
+}
+
TEST_F(GLES2FormatTest, BindTexImage2DCHROMIUM) {
cmds::BindTexImage2DCHROMIUM& cmd =
*GetBufferAs<cmds::BindTexImage2DCHROMIUM>();
@@ -3191,20 +3092,13 @@ TEST_F(GLES2FormatTest, TraceEndCHROMIUM) {
TEST_F(GLES2FormatTest, AsyncTexSubImage2DCHROMIUM) {
cmds::AsyncTexSubImage2DCHROMIUM& cmd =
*GetBufferAs<cmds::AsyncTexSubImage2DCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLint>(14),
- static_cast<GLsizei>(15),
- static_cast<GLsizei>(16),
- static_cast<GLenum>(17),
- static_cast<GLenum>(18),
- static_cast<uint32_t>(19),
- static_cast<uint32_t>(20),
- static_cast<uint32_t>(21),
- static_cast<uint32_t>(22),
- static_cast<uint32_t>(23));
+ void* next_cmd = cmd.Set(
+ &cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLint>(14), static_cast<GLsizei>(15),
+ static_cast<GLsizei>(16), static_cast<GLenum>(17),
+ static_cast<GLenum>(18), static_cast<uint32_t>(19),
+ static_cast<uint32_t>(20), static_cast<uint32_t>(21),
+ static_cast<uint32_t>(22), static_cast<uint32_t>(23));
EXPECT_EQ(static_cast<uint32_t>(cmds::AsyncTexSubImage2DCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -3227,19 +3121,13 @@ TEST_F(GLES2FormatTest, AsyncTexSubImage2DCHROMIUM) {
TEST_F(GLES2FormatTest, AsyncTexImage2DCHROMIUM) {
cmds::AsyncTexImage2DCHROMIUM& cmd =
*GetBufferAs<cmds::AsyncTexImage2DCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLenum>(11),
- static_cast<GLint>(12),
- static_cast<GLint>(13),
- static_cast<GLsizei>(14),
- static_cast<GLsizei>(15),
- static_cast<GLenum>(16),
- static_cast<GLenum>(17),
- static_cast<uint32_t>(18),
- static_cast<uint32_t>(19),
- static_cast<uint32_t>(20),
- static_cast<uint32_t>(21),
- static_cast<uint32_t>(22));
+ void* next_cmd =
+ cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12),
+ static_cast<GLint>(13), static_cast<GLsizei>(14),
+ static_cast<GLsizei>(15), static_cast<GLenum>(16),
+ static_cast<GLenum>(17), static_cast<uint32_t>(18),
+ static_cast<uint32_t>(19), static_cast<uint32_t>(20),
+ static_cast<uint32_t>(21), static_cast<uint32_t>(22));
EXPECT_EQ(static_cast<uint32_t>(cmds::AsyncTexImage2DCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
@@ -3359,18 +3247,12 @@ TEST_F(GLES2FormatTest, DiscardBackbufferCHROMIUM) {
TEST_F(GLES2FormatTest, ScheduleOverlayPlaneCHROMIUM) {
cmds::ScheduleOverlayPlaneCHROMIUM& cmd =
*GetBufferAs<cmds::ScheduleOverlayPlaneCHROMIUM>();
- void* next_cmd = cmd.Set(&cmd,
- static_cast<GLint>(11),
- static_cast<GLenum>(12),
- static_cast<GLuint>(13),
- static_cast<GLint>(14),
- static_cast<GLint>(15),
- static_cast<GLint>(16),
- static_cast<GLint>(17),
- static_cast<GLfloat>(18),
- static_cast<GLfloat>(19),
- static_cast<GLfloat>(20),
- static_cast<GLfloat>(21));
+ void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11),
+ static_cast<GLenum>(12), static_cast<GLuint>(13),
+ static_cast<GLint>(14), static_cast<GLint>(15),
+ static_cast<GLint>(16), static_cast<GLint>(17),
+ static_cast<GLfloat>(18), static_cast<GLfloat>(19),
+ static_cast<GLfloat>(20), static_cast<GLfloat>(21));
EXPECT_EQ(static_cast<uint32_t>(cmds::ScheduleOverlayPlaneCHROMIUM::kCmdId),
cmd.header.command);
EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
diff --git a/gpu/command_buffer/common/gles2_cmd_ids_autogen.h b/gpu/command_buffer/common/gles2_cmd_ids_autogen.h
index 8bd5c0a950..a34e7d2b6c 100644
--- a/gpu/command_buffer/common/gles2_cmd_ids_autogen.h
+++ b/gpu/command_buffer/common/gles2_cmd_ids_autogen.h
@@ -193,24 +193,31 @@
OP(ConsumeTextureCHROMIUMImmediate) /* 434 */ \
OP(CreateAndConsumeTextureCHROMIUMImmediate) /* 435 */ \
OP(BindUniformLocationCHROMIUMBucket) /* 436 */ \
- OP(BindTexImage2DCHROMIUM) /* 437 */ \
- OP(ReleaseTexImage2DCHROMIUM) /* 438 */ \
- OP(TraceBeginCHROMIUM) /* 439 */ \
- OP(TraceEndCHROMIUM) /* 440 */ \
- OP(AsyncTexSubImage2DCHROMIUM) /* 441 */ \
- OP(AsyncTexImage2DCHROMIUM) /* 442 */ \
- OP(WaitAsyncTexImage2DCHROMIUM) /* 443 */ \
- OP(WaitAllAsyncTexImage2DCHROMIUM) /* 444 */ \
- OP(DiscardFramebufferEXTImmediate) /* 445 */ \
- OP(LoseContextCHROMIUM) /* 446 */ \
- OP(InsertSyncPointCHROMIUM) /* 447 */ \
- OP(WaitSyncPointCHROMIUM) /* 448 */ \
- OP(DrawBuffersEXTImmediate) /* 449 */ \
- OP(DiscardBackbufferCHROMIUM) /* 450 */ \
- OP(ScheduleOverlayPlaneCHROMIUM) /* 451 */ \
- OP(MatrixLoadfCHROMIUMImmediate) /* 452 */ \
- OP(MatrixLoadIdentityCHROMIUM) /* 453 */ \
- OP(BlendBarrierKHR) /* 454 */
+ OP(GenValuebuffersCHROMIUMImmediate) /* 437 */ \
+ OP(DeleteValuebuffersCHROMIUMImmediate) /* 438 */ \
+ OP(IsValuebufferCHROMIUM) /* 439 */ \
+ OP(BindValuebufferCHROMIUM) /* 440 */ \
+ OP(SubscribeValueCHROMIUM) /* 441 */ \
+ OP(PopulateSubscribedValuesCHROMIUM) /* 442 */ \
+ OP(UniformValuebufferCHROMIUM) /* 443 */ \
+ OP(BindTexImage2DCHROMIUM) /* 444 */ \
+ OP(ReleaseTexImage2DCHROMIUM) /* 445 */ \
+ OP(TraceBeginCHROMIUM) /* 446 */ \
+ OP(TraceEndCHROMIUM) /* 447 */ \
+ OP(AsyncTexSubImage2DCHROMIUM) /* 448 */ \
+ OP(AsyncTexImage2DCHROMIUM) /* 449 */ \
+ OP(WaitAsyncTexImage2DCHROMIUM) /* 450 */ \
+ OP(WaitAllAsyncTexImage2DCHROMIUM) /* 451 */ \
+ OP(DiscardFramebufferEXTImmediate) /* 452 */ \
+ OP(LoseContextCHROMIUM) /* 453 */ \
+ OP(InsertSyncPointCHROMIUM) /* 454 */ \
+ OP(WaitSyncPointCHROMIUM) /* 455 */ \
+ OP(DrawBuffersEXTImmediate) /* 456 */ \
+ OP(DiscardBackbufferCHROMIUM) /* 457 */ \
+ OP(ScheduleOverlayPlaneCHROMIUM) /* 458 */ \
+ OP(MatrixLoadfCHROMIUMImmediate) /* 459 */ \
+ OP(MatrixLoadIdentityCHROMIUM) /* 460 */ \
+ OP(BlendBarrierKHR) /* 461 */
enum CommandId {
kStartPoint = cmd::kLastCommonId, // All GLES2 commands start after this.
diff --git a/gpu/command_buffer/common/gles2_cmd_utils_autogen.h b/gpu/command_buffer/common/gles2_cmd_utils_autogen.h
index 18712010af..e8631e675a 100644
--- a/gpu/command_buffer/common/gles2_cmd_utils_autogen.h
+++ b/gpu/command_buffer/common/gles2_cmd_utils_autogen.h
@@ -55,6 +55,7 @@ static std::string GetStringShaderType(uint32_t value);
static std::string GetStringSrcBlendFactor(uint32_t value);
static std::string GetStringStencilOp(uint32_t value);
static std::string GetStringStringType(uint32_t value);
+static std::string GetStringSubscriptionTarget(uint32_t value);
static std::string GetStringTextureBindTarget(uint32_t value);
static std::string GetStringTextureFormat(uint32_t value);
static std::string GetStringTextureInternalFormat(uint32_t value);
@@ -66,6 +67,7 @@ static std::string GetStringTexturePool(uint32_t value);
static std::string GetStringTextureTarget(uint32_t value);
static std::string GetStringTextureUsage(uint32_t value);
static std::string GetStringTextureWrapMode(uint32_t value);
+static std::string GetStringValueBufferTarget(uint32_t value);
static std::string GetStringVertexAttribType(uint32_t value);
static std::string GetStringVertexAttribute(uint32_t value);
static std::string GetStringVertexPointer(uint32_t value);
diff --git a/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h b/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h
index 5d7cebd0e5..1a0945a857 100644
--- a/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h
+++ b/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h
@@ -3065,6 +3065,14 @@ static const GLES2Util::EnumToString enum_to_string_table[] = {
"GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT",
},
{
+ 0x924C,
+ "GL_MOUSE_POSITION_CHROMIUM",
+ },
+ {
+ 0x924B,
+ "GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM",
+ },
+ {
0x924A,
"GL_OVERLAY_TRANSFORM_ROTATE_270_CHROMIUM",
},
@@ -3781,8 +3789,8 @@ std::string GLES2Util::GetStringAttachment(uint32_t value) {
{GL_DEPTH_ATTACHMENT, "GL_DEPTH_ATTACHMENT"},
{GL_STENCIL_ATTACHMENT, "GL_STENCIL_ATTACHMENT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringBackbufferAttachment(uint32_t value) {
@@ -3791,24 +3799,24 @@ std::string GLES2Util::GetStringBackbufferAttachment(uint32_t value) {
{GL_DEPTH_EXT, "GL_DEPTH_EXT"},
{GL_STENCIL_EXT, "GL_STENCIL_EXT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringBlitFilter(uint32_t value) {
static const EnumToString string_table[] = {
{GL_NEAREST, "GL_NEAREST"}, {GL_LINEAR, "GL_LINEAR"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringBufferParameter(uint32_t value) {
static const EnumToString string_table[] = {
{GL_BUFFER_SIZE, "GL_BUFFER_SIZE"}, {GL_BUFFER_USAGE, "GL_BUFFER_USAGE"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringBufferTarget(uint32_t value) {
@@ -3816,8 +3824,8 @@ std::string GLES2Util::GetStringBufferTarget(uint32_t value) {
{GL_ARRAY_BUFFER, "GL_ARRAY_BUFFER"},
{GL_ELEMENT_ARRAY_BUFFER, "GL_ELEMENT_ARRAY_BUFFER"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringBufferUsage(uint32_t value) {
@@ -3826,8 +3834,8 @@ std::string GLES2Util::GetStringBufferUsage(uint32_t value) {
{GL_STATIC_DRAW, "GL_STATIC_DRAW"},
{GL_DYNAMIC_DRAW, "GL_DYNAMIC_DRAW"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringCapability(uint32_t value) {
@@ -3842,8 +3850,8 @@ std::string GLES2Util::GetStringCapability(uint32_t value) {
{GL_SCISSOR_TEST, "GL_SCISSOR_TEST"},
{GL_STENCIL_TEST, "GL_STENCIL_TEST"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringCmpFunction(uint32_t value) {
@@ -3857,8 +3865,8 @@ std::string GLES2Util::GetStringCmpFunction(uint32_t value) {
{GL_GEQUAL, "GL_GEQUAL"},
{GL_ALWAYS, "GL_ALWAYS"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringCompressedTextureFormat(uint32_t value) {
@@ -3875,8 +3883,8 @@ std::string GLES2Util::GetStringDrawMode(uint32_t value) {
{GL_TRIANGLE_FAN, "GL_TRIANGLE_FAN"},
{GL_TRIANGLES, "GL_TRIANGLES"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringDstBlendFactor(uint32_t value) {
@@ -3896,8 +3904,8 @@ std::string GLES2Util::GetStringDstBlendFactor(uint32_t value) {
{GL_CONSTANT_ALPHA, "GL_CONSTANT_ALPHA"},
{GL_ONE_MINUS_CONSTANT_ALPHA, "GL_ONE_MINUS_CONSTANT_ALPHA"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringEquation(uint32_t value) {
@@ -3906,16 +3914,16 @@ std::string GLES2Util::GetStringEquation(uint32_t value) {
{GL_FUNC_SUBTRACT, "GL_FUNC_SUBTRACT"},
{GL_FUNC_REVERSE_SUBTRACT, "GL_FUNC_REVERSE_SUBTRACT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringFaceMode(uint32_t value) {
static const EnumToString string_table[] = {
{GL_CW, "GL_CW"}, {GL_CCW, "GL_CCW"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringFaceType(uint32_t value) {
@@ -3924,8 +3932,8 @@ std::string GLES2Util::GetStringFaceType(uint32_t value) {
{GL_BACK, "GL_BACK"},
{GL_FRONT_AND_BACK, "GL_FRONT_AND_BACK"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringFrameBufferParameter(uint32_t value) {
@@ -3939,16 +3947,16 @@ std::string GLES2Util::GetStringFrameBufferParameter(uint32_t value) {
{GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
"GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringFrameBufferTarget(uint32_t value) {
static const EnumToString string_table[] = {
{GL_FRAMEBUFFER, "GL_FRAMEBUFFER"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringGLState(uint32_t value) {
@@ -4050,8 +4058,8 @@ std::string GLES2Util::GetStringGLState(uint32_t value) {
{GL_SCISSOR_TEST, "GL_SCISSOR_TEST"},
{GL_STENCIL_TEST, "GL_STENCIL_TEST"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringGetMaxIndexType(uint32_t value) {
@@ -4060,8 +4068,8 @@ std::string GLES2Util::GetStringGetMaxIndexType(uint32_t value) {
{GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT"},
{GL_UNSIGNED_INT, "GL_UNSIGNED_INT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringGetTexParamTarget(uint32_t value) {
@@ -4069,8 +4077,8 @@ std::string GLES2Util::GetStringGetTexParamTarget(uint32_t value) {
{GL_TEXTURE_2D, "GL_TEXTURE_2D"},
{GL_TEXTURE_CUBE_MAP, "GL_TEXTURE_CUBE_MAP"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringHintMode(uint32_t value) {
@@ -4079,24 +4087,24 @@ std::string GLES2Util::GetStringHintMode(uint32_t value) {
{GL_NICEST, "GL_NICEST"},
{GL_DONT_CARE, "GL_DONT_CARE"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringHintTarget(uint32_t value) {
static const EnumToString string_table[] = {
{GL_GENERATE_MIPMAP_HINT, "GL_GENERATE_MIPMAP_HINT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringImageInternalFormat(uint32_t value) {
static const EnumToString string_table[] = {
{GL_RGB, "GL_RGB"}, {GL_RGBA, "GL_RGBA"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringImageUsage(uint32_t value) {
@@ -4104,8 +4112,8 @@ std::string GLES2Util::GetStringImageUsage(uint32_t value) {
{GL_MAP_CHROMIUM, "GL_MAP_CHROMIUM"},
{GL_SCANOUT_CHROMIUM, "GL_SCANOUT_CHROMIUM"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringIndexType(uint32_t value) {
@@ -4113,8 +4121,8 @@ std::string GLES2Util::GetStringIndexType(uint32_t value) {
{GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE"},
{GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringMatrixMode(uint32_t value) {
@@ -4122,8 +4130,8 @@ std::string GLES2Util::GetStringMatrixMode(uint32_t value) {
{GL_PATH_PROJECTION_CHROMIUM, "GL_PATH_PROJECTION_CHROMIUM"},
{GL_PATH_MODELVIEW_CHROMIUM, "GL_PATH_MODELVIEW_CHROMIUM"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringPixelStore(uint32_t value) {
@@ -4136,8 +4144,8 @@ std::string GLES2Util::GetStringPixelStore(uint32_t value) {
{GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM,
"GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringPixelType(uint32_t value) {
@@ -4147,8 +4155,8 @@ std::string GLES2Util::GetStringPixelType(uint32_t value) {
{GL_UNSIGNED_SHORT_4_4_4_4, "GL_UNSIGNED_SHORT_4_4_4_4"},
{GL_UNSIGNED_SHORT_5_5_5_1, "GL_UNSIGNED_SHORT_5_5_5_1"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringProgramParameter(uint32_t value) {
@@ -4163,8 +4171,8 @@ std::string GLES2Util::GetStringProgramParameter(uint32_t value) {
{GL_ACTIVE_UNIFORMS, "GL_ACTIVE_UNIFORMS"},
{GL_ACTIVE_UNIFORM_MAX_LENGTH, "GL_ACTIVE_UNIFORM_MAX_LENGTH"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringQueryObjectParameter(uint32_t value) {
@@ -4172,16 +4180,16 @@ std::string GLES2Util::GetStringQueryObjectParameter(uint32_t value) {
{GL_QUERY_RESULT_EXT, "GL_QUERY_RESULT_EXT"},
{GL_QUERY_RESULT_AVAILABLE_EXT, "GL_QUERY_RESULT_AVAILABLE_EXT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringQueryParameter(uint32_t value) {
static const EnumToString string_table[] = {
{GL_CURRENT_QUERY_EXT, "GL_CURRENT_QUERY_EXT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringQueryTarget(uint32_t value) {
@@ -4197,16 +4205,16 @@ std::string GLES2Util::GetStringQueryTarget(uint32_t value) {
"GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM"},
{GL_COMMANDS_COMPLETED_CHROMIUM, "GL_COMMANDS_COMPLETED_CHROMIUM"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringReadPixelFormat(uint32_t value) {
static const EnumToString string_table[] = {
{GL_ALPHA, "GL_ALPHA"}, {GL_RGB, "GL_RGB"}, {GL_RGBA, "GL_RGBA"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringReadPixelType(uint32_t value) {
@@ -4216,8 +4224,8 @@ std::string GLES2Util::GetStringReadPixelType(uint32_t value) {
{GL_UNSIGNED_SHORT_4_4_4_4, "GL_UNSIGNED_SHORT_4_4_4_4"},
{GL_UNSIGNED_SHORT_5_5_5_1, "GL_UNSIGNED_SHORT_5_5_5_1"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringRenderBufferFormat(uint32_t value) {
@@ -4228,8 +4236,8 @@ std::string GLES2Util::GetStringRenderBufferFormat(uint32_t value) {
{GL_DEPTH_COMPONENT16, "GL_DEPTH_COMPONENT16"},
{GL_STENCIL_INDEX8, "GL_STENCIL_INDEX8"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringRenderBufferParameter(uint32_t value) {
@@ -4244,16 +4252,16 @@ std::string GLES2Util::GetStringRenderBufferParameter(uint32_t value) {
{GL_RENDERBUFFER_HEIGHT, "GL_RENDERBUFFER_HEIGHT"},
{GL_RENDERBUFFER_INTERNAL_FORMAT, "GL_RENDERBUFFER_INTERNAL_FORMAT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringRenderBufferTarget(uint32_t value) {
static const EnumToString string_table[] = {
{GL_RENDERBUFFER, "GL_RENDERBUFFER"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringResetStatus(uint32_t value) {
@@ -4262,8 +4270,8 @@ std::string GLES2Util::GetStringResetStatus(uint32_t value) {
{GL_INNOCENT_CONTEXT_RESET_ARB, "GL_INNOCENT_CONTEXT_RESET_ARB"},
{GL_UNKNOWN_CONTEXT_RESET_ARB, "GL_UNKNOWN_CONTEXT_RESET_ARB"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringShaderBinaryFormat(uint32_t value) {
@@ -4280,8 +4288,8 @@ std::string GLES2Util::GetStringShaderParameter(uint32_t value) {
{GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
"GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringShaderPrecision(uint32_t value) {
@@ -4293,8 +4301,8 @@ std::string GLES2Util::GetStringShaderPrecision(uint32_t value) {
{GL_MEDIUM_INT, "GL_MEDIUM_INT"},
{GL_HIGH_INT, "GL_HIGH_INT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringShaderType(uint32_t value) {
@@ -4302,8 +4310,8 @@ std::string GLES2Util::GetStringShaderType(uint32_t value) {
{GL_VERTEX_SHADER, "GL_VERTEX_SHADER"},
{GL_FRAGMENT_SHADER, "GL_FRAGMENT_SHADER"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringSrcBlendFactor(uint32_t value) {
@@ -4324,8 +4332,8 @@ std::string GLES2Util::GetStringSrcBlendFactor(uint32_t value) {
{GL_ONE_MINUS_CONSTANT_ALPHA, "GL_ONE_MINUS_CONSTANT_ALPHA"},
{GL_SRC_ALPHA_SATURATE, "GL_SRC_ALPHA_SATURATE"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringStencilOp(uint32_t value) {
@@ -4339,8 +4347,8 @@ std::string GLES2Util::GetStringStencilOp(uint32_t value) {
{GL_DECR_WRAP, "GL_DECR_WRAP"},
{GL_INVERT, "GL_INVERT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringStringType(uint32_t value) {
@@ -4351,8 +4359,16 @@ std::string GLES2Util::GetStringStringType(uint32_t value) {
{GL_SHADING_LANGUAGE_VERSION, "GL_SHADING_LANGUAGE_VERSION"},
{GL_EXTENSIONS, "GL_EXTENSIONS"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
+}
+
+std::string GLES2Util::GetStringSubscriptionTarget(uint32_t value) {
+ static const EnumToString string_table[] = {
+ {GL_MOUSE_POSITION_CHROMIUM, "GL_MOUSE_POSITION_CHROMIUM"},
+ };
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureBindTarget(uint32_t value) {
@@ -4360,8 +4376,8 @@ std::string GLES2Util::GetStringTextureBindTarget(uint32_t value) {
{GL_TEXTURE_2D, "GL_TEXTURE_2D"},
{GL_TEXTURE_CUBE_MAP, "GL_TEXTURE_CUBE_MAP"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureFormat(uint32_t value) {
@@ -4372,8 +4388,8 @@ std::string GLES2Util::GetStringTextureFormat(uint32_t value) {
{GL_RGB, "GL_RGB"},
{GL_RGBA, "GL_RGBA"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureInternalFormat(uint32_t value) {
@@ -4384,8 +4400,8 @@ std::string GLES2Util::GetStringTextureInternalFormat(uint32_t value) {
{GL_RGB, "GL_RGB"},
{GL_RGBA, "GL_RGBA"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureInternalFormatStorage(uint32_t value) {
@@ -4399,16 +4415,16 @@ std::string GLES2Util::GetStringTextureInternalFormatStorage(uint32_t value) {
{GL_RGB8_OES, "GL_RGB8_OES"},
{GL_RGBA8_OES, "GL_RGBA8_OES"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureMagFilterMode(uint32_t value) {
static const EnumToString string_table[] = {
{GL_NEAREST, "GL_NEAREST"}, {GL_LINEAR, "GL_LINEAR"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureMinFilterMode(uint32_t value) {
@@ -4420,8 +4436,8 @@ std::string GLES2Util::GetStringTextureMinFilterMode(uint32_t value) {
{GL_NEAREST_MIPMAP_LINEAR, "GL_NEAREST_MIPMAP_LINEAR"},
{GL_LINEAR_MIPMAP_LINEAR, "GL_LINEAR_MIPMAP_LINEAR"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureParameter(uint32_t value) {
@@ -4432,8 +4448,8 @@ std::string GLES2Util::GetStringTextureParameter(uint32_t value) {
{GL_TEXTURE_WRAP_S, "GL_TEXTURE_WRAP_S"},
{GL_TEXTURE_WRAP_T, "GL_TEXTURE_WRAP_T"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTexturePool(uint32_t value) {
@@ -4442,8 +4458,8 @@ std::string GLES2Util::GetStringTexturePool(uint32_t value) {
{GL_TEXTURE_POOL_UNMANAGED_CHROMIUM,
"GL_TEXTURE_POOL_UNMANAGED_CHROMIUM"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureTarget(uint32_t value) {
@@ -4456,8 +4472,8 @@ std::string GLES2Util::GetStringTextureTarget(uint32_t value) {
{GL_TEXTURE_CUBE_MAP_POSITIVE_Z, "GL_TEXTURE_CUBE_MAP_POSITIVE_Z"},
{GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureUsage(uint32_t value) {
@@ -4465,8 +4481,8 @@ std::string GLES2Util::GetStringTextureUsage(uint32_t value) {
{GL_NONE, "GL_NONE"},
{GL_FRAMEBUFFER_ATTACHMENT_ANGLE, "GL_FRAMEBUFFER_ATTACHMENT_ANGLE"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringTextureWrapMode(uint32_t value) {
@@ -4475,8 +4491,17 @@ std::string GLES2Util::GetStringTextureWrapMode(uint32_t value) {
{GL_MIRRORED_REPEAT, "GL_MIRRORED_REPEAT"},
{GL_REPEAT, "GL_REPEAT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
+}
+
+std::string GLES2Util::GetStringValueBufferTarget(uint32_t value) {
+ static const EnumToString string_table[] = {
+ {GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
+ "GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM"},
+ };
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringVertexAttribType(uint32_t value) {
@@ -4487,8 +4512,8 @@ std::string GLES2Util::GetStringVertexAttribType(uint32_t value) {
{GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT"},
{GL_FLOAT, "GL_FLOAT"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringVertexAttribute(uint32_t value) {
@@ -4502,16 +4527,16 @@ std::string GLES2Util::GetStringVertexAttribute(uint32_t value) {
{GL_VERTEX_ATTRIB_ARRAY_TYPE, "GL_VERTEX_ATTRIB_ARRAY_TYPE"},
{GL_CURRENT_VERTEX_ATTRIB, "GL_CURRENT_VERTEX_ATTRIB"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
std::string GLES2Util::GetStringVertexPointer(uint32_t value) {
static const EnumToString string_table[] = {
{GL_VERTEX_ATTRIB_ARRAY_POINTER, "GL_VERTEX_ATTRIB_ARRAY_POINTER"},
};
- return GLES2Util::GetQualifiedEnumString(
- string_table, arraysize(string_table), value);
+ return GLES2Util::GetQualifiedEnumString(string_table,
+ arraysize(string_table), value);
}
#endif // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_IMPLEMENTATION_AUTOGEN_H_
diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn
index 8293fbcef8..4013c3ac03 100644
--- a/gpu/command_buffer/service/BUILD.gn
+++ b/gpu/command_buffer/service/BUILD.gn
@@ -107,6 +107,8 @@ source_set("service") {
"texture_manager.cc",
"transfer_buffer_manager.cc",
"transfer_buffer_manager.h",
+ "valuebuffer_manager.h",
+ "valuebuffer_manager.cc",
"vertex_array_manager.h",
"vertex_array_manager.cc",
"vertex_attrib_manager.h",
diff --git a/gpu/command_buffer/service/command_buffer_service.cc b/gpu/command_buffer/service/command_buffer_service.cc
index 2c732c6735..1453a0acfb 100644
--- a/gpu/command_buffer/service/command_buffer_service.cc
+++ b/gpu/command_buffer/service/command_buffer_service.cc
@@ -39,9 +39,7 @@ bool CommandBufferService::Initialize() {
CommandBufferService::State CommandBufferService::GetLastState() {
State state;
- state.num_entries = num_entries_;
state.get_offset = get_offset_;
- state.put_offset = put_offset_;
state.token = token_;
state.error = error_;
state.context_lost_reason = context_lost_reason_;
@@ -174,6 +172,10 @@ void CommandBufferService::SetContextLostReason(
context_lost_reason_ = reason;
}
+int32 CommandBufferService::GetPutOffset() {
+ return put_offset_;
+}
+
void CommandBufferService::SetPutOffsetChangeCallback(
const base::Closure& callback) {
put_offset_change_callback_ = callback;
diff --git a/gpu/command_buffer/service/command_buffer_service.h b/gpu/command_buffer/service/command_buffer_service.h
index 15f865fe8d..69b9ad76eb 100644
--- a/gpu/command_buffer/service/command_buffer_service.h
+++ b/gpu/command_buffer/service/command_buffer_service.h
@@ -33,6 +33,9 @@ class GPU_EXPORT CommandBufferServiceBase : public CommandBuffer {
// NOTE: if calling this in conjunction with SetParseError,
// call this first.
virtual void SetContextLostReason(error::ContextLostReason) = 0;
+
+ // Allows the reader to obtain the current put offset.
+ virtual int32 GetPutOffset() = 0;
};
// An object that implements a shared memory command buffer and a synchronous
@@ -61,6 +64,7 @@ class GPU_EXPORT CommandBufferService : public CommandBufferServiceBase {
void SetToken(int32 token) override;
void SetParseError(error::Error error) override;
void SetContextLostReason(error::ContextLostReason) override;
+ int32 GetPutOffset() override;
// Sets a callback that is called whenever the put offset is changed. When
// called with sync==true, the callback must not return until some progress
diff --git a/gpu/command_buffer/service/command_buffer_service_unittest.cc b/gpu/command_buffer/service/command_buffer_service_unittest.cc
index 3af2d050ac..8a7d43ca98 100644
--- a/gpu/command_buffer/service/command_buffer_service_unittest.cc
+++ b/gpu/command_buffer/service/command_buffer_service_unittest.cc
@@ -38,7 +38,7 @@ class CommandBufferServiceTest : public testing::Test {
}
int32 GetPutOffset() {
- return command_buffer_->GetLastState().put_offset;
+ return command_buffer_->GetPutOffset();
}
int32 GetToken() {
@@ -65,7 +65,7 @@ TEST_F(CommandBufferServiceTest, InitializesCommandBuffer) {
EXPECT_TRUE(Initialize(1024));
CommandBuffer::State state = command_buffer_->GetLastState();
EXPECT_EQ(0, state.get_offset);
- EXPECT_EQ(0, state.put_offset);
+ EXPECT_EQ(0, command_buffer_->GetPutOffset());
EXPECT_EQ(0, state.token);
EXPECT_EQ(error::kNoError, state.error);
}
diff --git a/gpu/command_buffer/service/context_group.cc b/gpu/command_buffer/service/context_group.cc
index 00e7ec38b9..6ee57e4c0d 100644
--- a/gpu/command_buffer/service/context_group.cc
+++ b/gpu/command_buffer/service/context_group.cc
@@ -21,6 +21,7 @@
#include "gpu/command_buffer/service/shader_manager.h"
#include "gpu/command_buffer/service/texture_manager.h"
#include "gpu/command_buffer/service/transfer_buffer_manager.h"
+#include "gpu/command_buffer/service/valuebuffer_manager.h"
#include "ui/gl/gl_implementation.h"
namespace gpu {
@@ -121,6 +122,7 @@ bool ContextGroup::Initialize(
renderbuffer_manager_.reset(new RenderbufferManager(
memory_tracker_.get(), max_renderbuffer_size, max_samples,
depth24_supported));
+ valuebuffer_manager_.reset(new ValuebufferManager());
shader_manager_.reset(new ShaderManager());
// Lookup GL things we need to know.
@@ -300,6 +302,11 @@ void ContextGroup::Destroy(GLES2Decoder* decoder, bool have_context) {
renderbuffer_manager_.reset();
}
+ if (valuebuffer_manager_ != NULL) {
+ valuebuffer_manager_->Destroy();
+ valuebuffer_manager_.reset();
+ }
+
if (texture_manager_ != NULL) {
texture_manager_->Destroy(have_context);
texture_manager_.reset();
diff --git a/gpu/command_buffer/service/context_group.h b/gpu/command_buffer/service/context_group.h
index ae4550cbda..eb53252806 100644
--- a/gpu/command_buffer/service/context_group.h
+++ b/gpu/command_buffer/service/context_group.h
@@ -34,6 +34,7 @@ class RenderbufferManager;
class ProgramManager;
class ShaderManager;
class TextureManager;
+class ValuebufferManager;
class MemoryTracker;
struct DisallowedFeatures;
@@ -126,6 +127,10 @@ class GPU_EXPORT ContextGroup : public base::RefCounted<ContextGroup> {
return renderbuffer_manager_.get();
}
+ ValuebufferManager* valuebuffer_manager() const {
+ return valuebuffer_manager_.get();
+ }
+
TextureManager* texture_manager() const {
return texture_manager_.get();
}
@@ -199,6 +204,8 @@ class GPU_EXPORT ContextGroup : public base::RefCounted<ContextGroup> {
scoped_ptr<RenderbufferManager> renderbuffer_manager_;
+ scoped_ptr<ValuebufferManager> valuebuffer_manager_;
+
scoped_ptr<TextureManager> texture_manager_;
scoped_ptr<ProgramManager> program_manager_;
diff --git a/gpu/command_buffer/service/context_state.h b/gpu/command_buffer/service/context_state.h
index 7488f5786c..b4e812c295 100644
--- a/gpu/command_buffer/service/context_state.h
+++ b/gpu/command_buffer/service/context_state.h
@@ -13,6 +13,7 @@
#include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/command_buffer/service/query_manager.h"
#include "gpu/command_buffer/service/texture_manager.h"
+#include "gpu/command_buffer/service/valuebuffer_manager.h"
#include "gpu/command_buffer/service/vertex_attrib_manager.h"
#include "gpu/command_buffer/service/vertex_array_manager.h"
#include "gpu/gpu_export.h"
@@ -200,6 +201,9 @@ struct GPU_EXPORT ContextState {
scoped_refptr<Renderbuffer> bound_renderbuffer;
bool bound_renderbuffer_valid;
+ // The currently bound valuebuffer
+ scoped_refptr<Valuebuffer> bound_valuebuffer;
+
// A map of of target -> Query for current queries
typedef std::map<GLuint, scoped_refptr<QueryManager::Query> > QueryMap;
QueryMap current_queries;
diff --git a/gpu/command_buffer/service/context_state_impl_autogen.h b/gpu/command_buffer/service/context_state_impl_autogen.h
index 1b1e5fe430..037ac6c1a0 100644
--- a/gpu/command_buffer/service/context_state_impl_autogen.h
+++ b/gpu/command_buffer/service/context_state_impl_autogen.h
@@ -182,9 +182,7 @@ void ContextState::InitState(const ContextState* prev_state) const {
(blend_color_green != prev_state->blend_color_green) ||
(blend_color_blue != prev_state->blend_color_blue) ||
(blend_color_alpha != prev_state->blend_color_alpha))
- glBlendColor(blend_color_red,
- blend_color_green,
- blend_color_blue,
+ glBlendColor(blend_color_red, blend_color_green, blend_color_blue,
blend_color_alpha);
if ((blend_equation_rgb != prev_state->blend_equation_rgb) ||
(blend_equation_alpha != prev_state->blend_equation_alpha))
@@ -193,17 +191,13 @@ void ContextState::InitState(const ContextState* prev_state) const {
(blend_dest_rgb != prev_state->blend_dest_rgb) ||
(blend_source_alpha != prev_state->blend_source_alpha) ||
(blend_dest_alpha != prev_state->blend_dest_alpha))
- glBlendFuncSeparate(blend_source_rgb,
- blend_dest_rgb,
- blend_source_alpha,
+ glBlendFuncSeparate(blend_source_rgb, blend_dest_rgb, blend_source_alpha,
blend_dest_alpha);
if ((color_clear_red != prev_state->color_clear_red) ||
(color_clear_green != prev_state->color_clear_green) ||
(color_clear_blue != prev_state->color_clear_blue) ||
(color_clear_alpha != prev_state->color_clear_alpha))
- glClearColor(color_clear_red,
- color_clear_green,
- color_clear_blue,
+ glClearColor(color_clear_red, color_clear_green, color_clear_blue,
color_clear_alpha);
if ((depth_clear != prev_state->depth_clear))
glClearDepth(depth_clear);
@@ -213,10 +207,8 @@ void ContextState::InitState(const ContextState* prev_state) const {
(cached_color_mask_green != prev_state->cached_color_mask_green) ||
(cached_color_mask_blue != prev_state->cached_color_mask_blue) ||
(cached_color_mask_alpha != prev_state->cached_color_mask_alpha))
- glColorMask(cached_color_mask_red,
- cached_color_mask_green,
- cached_color_mask_blue,
- cached_color_mask_alpha);
+ glColorMask(cached_color_mask_red, cached_color_mask_green,
+ cached_color_mask_blue, cached_color_mask_alpha);
if ((cull_mode != prev_state->cull_mode))
glCullFace(cull_mode);
if ((depth_func != prev_state->depth_func))
@@ -240,15 +232,13 @@ void ContextState::InitState(const ContextState* prev_state) const {
if ((line_width != prev_state->line_width))
glLineWidth(line_width);
if (feature_info_->feature_flags().chromium_path_rendering) {
- if (memcmp(prev_state->modelview_matrix,
- modelview_matrix,
+ if (memcmp(prev_state->modelview_matrix, modelview_matrix,
sizeof(GLfloat) * 16)) {
glMatrixLoadfEXT(GL_PATH_MODELVIEW_CHROMIUM, modelview_matrix);
}
}
if (feature_info_->feature_flags().chromium_path_rendering) {
- if (memcmp(prev_state->projection_matrix,
- projection_matrix,
+ if (memcmp(prev_state->projection_matrix, projection_matrix,
sizeof(GLfloat) * 16)) {
glMatrixLoadfEXT(GL_PATH_PROJECTION_CHROMIUM, projection_matrix);
}
@@ -273,13 +263,13 @@ void ContextState::InitState(const ContextState* prev_state) const {
if ((stencil_front_func != prev_state->stencil_front_func) ||
(stencil_front_ref != prev_state->stencil_front_ref) ||
(stencil_front_mask != prev_state->stencil_front_mask))
- glStencilFuncSeparate(
- GL_FRONT, stencil_front_func, stencil_front_ref, stencil_front_mask);
+ glStencilFuncSeparate(GL_FRONT, stencil_front_func, stencil_front_ref,
+ stencil_front_mask);
if ((stencil_back_func != prev_state->stencil_back_func) ||
(stencil_back_ref != prev_state->stencil_back_ref) ||
(stencil_back_mask != prev_state->stencil_back_mask))
- glStencilFuncSeparate(
- GL_BACK, stencil_back_func, stencil_back_ref, stencil_back_mask);
+ glStencilFuncSeparate(GL_BACK, stencil_back_func, stencil_back_ref,
+ stencil_back_mask);
if ((cached_stencil_front_writemask !=
prev_state->cached_stencil_front_writemask))
glStencilMaskSeparate(GL_FRONT, cached_stencil_front_writemask);
@@ -289,16 +279,12 @@ void ContextState::InitState(const ContextState* prev_state) const {
if ((stencil_front_fail_op != prev_state->stencil_front_fail_op) ||
(stencil_front_z_fail_op != prev_state->stencil_front_z_fail_op) ||
(stencil_front_z_pass_op != prev_state->stencil_front_z_pass_op))
- glStencilOpSeparate(GL_FRONT,
- stencil_front_fail_op,
- stencil_front_z_fail_op,
- stencil_front_z_pass_op);
+ glStencilOpSeparate(GL_FRONT, stencil_front_fail_op,
+ stencil_front_z_fail_op, stencil_front_z_pass_op);
if ((stencil_back_fail_op != prev_state->stencil_back_fail_op) ||
(stencil_back_z_fail_op != prev_state->stencil_back_z_fail_op) ||
(stencil_back_z_pass_op != prev_state->stencil_back_z_pass_op))
- glStencilOpSeparate(GL_BACK,
- stencil_back_fail_op,
- stencil_back_z_fail_op,
+ glStencilOpSeparate(GL_BACK, stencil_back_fail_op, stencil_back_z_fail_op,
stencil_back_z_pass_op);
if ((viewport_x != prev_state->viewport_x) ||
(viewport_y != prev_state->viewport_y) ||
@@ -306,23 +292,17 @@ void ContextState::InitState(const ContextState* prev_state) const {
(viewport_height != prev_state->viewport_height))
glViewport(viewport_x, viewport_y, viewport_width, viewport_height);
} else {
- glBlendColor(blend_color_red,
- blend_color_green,
- blend_color_blue,
+ glBlendColor(blend_color_red, blend_color_green, blend_color_blue,
blend_color_alpha);
glBlendEquationSeparate(blend_equation_rgb, blend_equation_alpha);
- glBlendFuncSeparate(
- blend_source_rgb, blend_dest_rgb, blend_source_alpha, blend_dest_alpha);
- glClearColor(color_clear_red,
- color_clear_green,
- color_clear_blue,
+ glBlendFuncSeparate(blend_source_rgb, blend_dest_rgb, blend_source_alpha,
+ blend_dest_alpha);
+ glClearColor(color_clear_red, color_clear_green, color_clear_blue,
color_clear_alpha);
glClearDepth(depth_clear);
glClearStencil(stencil_clear);
- glColorMask(cached_color_mask_red,
- cached_color_mask_green,
- cached_color_mask_blue,
- cached_color_mask_alpha);
+ glColorMask(cached_color_mask_red, cached_color_mask_green,
+ cached_color_mask_blue, cached_color_mask_alpha);
glCullFace(cull_mode);
glDepthFunc(depth_func);
glDepthMask(cached_depth_mask);
@@ -345,19 +325,15 @@ void ContextState::InitState(const ContextState* prev_state) const {
glPolygonOffset(polygon_offset_factor, polygon_offset_units);
glSampleCoverage(sample_coverage_value, sample_coverage_invert);
glScissor(scissor_x, scissor_y, scissor_width, scissor_height);
- glStencilFuncSeparate(
- GL_FRONT, stencil_front_func, stencil_front_ref, stencil_front_mask);
- glStencilFuncSeparate(
- GL_BACK, stencil_back_func, stencil_back_ref, stencil_back_mask);
+ glStencilFuncSeparate(GL_FRONT, stencil_front_func, stencil_front_ref,
+ stencil_front_mask);
+ glStencilFuncSeparate(GL_BACK, stencil_back_func, stencil_back_ref,
+ stencil_back_mask);
glStencilMaskSeparate(GL_FRONT, cached_stencil_front_writemask);
glStencilMaskSeparate(GL_BACK, cached_stencil_back_writemask);
- glStencilOpSeparate(GL_FRONT,
- stencil_front_fail_op,
- stencil_front_z_fail_op,
- stencil_front_z_pass_op);
- glStencilOpSeparate(GL_BACK,
- stencil_back_fail_op,
- stencil_back_z_fail_op,
+ glStencilOpSeparate(GL_FRONT, stencil_front_fail_op,
+ stencil_front_z_fail_op, stencil_front_z_pass_op);
+ glStencilOpSeparate(GL_BACK, stencil_back_fail_op, stencil_back_z_fail_op,
stencil_back_z_pass_op);
glViewport(viewport_x, viewport_y, viewport_width, viewport_height);
}
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 9b028fd494..6905d2af0c 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -56,6 +56,7 @@
#include "gpu/command_buffer/service/shader_translator.h"
#include "gpu/command_buffer/service/shader_translator_cache.h"
#include "gpu/command_buffer/service/texture_manager.h"
+#include "gpu/command_buffer/service/valuebuffer_manager.h"
#include "gpu/command_buffer/service/vertex_array_manager.h"
#include "gpu/command_buffer/service/vertex_attrib_manager.h"
#include "third_party/smhasher/src/City.h"
@@ -727,6 +728,8 @@ class GLES2DecoderImpl : public GLES2Decoder,
void DeleteFramebuffersHelper(GLsizei n, const GLuint* client_ids);
bool GenRenderbuffersHelper(GLsizei n, const GLuint* client_ids);
void DeleteRenderbuffersHelper(GLsizei n, const GLuint* client_ids);
+ bool GenValuebuffersCHROMIUMHelper(GLsizei n, const GLuint* client_ids);
+ void DeleteValuebuffersCHROMIUMHelper(GLsizei n, const GLuint* client_ids);
bool GenQueriesEXTHelper(GLsizei n, const GLuint* client_ids);
void DeleteQueriesEXTHelper(GLsizei n, const GLuint* client_ids);
bool GenVertexArraysOESHelper(GLsizei n, const GLuint* client_ids);
@@ -756,6 +759,10 @@ class GLES2DecoderImpl : public GLES2Decoder,
return group_->framebuffer_manager();
}
+ ValuebufferManager* valuebuffer_manager() {
+ return group_->valuebuffer_manager();
+ }
+
ProgramManager* program_manager() {
return group_->program_manager();
}
@@ -944,6 +951,14 @@ class GLES2DecoderImpl : public GLES2Decoder,
void DoCreateAndConsumeTextureCHROMIUM(GLenum target, const GLbyte* key,
GLuint client_id);
+ bool DoIsValuebufferCHROMIUM(GLuint client_id);
+ void DoBindValueBufferCHROMIUM(GLenum target, GLuint valuebuffer);
+ void DoSubscribeValueCHROMIUM(GLenum target, GLenum subscription);
+ void DoPopulateSubscribedValuesCHROMIUM(GLenum target);
+ void DoUniformValueBufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription);
+
void DoBindTexImage2DCHROMIUM(
GLenum target,
GLint image_id);
@@ -1096,6 +1111,21 @@ class GLES2DecoderImpl : public GLES2Decoder,
renderbuffer_manager()->RemoveRenderbuffer(client_id);
}
+ // Creates a valuebuffer info for the given valuebuffer.
+ void CreateValuebuffer(GLuint client_id) {
+ return valuebuffer_manager()->CreateValuebuffer(client_id);
+ }
+
+ // Gets the valuebuffer info for a given valuebuffer.
+ Valuebuffer* GetValuebuffer(GLuint client_id) {
+ return valuebuffer_manager()->GetValuebuffer(client_id);
+ }
+
+ // Removes the valuebuffer info for the given valuebuffer.
+ void RemoveValuebuffer(GLuint client_id) {
+ valuebuffer_manager()->RemoveValuebuffer(client_id);
+ }
+
// Gets the vertex attrib manager for the given vertex array.
VertexAttribManager* GetVertexAttribManager(GLuint client_id) {
VertexAttribManager* info =
@@ -1177,6 +1207,22 @@ class GLES2DecoderImpl : public GLES2Decoder,
GLenum target,
const char* func_name);
+ // Check if the current valuebuffer exists and is valid. If not generates
+ // the appropriate GL error. Returns true if the current valuebuffer is in
+ // a usable state.
+ bool CheckCurrentValuebuffer(const char* function_name);
+
+ // Check if the current valuebuffer exists and is valiud and that the
+ // value buffer is actually subscribed to the given subscription
+ bool CheckCurrentValuebufferForSubscription(GLenum subscription,
+ const char* function_name);
+
+ // Check if the location can be used for the given subscription target. If not
+ // generates the appropriate GL error. Returns true if the location is usable
+ bool CheckSubscriptionTarget(GLint location,
+ GLenum subscription,
+ const char* function_name);
+
// Checks if the current program exists and is valid. If not generates the
// appropriate GL error. Returns true if the current program is in a usable
// state.
@@ -1193,6 +1239,13 @@ class GLES2DecoderImpl : public GLES2Decoder,
// of the draw operation are the same.
bool CheckDrawingFeedbackLoops();
+ // Checks if |api_type| is valid for the given uniform
+ // If the api type is not valid generates the appropriate GL
+ // error. Returns true if |api_type| is valid for the uniform
+ bool CheckUniformForApiType(const Program::UniformInfo* info,
+ const char* function_name,
+ Program::UniformApiType api_type);
+
// Gets the type of a uniform for a location in the current program. Sets GL
// errors if the current program is not valid. Returns true if the current
// program is valid and the location exists. Adjusts count so it
@@ -2670,6 +2723,7 @@ bool GLES2DecoderImpl::Initialize(
DoBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
DoBindFramebuffer(GL_FRAMEBUFFER, 0);
DoBindRenderbuffer(GL_RENDERBUFFER, 0);
+ DoBindValueBufferCHROMIUM(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, 0);
bool call_gl_clear = !surfaceless_;
#if defined(OS_ANDROID)
@@ -2907,6 +2961,19 @@ bool GLES2DecoderImpl::GenRenderbuffersHelper(
return true;
}
+bool GLES2DecoderImpl::GenValuebuffersCHROMIUMHelper(GLsizei n,
+ const GLuint* client_ids) {
+ for (GLsizei ii = 0; ii < n; ++ii) {
+ if (GetValuebuffer(client_ids[ii])) {
+ return false;
+ }
+ }
+ for (GLsizei ii = 0; ii < n; ++ii) {
+ CreateValuebuffer(client_ids[ii]);
+ }
+ return true;
+}
+
bool GLES2DecoderImpl::GenTexturesHelper(GLsizei n, const GLuint* client_ids) {
for (GLsizei ii = 0; ii < n; ++ii) {
if (GetTexture(client_ids[ii])) {
@@ -2996,6 +3063,20 @@ void GLES2DecoderImpl::DeleteRenderbuffersHelper(
}
}
+void GLES2DecoderImpl::DeleteValuebuffersCHROMIUMHelper(
+ GLsizei n,
+ const GLuint* client_ids) {
+ for (GLsizei ii = 0; ii < n; ++ii) {
+ Valuebuffer* valuebuffer = GetValuebuffer(client_ids[ii]);
+ if (valuebuffer) {
+ if (state_.bound_valuebuffer.get() == valuebuffer) {
+ state_.bound_valuebuffer = NULL;
+ }
+ RemoveValuebuffer(client_ids[ii]);
+ }
+ }
+}
+
void GLES2DecoderImpl::DeleteTexturesHelper(
GLsizei n, const GLuint* client_ids) {
bool supports_separate_framebuffer_binds =
@@ -3425,6 +3506,7 @@ void GLES2DecoderImpl::Destroy(bool have_context) {
framebuffer_state_.bound_read_framebuffer = NULL;
framebuffer_state_.bound_draw_framebuffer = NULL;
state_.bound_renderbuffer = NULL;
+ state_.bound_valuebuffer = NULL;
if (offscreen_saved_color_texture_info_.get()) {
DCHECK(offscreen_target_color_texture_);
@@ -5722,6 +5804,55 @@ void GLES2DecoderImpl::DoTexParameteriv(
"glTexParameteriv", GetErrorState(), texture, pname, *params);
}
+bool GLES2DecoderImpl::CheckCurrentValuebuffer(const char* function_name) {
+ if (!state_.bound_valuebuffer.get()) {
+ // There is no valuebuffer bound
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, function_name,
+ "no valuebuffer in use");
+ return false;
+ }
+ return true;
+}
+
+bool GLES2DecoderImpl::CheckCurrentValuebufferForSubscription(
+ GLenum subscription,
+ const char* function_name) {
+ if (!CheckCurrentValuebuffer(function_name)) {
+ return false;
+ }
+ if (!state_.bound_valuebuffer.get()->IsSubscribed(subscription)) {
+ // The valuebuffer is not subscribed to the target
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, function_name,
+ "valuebuffer is not subscribed");
+ return false;
+ }
+ return true;
+}
+
+bool GLES2DecoderImpl::CheckSubscriptionTarget(GLint location,
+ GLenum subscription,
+ const char* function_name) {
+ if (!CheckCurrentProgramForUniform(location, function_name)) {
+ return false;
+ }
+ GLint real_location = -1;
+ GLint array_index = -1;
+ const Program::UniformInfo* info =
+ state_.current_program->GetUniformInfoByFakeLocation(
+ location, &real_location, &array_index);
+ if (!info) {
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, function_name, "unknown location");
+ return false;
+ }
+ if ((ValuebufferManager::ApiTypeForSubscriptionTarget(subscription) &
+ info->accepts_api_type) == 0) {
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, function_name,
+ "wrong type for subscription");
+ return false;
+ }
+ return true;
+}
+
bool GLES2DecoderImpl::CheckCurrentProgram(const char* function_name) {
if (!state_.current_program.get()) {
// The program does not exist.
@@ -5777,6 +5908,19 @@ bool GLES2DecoderImpl::CheckDrawingFeedbackLoops() {
return false;
}
+bool GLES2DecoderImpl::CheckUniformForApiType(
+ const Program::UniformInfo* info,
+ const char* function_name,
+ Program::UniformApiType api_type) {
+ DCHECK(info);
+ if ((api_type & info->accepts_api_type) == 0) {
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, function_name,
+ "wrong uniform function for type");
+ return false;
+ }
+ return true;
+}
+
bool GLES2DecoderImpl::PrepForSetUniformByLocation(
GLint fake_location,
const char* function_name,
@@ -5800,11 +5944,7 @@ bool GLES2DecoderImpl::PrepForSetUniformByLocation(
GL_INVALID_OPERATION, function_name, "unknown location");
return false;
}
-
- if ((api_type & info->accepts_api_type) == 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_OPERATION, function_name,
- "wrong uniform function for type");
+ if (!CheckUniformForApiType(info, function_name, api_type)) {
return false;
}
if (*count > 1 && !info->is_array) {
@@ -10696,6 +10836,73 @@ void GLES2DecoderImpl::DoCreateAndConsumeTextureCHROMIUM(GLenum target,
texture_ref = texture_manager()->Consume(client_id, texture);
}
+bool GLES2DecoderImpl::DoIsValuebufferCHROMIUM(GLuint client_id) {
+ const Valuebuffer* valuebuffer = GetValuebuffer(client_id);
+ return valuebuffer && valuebuffer->IsValid();
+}
+
+void GLES2DecoderImpl::DoBindValueBufferCHROMIUM(GLenum target,
+ GLuint client_id) {
+ Valuebuffer* valuebuffer = NULL;
+ if (client_id != 0) {
+ valuebuffer = GetValuebuffer(client_id);
+ if (!valuebuffer) {
+ if (!group_->bind_generates_resource()) {
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBindValuebufferCHROMIUM",
+ "id not generated by glBindValuebufferCHROMIUM");
+ return;
+ }
+
+ // It's a new id so make a valuebuffer for it.
+ CreateValuebuffer(client_id);
+ valuebuffer = GetValuebuffer(client_id);
+ }
+ valuebuffer->MarkAsValid();
+ }
+ state_.bound_valuebuffer = valuebuffer;
+}
+
+void GLES2DecoderImpl::DoSubscribeValueCHROMIUM(GLenum target,
+ GLenum subscription) {
+ if (!CheckCurrentValuebuffer("glSubscribeValueCHROMIUM")) {
+ return;
+ }
+ state_.bound_valuebuffer.get()->AddSubscription(subscription);
+}
+
+void GLES2DecoderImpl::DoPopulateSubscribedValuesCHROMIUM(GLenum target) {
+ if (!CheckCurrentValuebuffer("glPopulateSubscribedValuesCHROMIUM")) {
+ return;
+ }
+ valuebuffer_manager()->UpdateValuebufferState(state_.bound_valuebuffer.get());
+}
+
+void GLES2DecoderImpl::DoUniformValueBufferCHROMIUM(GLint location,
+ GLenum target,
+ GLenum subscription) {
+ if (!CheckCurrentValuebufferForSubscription(
+ subscription, "glPopulateSubscribedValuesCHROMIUM")) {
+ return;
+ }
+ if (!CheckSubscriptionTarget(location, subscription,
+ "glPopulateSubscribedValuesCHROMIUM")) {
+ return;
+ }
+ const ValueState* state =
+ state_.bound_valuebuffer.get()->GetState(subscription);
+ if (state) {
+ switch (subscription) {
+ case GL_MOUSE_POSITION_CHROMIUM:
+ DoUniform2iv(location, 1, state->int_value);
+ break;
+ default:
+ NOTREACHED() << "Unhandled uniform subscription target "
+ << subscription;
+ break;
+ }
+ }
+}
+
void GLES2DecoderImpl::DoInsertEventMarkerEXT(
GLsizei length, const GLchar* marker) {
if (!marker) {
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
index 02d914f7c2..ee3bba56d1 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
@@ -143,13 +143,13 @@ error::Error GLES2DecoderImpl::HandleBlendEquationSeparate(
GLenum modeRGB = static_cast<GLenum>(c.modeRGB);
GLenum modeAlpha = static_cast<GLenum>(c.modeAlpha);
if (!validators_->equation.IsValid(modeRGB)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glBlendEquationSeparate", modeRGB, "modeRGB");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendEquationSeparate", modeRGB,
+ "modeRGB");
return error::kNoError;
}
if (!validators_->equation.IsValid(modeAlpha)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glBlendEquationSeparate", modeAlpha, "modeAlpha");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendEquationSeparate", modeAlpha,
+ "modeAlpha");
return error::kNoError;
}
if (state_.blend_equation_rgb != modeRGB ||
@@ -207,13 +207,13 @@ error::Error GLES2DecoderImpl::HandleBlendFuncSeparate(
return error::kNoError;
}
if (!validators_->src_blend_factor.IsValid(srcAlpha)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glBlendFuncSeparate", srcAlpha, "srcAlpha");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", srcAlpha,
+ "srcAlpha");
return error::kNoError;
}
if (!validators_->dst_blend_factor.IsValid(dstAlpha)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glBlendFuncSeparate", dstAlpha, "dstAlpha");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlendFuncSeparate", dstAlpha,
+ "dstAlpha");
return error::kNoError;
}
if (state_.blend_source_rgb != srcRGB || state_.blend_dest_rgb != dstRGB ||
@@ -268,8 +268,8 @@ error::Error GLES2DecoderImpl::HandleCheckFramebufferStatus(
return error::kOutOfBounds;
}
if (!validators_->frame_buffer_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glCheckFramebufferStatus", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glCheckFramebufferStatus", target,
+ "target");
return error::kNoError;
}
*result_dst = DoCheckFramebufferStatus(target);
@@ -384,35 +384,35 @@ error::Error GLES2DecoderImpl::HandleCompressedTexSubImage2D(
const void* data = GetSharedMemoryAs<const void*>(
c.data_shm_id, c.data_shm_offset, data_size);
if (!validators_->texture_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glCompressedTexSubImage2D", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glCompressedTexSubImage2D", target,
+ "target");
return error::kNoError;
}
if (width < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glCompressedTexSubImage2D", "width < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedTexSubImage2D",
+ "width < 0");
return error::kNoError;
}
if (height < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glCompressedTexSubImage2D", "height < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedTexSubImage2D",
+ "height < 0");
return error::kNoError;
}
if (!validators_->compressed_texture_format.IsValid(format)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glCompressedTexSubImage2D", format, "format");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glCompressedTexSubImage2D", format,
+ "format");
return error::kNoError;
}
if (imageSize < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glCompressedTexSubImage2D", "imageSize < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedTexSubImage2D",
+ "imageSize < 0");
return error::kNoError;
}
if (data == NULL) {
return error::kOutOfBounds;
}
- DoCompressedTexSubImage2D(
- target, level, xoffset, yoffset, width, height, format, imageSize, data);
+ DoCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height,
+ format, imageSize, data);
return error::kNoError;
}
@@ -439,8 +439,8 @@ error::Error GLES2DecoderImpl::HandleCopyTexImage2D(
return error::kNoError;
}
if (!validators_->texture_internal_format.IsValid(internalformat)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glCopyTexImage2D", internalformat, "internalformat");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyTexImage2D", internalformat,
+ "internalformat");
return error::kNoError;
}
if (width < 0) {
@@ -750,22 +750,22 @@ error::Error GLES2DecoderImpl::HandleFramebufferRenderbuffer(
GLenum renderbuffertarget = static_cast<GLenum>(c.renderbuffertarget);
GLuint renderbuffer = c.renderbuffer;
if (!validators_->frame_buffer_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glFramebufferRenderbuffer", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferRenderbuffer", target,
+ "target");
return error::kNoError;
}
if (!validators_->attachment.IsValid(attachment)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glFramebufferRenderbuffer", attachment, "attachment");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferRenderbuffer", attachment,
+ "attachment");
return error::kNoError;
}
if (!validators_->render_buffer_target.IsValid(renderbuffertarget)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glFramebufferRenderbuffer", renderbuffertarget, "renderbuffertarget");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferRenderbuffer",
+ renderbuffertarget, "renderbuffertarget");
return error::kNoError;
}
- DoFramebufferRenderbuffer(
- target, attachment, renderbuffertarget, renderbuffer);
+ DoFramebufferRenderbuffer(target, attachment, renderbuffertarget,
+ renderbuffer);
return error::kNoError;
}
@@ -785,13 +785,13 @@ error::Error GLES2DecoderImpl::HandleFramebufferTexture2D(
return error::kNoError;
}
if (!validators_->attachment.IsValid(attachment)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glFramebufferTexture2D", attachment, "attachment");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", attachment,
+ "attachment");
return error::kNoError;
}
if (!validators_->texture_target.IsValid(textarget)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glFramebufferTexture2D", textarget, "textarget");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", textarget,
+ "textarget");
return error::kNoError;
}
DoFramebufferTexture2D(target, attachment, textarget, texture, level);
@@ -1051,18 +1051,18 @@ error::Error GLES2DecoderImpl::HandleGetFramebufferAttachmentParameteriv(
c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
GLint* params = result ? result->GetData() : NULL;
if (!validators_->frame_buffer_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glGetFramebufferAttachmentParameteriv", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFramebufferAttachmentParameteriv",
+ target, "target");
return error::kNoError;
}
if (!validators_->attachment.IsValid(attachment)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glGetFramebufferAttachmentParameteriv", attachment, "attachment");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFramebufferAttachmentParameteriv",
+ attachment, "attachment");
return error::kNoError;
}
if (!validators_->frame_buffer_parameter.IsValid(pname)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glGetFramebufferAttachmentParameteriv", pname, "pname");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetFramebufferAttachmentParameteriv",
+ pname, "pname");
return error::kNoError;
}
if (params == NULL) {
@@ -1167,13 +1167,13 @@ error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv(
c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
GLint* params = result ? result->GetData() : NULL;
if (!validators_->render_buffer_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glGetRenderbufferParameteriv", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetRenderbufferParameteriv", target,
+ "target");
return error::kNoError;
}
if (!validators_->render_buffer_parameter.IsValid(pname)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glGetRenderbufferParameteriv", pname, "pname");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetRenderbufferParameteriv", pname,
+ "pname");
return error::kNoError;
}
if (params == NULL) {
@@ -1599,8 +1599,8 @@ error::Error GLES2DecoderImpl::HandleRenderbufferStorage(
return error::kNoError;
}
if (!validators_->render_buffer_format.IsValid(internalformat)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glRenderbufferStorage", internalformat, "internalformat");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorage", internalformat,
+ "internalformat");
return error::kNoError;
}
if (width < 0) {
@@ -2549,8 +2549,7 @@ error::Error GLES2DecoderImpl::HandleBlitFramebufferCHROMIUM(
*static_cast<const gles2::cmds::BlitFramebufferCHROMIUM*>(cmd_data);
(void)c;
if (!features().chromium_framebuffer_multisample) {
- LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
- "glBlitFramebufferCHROMIUM",
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBlitFramebufferCHROMIUM",
"function not available");
return error::kNoError;
}
@@ -2573,12 +2572,12 @@ error::Error GLES2DecoderImpl::HandleBlitFramebufferCHROMIUM(
GLbitfield mask = static_cast<GLbitfield>(c.mask);
GLenum filter = static_cast<GLenum>(c.filter);
if (!validators_->blit_filter.IsValid(filter)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glBlitFramebufferCHROMIUM", filter, "filter");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glBlitFramebufferCHROMIUM", filter,
+ "filter");
return error::kNoError;
}
- DoBlitFramebufferCHROMIUM(
- srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+ DoBlitFramebufferCHROMIUM(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1,
+ dstY1, mask, filter);
return error::kNoError;
}
@@ -2602,8 +2601,8 @@ error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleCHROMIUM(
GLsizei width = static_cast<GLsizei>(c.width);
GLsizei height = static_cast<GLsizei>(c.height);
if (!validators_->render_buffer_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glRenderbufferStorageMultisampleCHROMIUM", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleCHROMIUM",
+ target, "target");
return error::kNoError;
}
if (samples < 0) {
@@ -2614,14 +2613,12 @@ error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleCHROMIUM(
}
if (!validators_->render_buffer_format.IsValid(internalformat)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleCHROMIUM",
- internalformat,
- "internalformat");
+ internalformat, "internalformat");
return error::kNoError;
}
if (width < 0) {
LOCAL_SET_GL_ERROR(GL_INVALID_VALUE,
- "glRenderbufferStorageMultisampleCHROMIUM",
- "width < 0");
+ "glRenderbufferStorageMultisampleCHROMIUM", "width < 0");
return error::kNoError;
}
if (height < 0) {
@@ -2630,8 +2627,8 @@ error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleCHROMIUM(
"height < 0");
return error::kNoError;
}
- DoRenderbufferStorageMultisampleCHROMIUM(
- target, samples, internalformat, width, height);
+ DoRenderbufferStorageMultisampleCHROMIUM(target, samples, internalformat,
+ width, height);
return error::kNoError;
}
@@ -2655,33 +2652,32 @@ error::Error GLES2DecoderImpl::HandleRenderbufferStorageMultisampleEXT(
GLsizei width = static_cast<GLsizei>(c.width);
GLsizei height = static_cast<GLsizei>(c.height);
if (!validators_->render_buffer_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glRenderbufferStorageMultisampleEXT", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleEXT",
+ target, "target");
return error::kNoError;
}
if (samples < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+ "samples < 0");
return error::kNoError;
}
if (!validators_->render_buffer_format.IsValid(internalformat)) {
LOCAL_SET_GL_ERROR_INVALID_ENUM("glRenderbufferStorageMultisampleEXT",
- internalformat,
- "internalformat");
+ internalformat, "internalformat");
return error::kNoError;
}
if (width < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+ "width < 0");
return error::kNoError;
}
if (height < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT",
+ "height < 0");
return error::kNoError;
}
- DoRenderbufferStorageMultisampleEXT(
- target, samples, internalformat, width, height);
+ DoRenderbufferStorageMultisampleEXT(target, samples, internalformat, width,
+ height);
return error::kNoError;
}
@@ -2706,28 +2702,27 @@ error::Error GLES2DecoderImpl::HandleFramebufferTexture2DMultisampleEXT(
GLint level = static_cast<GLint>(c.level);
GLsizei samples = static_cast<GLsizei>(c.samples);
if (!validators_->frame_buffer_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glFramebufferTexture2DMultisampleEXT", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2DMultisampleEXT",
+ target, "target");
return error::kNoError;
}
if (!validators_->attachment.IsValid(attachment)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glFramebufferTexture2DMultisampleEXT", attachment, "attachment");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2DMultisampleEXT",
+ attachment, "attachment");
return error::kNoError;
}
if (!validators_->texture_target.IsValid(textarget)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glFramebufferTexture2DMultisampleEXT", textarget, "textarget");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2DMultisampleEXT",
+ textarget, "textarget");
return error::kNoError;
}
if (samples < 0) {
- LOCAL_SET_GL_ERROR(GL_INVALID_VALUE,
- "glFramebufferTexture2DMultisampleEXT",
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glFramebufferTexture2DMultisampleEXT",
"samples < 0");
return error::kNoError;
}
- DoFramebufferTexture2DMultisample(
- target, attachment, textarget, texture, level, samples);
+ DoFramebufferTexture2DMultisample(target, attachment, textarget, texture,
+ level, samples);
return error::kNoError;
}
@@ -2751,8 +2746,8 @@ error::Error GLES2DecoderImpl::HandleTexStorage2DEXT(
return error::kNoError;
}
if (!validators_->texture_internal_format_storage.IsValid(internalFormat)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glTexStorage2DEXT", internalFormat, "internalFormat");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexStorage2DEXT", internalFormat,
+ "internalFormat");
return error::kNoError;
}
if (width < 0) {
@@ -2956,13 +2951,13 @@ error::Error GLES2DecoderImpl::HandleGetMaxValueInBufferCHROMIUM(
return error::kOutOfBounds;
}
if (count < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM", "count < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glGetMaxValueInBufferCHROMIUM",
+ "count < 0");
return error::kNoError;
}
if (!validators_->get_max_index_type.IsValid(type)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glGetMaxValueInBufferCHROMIUM", type, "type");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glGetMaxValueInBufferCHROMIUM", type,
+ "type");
return error::kNoError;
}
*result_dst = DoGetMaxValueInBufferCHROMIUM(buffer_id, count, type, offset);
@@ -2981,18 +2976,18 @@ error::Error GLES2DecoderImpl::HandleTexImageIOSurface2DCHROMIUM(
GLuint ioSurfaceId = static_cast<GLuint>(c.ioSurfaceId);
GLuint plane = static_cast<GLuint>(c.plane);
if (!validators_->texture_bind_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glTexImageIOSurface2DCHROMIUM", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexImageIOSurface2DCHROMIUM", target,
+ "target");
return error::kNoError;
}
if (width < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM",
+ "width < 0");
return error::kNoError;
}
if (height < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM",
+ "height < 0");
return error::kNoError;
}
DoTexImageIOSurface2DCHROMIUM(target, width, height, ioSurfaceId, plane);
@@ -3012,18 +3007,17 @@ error::Error GLES2DecoderImpl::HandleCopyTextureCHROMIUM(
GLint internalformat = static_cast<GLint>(c.internalformat);
GLenum dest_type = static_cast<GLenum>(c.dest_type);
if (!validators_->texture_internal_format.IsValid(internalformat)) {
- LOCAL_SET_GL_ERROR(GL_INVALID_VALUE,
- "glCopyTextureCHROMIUM",
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyTextureCHROMIUM",
"internalformat GL_INVALID_VALUE");
return error::kNoError;
}
if (!validators_->pixel_type.IsValid(dest_type)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glCopyTextureCHROMIUM", dest_type, "dest_type");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glCopyTextureCHROMIUM", dest_type,
+ "dest_type");
return error::kNoError;
}
- DoCopyTextureCHROMIUM(
- target, source_id, dest_id, level, internalformat, dest_type);
+ DoCopyTextureCHROMIUM(target, source_id, dest_id, level, internalformat,
+ dest_type);
return error::kNoError;
}
@@ -3045,8 +3039,8 @@ error::Error GLES2DecoderImpl::HandleProduceTextureCHROMIUMImmediate(
const GLbyte* mailbox =
GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size);
if (!validators_->texture_bind_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glProduceTextureCHROMIUM", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glProduceTextureCHROMIUM", target,
+ "target");
return error::kNoError;
}
if (mailbox == NULL) {
@@ -3075,8 +3069,8 @@ error::Error GLES2DecoderImpl::HandleProduceTextureDirectCHROMIUMImmediate(
const GLbyte* mailbox =
GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size);
if (!validators_->texture_bind_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glProduceTextureDirectCHROMIUM", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glProduceTextureDirectCHROMIUM", target,
+ "target");
return error::kNoError;
}
if (mailbox == NULL) {
@@ -3104,8 +3098,8 @@ error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate(
const GLbyte* mailbox =
GetImmediateDataAs<const GLbyte*>(c, data_size, immediate_data_size);
if (!validators_->texture_bind_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glConsumeTextureCHROMIUM", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glConsumeTextureCHROMIUM", target,
+ "target");
return error::kNoError;
}
if (mailbox == NULL) {
@@ -3115,6 +3109,146 @@ error::Error GLES2DecoderImpl::HandleConsumeTextureCHROMIUMImmediate(
return error::kNoError;
}
+error::Error GLES2DecoderImpl::HandleGenValuebuffersCHROMIUMImmediate(
+ uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::GenValuebuffersCHROMIUMImmediate& c =
+ *static_cast<const gles2::cmds::GenValuebuffersCHROMIUMImmediate*>(
+ cmd_data);
+ (void)c;
+ GLsizei n = static_cast<GLsizei>(c.n);
+ uint32_t data_size;
+ if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
+ return error::kOutOfBounds;
+ }
+ GLuint* buffers =
+ GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
+ if (buffers == NULL) {
+ return error::kOutOfBounds;
+ }
+ if (!GenValuebuffersCHROMIUMHelper(n, buffers)) {
+ return error::kInvalidArguments;
+ }
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandleDeleteValuebuffersCHROMIUMImmediate(
+ uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::DeleteValuebuffersCHROMIUMImmediate& c =
+ *static_cast<const gles2::cmds::DeleteValuebuffersCHROMIUMImmediate*>(
+ cmd_data);
+ (void)c;
+ GLsizei n = static_cast<GLsizei>(c.n);
+ uint32_t data_size;
+ if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
+ return error::kOutOfBounds;
+ }
+ const GLuint* valuebuffers =
+ GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
+ if (valuebuffers == NULL) {
+ return error::kOutOfBounds;
+ }
+ DeleteValuebuffersCHROMIUMHelper(n, valuebuffers);
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandleIsValuebufferCHROMIUM(
+ uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::IsValuebufferCHROMIUM& c =
+ *static_cast<const gles2::cmds::IsValuebufferCHROMIUM*>(cmd_data);
+ (void)c;
+ GLuint valuebuffer = c.valuebuffer;
+ typedef cmds::IsValuebufferCHROMIUM::Result Result;
+ Result* result_dst = GetSharedMemoryAs<Result*>(
+ c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
+ if (!result_dst) {
+ return error::kOutOfBounds;
+ }
+ *result_dst = DoIsValuebufferCHROMIUM(valuebuffer);
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandleBindValuebufferCHROMIUM(
+ uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::BindValuebufferCHROMIUM& c =
+ *static_cast<const gles2::cmds::BindValuebufferCHROMIUM*>(cmd_data);
+ (void)c;
+ GLenum target = static_cast<GLenum>(c.target);
+ GLuint valuebuffer = c.valuebuffer;
+ if (!validators_->value_buffer_target.IsValid(target)) {
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindValuebufferCHROMIUM", target,
+ "target");
+ return error::kNoError;
+ }
+ DoBindValueBufferCHROMIUM(target, valuebuffer);
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandleSubscribeValueCHROMIUM(
+ uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::SubscribeValueCHROMIUM& c =
+ *static_cast<const gles2::cmds::SubscribeValueCHROMIUM*>(cmd_data);
+ (void)c;
+ GLenum target = static_cast<GLenum>(c.target);
+ GLenum subscription = static_cast<GLenum>(c.subscription);
+ if (!validators_->value_buffer_target.IsValid(target)) {
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glSubscribeValueCHROMIUM", target,
+ "target");
+ return error::kNoError;
+ }
+ if (!validators_->subscription_target.IsValid(subscription)) {
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glSubscribeValueCHROMIUM", subscription,
+ "subscription");
+ return error::kNoError;
+ }
+ DoSubscribeValueCHROMIUM(target, subscription);
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandlePopulateSubscribedValuesCHROMIUM(
+ uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::PopulateSubscribedValuesCHROMIUM& c =
+ *static_cast<const gles2::cmds::PopulateSubscribedValuesCHROMIUM*>(
+ cmd_data);
+ (void)c;
+ GLenum target = static_cast<GLenum>(c.target);
+ if (!validators_->value_buffer_target.IsValid(target)) {
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glPopulateSubscribedValuesCHROMIUM",
+ target, "target");
+ return error::kNoError;
+ }
+ DoPopulateSubscribedValuesCHROMIUM(target);
+ return error::kNoError;
+}
+
+error::Error GLES2DecoderImpl::HandleUniformValuebufferCHROMIUM(
+ uint32_t immediate_data_size,
+ const void* cmd_data) {
+ const gles2::cmds::UniformValuebufferCHROMIUM& c =
+ *static_cast<const gles2::cmds::UniformValuebufferCHROMIUM*>(cmd_data);
+ (void)c;
+ GLint location = static_cast<GLint>(c.location);
+ GLenum target = static_cast<GLenum>(c.target);
+ GLenum subscription = static_cast<GLenum>(c.subscription);
+ if (!validators_->value_buffer_target.IsValid(target)) {
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glUniformValuebufferCHROMIUM", target,
+ "target");
+ return error::kNoError;
+ }
+ if (!validators_->subscription_target.IsValid(subscription)) {
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glUniformValuebufferCHROMIUM",
+ subscription, "subscription");
+ return error::kNoError;
+ }
+ DoUniformValueBufferCHROMIUM(location, target, subscription);
+ return error::kNoError;
+}
+
error::Error GLES2DecoderImpl::HandleBindTexImage2DCHROMIUM(
uint32_t immediate_data_size,
const void* cmd_data) {
@@ -3124,8 +3258,8 @@ error::Error GLES2DecoderImpl::HandleBindTexImage2DCHROMIUM(
GLenum target = static_cast<GLenum>(c.target);
GLint imageId = static_cast<GLint>(c.imageId);
if (!validators_->texture_bind_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glBindTexImage2DCHROMIUM", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glBindTexImage2DCHROMIUM", target,
+ "target");
return error::kNoError;
}
DoBindTexImage2DCHROMIUM(target, imageId);
@@ -3141,8 +3275,8 @@ error::Error GLES2DecoderImpl::HandleReleaseTexImage2DCHROMIUM(
GLenum target = static_cast<GLenum>(c.target);
GLint imageId = static_cast<GLint>(c.imageId);
if (!validators_->texture_bind_target.IsValid(target)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glReleaseTexImage2DCHROMIUM", target, "target");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glReleaseTexImage2DCHROMIUM", target,
+ "target");
return error::kNoError;
}
DoReleaseTexImage2DCHROMIUM(target, imageId);
@@ -3167,8 +3301,7 @@ error::Error GLES2DecoderImpl::HandleDiscardFramebufferEXTImmediate(
cmd_data);
(void)c;
if (!features().ext_discard_framebuffer) {
- LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
- "glDiscardFramebufferEXT",
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glDiscardFramebufferEXT",
"function not available");
return error::kNoError;
}
@@ -3185,8 +3318,8 @@ error::Error GLES2DecoderImpl::HandleDiscardFramebufferEXTImmediate(
const GLenum* attachments =
GetImmediateDataAs<const GLenum*>(c, data_size, immediate_data_size);
if (count < 0) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_VALUE, "glDiscardFramebufferEXT", "count < 0");
+ LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glDiscardFramebufferEXT",
+ "count < 0");
return error::kNoError;
}
if (attachments == NULL) {
@@ -3205,8 +3338,8 @@ error::Error GLES2DecoderImpl::HandleLoseContextCHROMIUM(
GLenum current = static_cast<GLenum>(c.current);
GLenum other = static_cast<GLenum>(c.other);
if (!validators_->reset_status.IsValid(current)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glLoseContextCHROMIUM", current, "current");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glLoseContextCHROMIUM", current,
+ "current");
return error::kNoError;
}
if (!validators_->reset_status.IsValid(other)) {
@@ -3251,8 +3384,7 @@ error::Error GLES2DecoderImpl::HandleMatrixLoadfCHROMIUMImmediate(
*static_cast<const gles2::cmds::MatrixLoadfCHROMIUMImmediate*>(cmd_data);
(void)c;
if (!features().chromium_path_rendering) {
- LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
- "glMatrixLoadfCHROMIUM",
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glMatrixLoadfCHROMIUM",
"function not available");
return error::kNoError;
}
@@ -3268,8 +3400,8 @@ error::Error GLES2DecoderImpl::HandleMatrixLoadfCHROMIUMImmediate(
const GLfloat* m =
GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
if (!validators_->matrix_mode.IsValid(matrixMode)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glMatrixLoadfCHROMIUM", matrixMode, "matrixMode");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glMatrixLoadfCHROMIUM", matrixMode,
+ "matrixMode");
return error::kNoError;
}
if (m == NULL) {
@@ -3286,16 +3418,15 @@ error::Error GLES2DecoderImpl::HandleMatrixLoadIdentityCHROMIUM(
*static_cast<const gles2::cmds::MatrixLoadIdentityCHROMIUM*>(cmd_data);
(void)c;
if (!features().chromium_path_rendering) {
- LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
- "glMatrixLoadIdentityCHROMIUM",
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glMatrixLoadIdentityCHROMIUM",
"function not available");
return error::kNoError;
}
GLenum matrixMode = static_cast<GLenum>(c.matrixMode);
if (!validators_->matrix_mode.IsValid(matrixMode)) {
- LOCAL_SET_GL_ERROR_INVALID_ENUM(
- "glMatrixLoadIdentityCHROMIUM", matrixMode, "matrixMode");
+ LOCAL_SET_GL_ERROR_INVALID_ENUM("glMatrixLoadIdentityCHROMIUM", matrixMode,
+ "matrixMode");
return error::kNoError;
}
DoMatrixLoadIdentityCHROMIUM(matrixMode);
@@ -3309,8 +3440,8 @@ error::Error GLES2DecoderImpl::HandleBlendBarrierKHR(
*static_cast<const gles2::cmds::BlendBarrierKHR*>(cmd_data);
(void)c;
if (!features().blend_equation_advanced) {
- LOCAL_SET_GL_ERROR(
- GL_INVALID_OPERATION, "glBlendBarrierKHR", "function not available");
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBlendBarrierKHR",
+ "function not available");
return error::kNoError;
}
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h
index b60bd3e4aa..6fe923c119 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h
@@ -662,16 +662,12 @@ TEST_P(GLES2DecoderTest1, FlushValidArgs) {
}
TEST_P(GLES2DecoderTest1, FramebufferRenderbufferValidArgs) {
- EXPECT_CALL(*gl_,
- FramebufferRenderbufferEXT(GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_RENDERBUFFER,
- kServiceRenderbufferId));
+ EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(
+ GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
+ kServiceRenderbufferId));
SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(true);
cmds::FramebufferRenderbuffer cmd;
- cmd.Init(GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_RENDERBUFFER,
+ cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
client_renderbuffer_id_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
@@ -681,9 +677,7 @@ TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_0) {
EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
cmds::FramebufferRenderbuffer cmd;
- cmd.Init(GL_DRAW_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_RENDERBUFFER,
+ cmd.Init(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
client_renderbuffer_id_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -693,9 +687,7 @@ TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs0_1) {
EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
cmds::FramebufferRenderbuffer cmd;
- cmd.Init(GL_READ_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_RENDERBUFFER,
+ cmd.Init(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
client_renderbuffer_id_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -705,9 +697,7 @@ TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs2_0) {
EXPECT_CALL(*gl_, FramebufferRenderbufferEXT(_, _, _, _)).Times(0);
SpecializedSetup<cmds::FramebufferRenderbuffer, 0>(false);
cmds::FramebufferRenderbuffer cmd;
- cmd.Init(GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_FRAMEBUFFER,
+ cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER,
client_renderbuffer_id_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -715,15 +705,12 @@ TEST_P(GLES2DecoderTest1, FramebufferRenderbufferInvalidArgs2_0) {
TEST_P(GLES2DecoderTest1, FramebufferTexture2DValidArgs) {
EXPECT_CALL(*gl_,
- FramebufferTexture2DEXT(GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_TEXTURE_2D,
- kServiceTextureId,
- 0));
+ FramebufferTexture2DEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_TEXTURE_2D, kServiceTextureId, 0));
SpecializedSetup<cmds::FramebufferTexture2D, 0>(true);
cmds::FramebufferTexture2D cmd;
- cmd.Init(
- GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, client_texture_id_);
+ cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
+ client_texture_id_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
@@ -732,9 +719,7 @@ TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_0) {
EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
cmds::FramebufferTexture2D cmd;
- cmd.Init(GL_DRAW_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_TEXTURE_2D,
+ cmd.Init(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
client_texture_id_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -744,9 +729,7 @@ TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs0_1) {
EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
cmds::FramebufferTexture2D cmd;
- cmd.Init(GL_READ_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_TEXTURE_2D,
+ cmd.Init(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
client_texture_id_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -756,9 +739,7 @@ TEST_P(GLES2DecoderTest1, FramebufferTexture2DInvalidArgs2_0) {
EXPECT_CALL(*gl_, FramebufferTexture2DEXT(_, _, _, _, _)).Times(0);
SpecializedSetup<cmds::FramebufferTexture2D, 0>(false);
cmds::FramebufferTexture2D cmd;
- cmd.Init(GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_PROXY_TEXTURE_CUBE_MAP,
+ cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_PROXY_TEXTURE_CUBE_MAP,
client_texture_id_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
@@ -958,9 +939,7 @@ TEST_P(GLES2DecoderTest1, GetBufferParameterivValidArgs) {
Result* result = static_cast<Result*>(shared_memory_address_);
result->size = 0;
cmds::GetBufferParameteriv cmd;
- cmd.Init(GL_ARRAY_BUFFER,
- GL_BUFFER_SIZE,
- shared_memory_id_,
+ cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_BUFFER_SIZE),
@@ -975,9 +954,7 @@ TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs0_0) {
static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetBufferParameteriv cmd;
- cmd.Init(GL_RENDERBUFFER,
- GL_BUFFER_SIZE,
- shared_memory_id_,
+ cmd.Init(GL_RENDERBUFFER, GL_BUFFER_SIZE, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -991,9 +968,7 @@ TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs1_0) {
static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetBufferParameteriv cmd;
- cmd.Init(GL_ARRAY_BUFFER,
- GL_PIXEL_PACK_BUFFER,
- shared_memory_id_,
+ cmd.Init(GL_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1019,9 +994,7 @@ TEST_P(GLES2DecoderTest1, GetBufferParameterivInvalidArgs2_1) {
static_cast<cmds::GetBufferParameteriv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetBufferParameteriv cmd;
- cmd.Init(GL_ARRAY_BUFFER,
- GL_BUFFER_SIZE,
- shared_memory_id_,
+ cmd.Init(GL_ARRAY_BUFFER, GL_BUFFER_SIZE, shared_memory_id_,
kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1111,16 +1084,12 @@ TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivValidArgs) {
Result* result = static_cast<Result*>(shared_memory_address_);
EXPECT_CALL(*gl_,
GetFramebufferAttachmentParameterivEXT(
- GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
- result->GetData()));
+ GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, result->GetData()));
result->size = 0;
cmds::GetFramebufferAttachmentParameteriv cmd;
- cmd.Init(GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
- shared_memory_id_,
+ cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
@@ -1138,10 +1107,8 @@ TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_0) {
shared_memory_address_);
result->size = 0;
cmds::GetFramebufferAttachmentParameteriv cmd;
- cmd.Init(GL_DRAW_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
- shared_memory_id_,
+ cmd.Init(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1157,10 +1124,8 @@ TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs0_1) {
shared_memory_address_);
result->size = 0;
cmds::GetFramebufferAttachmentParameteriv cmd;
- cmd.Init(GL_READ_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
- shared_memory_id_,
+ cmd.Init(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1176,11 +1141,8 @@ TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_0) {
shared_memory_address_);
result->size = 0;
cmds::GetFramebufferAttachmentParameteriv cmd;
- cmd.Init(GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
- kInvalidSharedMemoryId,
- 0);
+ cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, kInvalidSharedMemoryId, 0);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
}
@@ -1194,10 +1156,8 @@ TEST_P(GLES2DecoderTest1, GetFramebufferAttachmentParameterivInvalidArgs3_1) {
shared_memory_address_);
result->size = 0;
cmds::GetFramebufferAttachmentParameteriv cmd;
- cmd.Init(GL_FRAMEBUFFER,
- GL_COLOR_ATTACHMENT0,
- GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
- shared_memory_id_,
+ cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+ GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, shared_memory_id_,
kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1264,9 +1224,7 @@ TEST_P(GLES2DecoderTest1, GetProgramivValidArgs) {
Result* result = static_cast<Result*>(shared_memory_address_);
result->size = 0;
cmds::GetProgramiv cmd;
- cmd.Init(client_program_id_,
- GL_DELETE_STATUS,
- shared_memory_id_,
+ cmd.Init(client_program_id_, GL_DELETE_STATUS, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DELETE_STATUS),
@@ -1293,9 +1251,7 @@ TEST_P(GLES2DecoderTest1, GetProgramivInvalidArgs2_1) {
static_cast<cmds::GetProgramiv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetProgramiv cmd;
- cmd.Init(client_program_id_,
- GL_DELETE_STATUS,
- shared_memory_id_,
+ cmd.Init(client_program_id_, GL_DELETE_STATUS, shared_memory_id_,
kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1334,14 +1290,11 @@ TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivValidArgs) {
typedef cmds::GetRenderbufferParameteriv::Result Result;
Result* result = static_cast<Result*>(shared_memory_address_);
EXPECT_CALL(
- *gl_,
- GetRenderbufferParameterivEXT(
- GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, result->GetData()));
+ *gl_, GetRenderbufferParameterivEXT(
+ GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, result->GetData()));
result->size = 0;
cmds::GetRenderbufferParameteriv cmd;
- cmd.Init(GL_RENDERBUFFER,
- GL_RENDERBUFFER_RED_SIZE,
- shared_memory_id_,
+ cmd.Init(GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
@@ -1358,9 +1311,7 @@ TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs0_0) {
shared_memory_address_);
result->size = 0;
cmds::GetRenderbufferParameteriv cmd;
- cmd.Init(GL_FRAMEBUFFER,
- GL_RENDERBUFFER_RED_SIZE,
- shared_memory_id_,
+ cmd.Init(GL_FRAMEBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1375,8 +1326,8 @@ TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_0) {
shared_memory_address_);
result->size = 0;
cmds::GetRenderbufferParameteriv cmd;
- cmd.Init(
- GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, kInvalidSharedMemoryId, 0);
+ cmd.Init(GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, kInvalidSharedMemoryId,
+ 0);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
}
@@ -1389,9 +1340,7 @@ TEST_P(GLES2DecoderTest1, GetRenderbufferParameterivInvalidArgs2_1) {
shared_memory_address_);
result->size = 0;
cmds::GetRenderbufferParameteriv cmd;
- cmd.Init(GL_RENDERBUFFER,
- GL_RENDERBUFFER_RED_SIZE,
- shared_memory_id_,
+ cmd.Init(GL_RENDERBUFFER, GL_RENDERBUFFER_RED_SIZE, shared_memory_id_,
kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1409,9 +1358,7 @@ TEST_P(GLES2DecoderTest1, GetShaderivValidArgs) {
GetShaderiv(kServiceShaderId, GL_SHADER_TYPE, result->GetData()));
result->size = 0;
cmds::GetShaderiv cmd;
- cmd.Init(client_shader_id_,
- GL_SHADER_TYPE,
- shared_memory_id_,
+ cmd.Init(client_shader_id_, GL_SHADER_TYPE, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_SHADER_TYPE),
@@ -1438,9 +1385,7 @@ TEST_P(GLES2DecoderTest1, GetShaderivInvalidArgs2_1) {
static_cast<cmds::GetShaderiv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetShaderiv cmd;
- cmd.Init(client_shader_id_,
- GL_SHADER_TYPE,
- shared_memory_id_,
+ cmd.Init(client_shader_id_, GL_SHADER_TYPE, shared_memory_id_,
kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1459,14 +1404,11 @@ TEST_P(GLES2DecoderTest1, GetTexParameterfvValidArgs) {
SpecializedSetup<cmds::GetTexParameterfv, 0>(true);
typedef cmds::GetTexParameterfv::Result Result;
Result* result = static_cast<Result*>(shared_memory_address_);
- EXPECT_CALL(*gl_,
- GetTexParameterfv(
- GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData()));
+ EXPECT_CALL(*gl_, GetTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ result->GetData()));
result->size = 0;
cmds::GetTexParameterfv cmd;
- cmd.Init(GL_TEXTURE_2D,
- GL_TEXTURE_MAG_FILTER,
- shared_memory_id_,
+ cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(
@@ -1482,9 +1424,7 @@ TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs0_0) {
static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetTexParameterfv cmd;
- cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP,
- GL_TEXTURE_MAG_FILTER,
- shared_memory_id_,
+ cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1498,9 +1438,7 @@ TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs1_0) {
static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetTexParameterfv cmd;
- cmd.Init(GL_TEXTURE_2D,
- GL_GENERATE_MIPMAP,
- shared_memory_id_,
+ cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1526,9 +1464,7 @@ TEST_P(GLES2DecoderTest1, GetTexParameterfvInvalidArgs2_1) {
static_cast<cmds::GetTexParameterfv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetTexParameterfv cmd;
- cmd.Init(GL_TEXTURE_2D,
- GL_TEXTURE_MAG_FILTER,
- shared_memory_id_,
+ cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1542,14 +1478,11 @@ TEST_P(GLES2DecoderTest1, GetTexParameterivValidArgs) {
SpecializedSetup<cmds::GetTexParameteriv, 0>(true);
typedef cmds::GetTexParameteriv::Result Result;
Result* result = static_cast<Result*>(shared_memory_address_);
- EXPECT_CALL(*gl_,
- GetTexParameteriv(
- GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, result->GetData()));
+ EXPECT_CALL(*gl_, GetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ result->GetData()));
result->size = 0;
cmds::GetTexParameteriv cmd;
- cmd.Init(GL_TEXTURE_2D,
- GL_TEXTURE_MAG_FILTER,
- shared_memory_id_,
+ cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(
@@ -1565,9 +1498,7 @@ TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs0_0) {
static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetTexParameteriv cmd;
- cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP,
- GL_TEXTURE_MAG_FILTER,
- shared_memory_id_,
+ cmd.Init(GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1581,9 +1512,7 @@ TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs1_0) {
static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetTexParameteriv cmd;
- cmd.Init(GL_TEXTURE_2D,
- GL_GENERATE_MIPMAP,
- shared_memory_id_,
+ cmd.Init(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1609,9 +1538,7 @@ TEST_P(GLES2DecoderTest1, GetTexParameterivInvalidArgs2_1) {
static_cast<cmds::GetTexParameteriv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetTexParameteriv cmd;
- cmd.Init(GL_TEXTURE_2D,
- GL_TEXTURE_MAG_FILTER,
- shared_memory_id_,
+ cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, shared_memory_id_,
kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1628,9 +1555,7 @@ TEST_P(GLES2DecoderTest1, GetVertexAttribfvValidArgs) {
Result* result = static_cast<Result*>(shared_memory_address_);
result->size = 0;
cmds::GetVertexAttribfv cmd;
- cmd.Init(1,
- GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
- shared_memory_id_,
+ cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
@@ -1658,9 +1583,7 @@ TEST_P(GLES2DecoderTest1, GetVertexAttribfvInvalidArgs2_1) {
static_cast<cmds::GetVertexAttribfv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetVertexAttribfv cmd;
- cmd.Init(1,
- GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
- shared_memory_id_,
+ cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1672,9 +1595,7 @@ TEST_P(GLES2DecoderTest1, GetVertexAttribivValidArgs) {
Result* result = static_cast<Result*>(shared_memory_address_);
result->size = 0;
cmds::GetVertexAttribiv cmd;
- cmd.Init(1,
- GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
- shared_memory_id_,
+ cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(
@@ -1702,9 +1623,7 @@ TEST_P(GLES2DecoderTest1, GetVertexAttribivInvalidArgs2_1) {
static_cast<cmds::GetVertexAttribiv::Result*>(shared_memory_address_);
result->size = 0;
cmds::GetVertexAttribiv cmd;
- cmd.Init(1,
- GL_VERTEX_ATTRIB_ARRAY_NORMALIZED,
- shared_memory_id_,
+ cmd.Init(1, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, shared_memory_id_,
kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
EXPECT_EQ(0u, result->size);
@@ -1792,11 +1711,11 @@ TEST_P(GLES2DecoderTest1, IsFramebufferValidArgs) {
TEST_P(GLES2DecoderTest1, IsFramebufferInvalidArgsBadSharedMemoryId) {
SpecializedSetup<cmds::IsFramebuffer, 0>(false);
cmds::IsFramebuffer cmd;
- cmd.Init(
- client_framebuffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
+ cmd.Init(client_framebuffer_id_, kInvalidSharedMemoryId,
+ shared_memory_offset_);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
- cmd.Init(
- client_framebuffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
+ cmd.Init(client_framebuffer_id_, shared_memory_id_,
+ kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
}
@@ -1828,11 +1747,11 @@ TEST_P(GLES2DecoderTest1, IsRenderbufferValidArgs) {
TEST_P(GLES2DecoderTest1, IsRenderbufferInvalidArgsBadSharedMemoryId) {
SpecializedSetup<cmds::IsRenderbuffer, 0>(false);
cmds::IsRenderbuffer cmd;
- cmd.Init(
- client_renderbuffer_id_, kInvalidSharedMemoryId, shared_memory_offset_);
+ cmd.Init(client_renderbuffer_id_, kInvalidSharedMemoryId,
+ shared_memory_offset_);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
- cmd.Init(
- client_renderbuffer_id_, shared_memory_id_, kInvalidSharedMemoryOffset);
+ cmd.Init(client_renderbuffer_id_, shared_memory_id_,
+ kInvalidSharedMemoryOffset);
EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
}
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h
index 95c2027cda..40003f8614 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h
@@ -142,8 +142,7 @@ TEST_P(GLES2DecoderTest2, TexParameterfvImmediateValidArgs) {
cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]);
EXPECT_CALL(
*gl_,
- TexParameterf(GL_TEXTURE_2D,
- GL_TEXTURE_MAG_FILTER,
+ TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
*reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
@@ -233,11 +232,9 @@ TEST_P(GLES2DecoderTest2, TexParameterivImmediateValidArgs) {
GL_NEAREST,
};
cmd.Init(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &temp[0]);
- EXPECT_CALL(
- *gl_,
- TexParameteri(GL_TEXTURE_2D,
- GL_TEXTURE_MAG_FILTER,
- *reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
+ EXPECT_CALL(*gl_, TexParameteri(
+ GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+ *reinterpret_cast<GLint*>(ImmediateDataAddress(&cmd))));
EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
@@ -448,10 +445,9 @@ TEST_P(GLES2DecoderTest2, Uniform4ivImmediateValidArgs) {
TEST_P(GLES2DecoderTest2, UniformMatrix2fvImmediateValidArgs) {
cmds::UniformMatrix2fvImmediate& cmd =
*GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
- EXPECT_CALL(
- *gl_,
- UniformMatrix2fv(
- 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+ EXPECT_CALL(*gl_,
+ UniformMatrix2fv(1, 2, false, reinterpret_cast<GLfloat*>(
+ ImmediateDataAddress(&cmd))));
SpecializedSetup<cmds::UniformMatrix2fvImmediate, 0>(true);
GLfloat temp[4 * 2] = {
0,
@@ -464,10 +460,9 @@ TEST_P(GLES2DecoderTest2, UniformMatrix2fvImmediateValidArgs) {
TEST_P(GLES2DecoderTest2, UniformMatrix3fvImmediateValidArgs) {
cmds::UniformMatrix3fvImmediate& cmd =
*GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
- EXPECT_CALL(
- *gl_,
- UniformMatrix3fv(
- 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+ EXPECT_CALL(*gl_,
+ UniformMatrix3fv(1, 2, false, reinterpret_cast<GLfloat*>(
+ ImmediateDataAddress(&cmd))));
SpecializedSetup<cmds::UniformMatrix3fvImmediate, 0>(true);
GLfloat temp[9 * 2] = {
0,
@@ -480,10 +475,9 @@ TEST_P(GLES2DecoderTest2, UniformMatrix3fvImmediateValidArgs) {
TEST_P(GLES2DecoderTest2, UniformMatrix4fvImmediateValidArgs) {
cmds::UniformMatrix4fvImmediate& cmd =
*GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
- EXPECT_CALL(
- *gl_,
- UniformMatrix4fv(
- 1, 2, false, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+ EXPECT_CALL(*gl_,
+ UniformMatrix4fv(1, 2, false, reinterpret_cast<GLfloat*>(
+ ImmediateDataAddress(&cmd))));
SpecializedSetup<cmds::UniformMatrix4fvImmediate, 0>(true);
GLfloat temp[16 * 2] = {
0,
@@ -537,9 +531,8 @@ TEST_P(GLES2DecoderTest2, VertexAttrib1fvImmediateValidArgs) {
0,
};
cmd.Init(1, &temp[0]);
- EXPECT_CALL(*gl_,
- VertexAttrib1fv(
- 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+ EXPECT_CALL(*gl_, VertexAttrib1fv(1, reinterpret_cast<GLfloat*>(
+ ImmediateDataAddress(&cmd))));
EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
@@ -561,9 +554,8 @@ TEST_P(GLES2DecoderTest2, VertexAttrib2fvImmediateValidArgs) {
0,
};
cmd.Init(1, &temp[0]);
- EXPECT_CALL(*gl_,
- VertexAttrib2fv(
- 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+ EXPECT_CALL(*gl_, VertexAttrib2fv(1, reinterpret_cast<GLfloat*>(
+ ImmediateDataAddress(&cmd))));
EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
@@ -585,9 +577,8 @@ TEST_P(GLES2DecoderTest2, VertexAttrib3fvImmediateValidArgs) {
0,
};
cmd.Init(1, &temp[0]);
- EXPECT_CALL(*gl_,
- VertexAttrib3fv(
- 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+ EXPECT_CALL(*gl_, VertexAttrib3fv(1, reinterpret_cast<GLfloat*>(
+ ImmediateDataAddress(&cmd))));
EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
@@ -609,9 +600,8 @@ TEST_P(GLES2DecoderTest2, VertexAttrib4fvImmediateValidArgs) {
0,
};
cmd.Init(1, &temp[0]);
- EXPECT_CALL(*gl_,
- VertexAttrib4fv(
- 1, reinterpret_cast<GLfloat*>(ImmediateDataAddress(&cmd))));
+ EXPECT_CALL(*gl_, VertexAttrib4fv(1, reinterpret_cast<GLfloat*>(
+ ImmediateDataAddress(&cmd))));
EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(temp)));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
}
@@ -692,6 +682,31 @@ TEST_P(GLES2DecoderTest2, PopGroupMarkerEXTValidArgs) {
// TODO(gman): ConsumeTextureCHROMIUMImmediate
// TODO(gman): CreateAndConsumeTextureCHROMIUMImmediate
// TODO(gman): BindUniformLocationCHROMIUMBucket
+// TODO(gman): GenValuebuffersCHROMIUMImmediate
+// TODO(gman): DeleteValuebuffersCHROMIUMImmediate
+
+TEST_P(GLES2DecoderTest2, IsValuebufferCHROMIUMValidArgs) {
+ SpecializedSetup<cmds::IsValuebufferCHROMIUM, 0>(true);
+ cmds::IsValuebufferCHROMIUM cmd;
+ cmd.Init(client_valuebuffer_id_, shared_memory_id_, shared_memory_offset_);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
+ EXPECT_EQ(GL_NO_ERROR, GetGLError());
+}
+
+TEST_P(GLES2DecoderTest2, IsValuebufferCHROMIUMInvalidArgsBadSharedMemoryId) {
+ SpecializedSetup<cmds::IsValuebufferCHROMIUM, 0>(false);
+ cmds::IsValuebufferCHROMIUM cmd;
+ cmd.Init(client_valuebuffer_id_, kInvalidSharedMemoryId,
+ shared_memory_offset_);
+ EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
+ cmd.Init(client_valuebuffer_id_, shared_memory_id_,
+ kInvalidSharedMemoryOffset);
+ EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd));
+}
+// TODO(gman): BindValuebufferCHROMIUM
+// TODO(gman): SubscribeValueCHROMIUM
+// TODO(gman): PopulateSubscribedValuesCHROMIUM
+// TODO(gman): UniformValuebufferCHROMIUM
// TODO(gman): BindTexImage2DCHROMIUM
// TODO(gman): ReleaseTexImage2DCHROMIUM
// TODO(gman): TraceBeginCHROMIUM
@@ -705,13 +720,4 @@ TEST_P(GLES2DecoderTest2, PopGroupMarkerEXTValidArgs) {
// TODO(gman): WaitAllAsyncTexImage2DCHROMIUM
-// TODO(gman): LoseContextCHROMIUM
-// TODO(gman): InsertSyncPointCHROMIUM
-
-// TODO(gman): WaitSyncPointCHROMIUM
-
-// TODO(gman): DrawBuffersEXTImmediate
-// TODO(gman): DiscardBackbufferCHROMIUM
-
-// TODO(gman): ScheduleOverlayPlaneCHROMIUM
#endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_2_AUTOGEN_H_
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h
index 7e93f362c7..1c98b68da6 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h
@@ -12,4 +12,13 @@
#ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_3_AUTOGEN_H_
#define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_3_AUTOGEN_H_
+// TODO(gman): LoseContextCHROMIUM
+// TODO(gman): InsertSyncPointCHROMIUM
+
+// TODO(gman): WaitSyncPointCHROMIUM
+
+// TODO(gman): DrawBuffersEXTImmediate
+// TODO(gman): DiscardBackbufferCHROMIUM
+
+// TODO(gman): ScheduleOverlayPlaneCHROMIUM
#endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_UNITTEST_3_AUTOGEN_H_
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
index 136834d1f9..36afe38576 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
@@ -96,6 +96,7 @@ GLES2DecoderTestBase::GLES2DecoderTestBase()
client_fragment_shader_id_(122),
client_query_id_(123),
client_vertexarray_id_(124),
+ client_valuebuffer_id_(125),
service_renderbuffer_id_(0),
service_renderbuffer_valid_(false),
ignore_cached_state_for_test_(GetParam()),
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h
index 1507440a61..1a2b54a3a0 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h
@@ -19,6 +19,7 @@
#include "gpu/command_buffer/service/shader_manager.h"
#include "gpu/command_buffer/service/test_helper.h"
#include "gpu/command_buffer/service/texture_manager.h"
+#include "gpu/command_buffer/service/valuebuffer_manager.h"
#include "gpu/command_buffer/service/vertex_array_manager.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gl/gl_context_stub_with_extensions.h"
@@ -122,6 +123,10 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam<bool> {
return group_->program_manager()->GetProgram(client_id);
}
+ Valuebuffer* GetValuebuffer(GLuint client_id) {
+ return group_->valuebuffer_manager()->GetValuebuffer(client_id);
+ }
+
QueryManager::Query* GetQueryInfo(GLuint client_id) {
return decoder_->GetQueryManager()->GetQuery(client_id);
}
@@ -136,6 +141,10 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam<bool> {
return group_->program_manager();
}
+ ValuebufferManager* valuebuffer_manager() {
+ return group_->valuebuffer_manager();
+ }
+
ImageManager* GetImageManager() { return decoder_->GetImageManager(); }
void DoCreateProgram(GLuint client_id, GLuint service_id);
@@ -514,6 +523,7 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam<bool> {
GLuint client_fragment_shader_id_;
GLuint client_query_id_;
GLuint client_vertexarray_id_;
+ GLuint client_valuebuffer_id_;
uint32 shared_memory_id_;
uint32 shared_memory_offset_;
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_valuebuffer.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_valuebuffer.cc
new file mode 100644
index 0000000000..012d504175
--- /dev/null
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_valuebuffer.cc
@@ -0,0 +1,130 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
+
+#include "base/command_line.h"
+#include "gpu/command_buffer/common/gles2_cmd_format.h"
+#include "gpu/command_buffer/common/gles2_cmd_utils.h"
+#include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h"
+
+#include "gpu/command_buffer/service/test_helper.h"
+#include "gpu/command_buffer/service/valuebuffer_manager.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gl/gl_implementation.h"
+#include "ui/gl/gl_mock.h"
+#include "ui/gl/gl_surface_stub.h"
+
+using ::gfx::MockGLInterface;
+using ::testing::_;
+
+namespace gpu {
+namespace gles2 {
+
+using namespace cmds;
+
+TEST_P(GLES2DecoderWithShaderTest, ValuebufferBasic) {
+ const uint32 kBufferId = 123;
+ ValueState valuestate;
+ valuestate.int_value[0] = 111;
+ valuestate.int_value[1] = 222;
+ valuebuffer_manager()->CreateValuebuffer(kBufferId);
+ valuebuffer_manager()->UpdateValueState(
+ GL_MOUSE_POSITION_CHROMIUM, valuestate);
+ BindValuebufferCHROMIUM cmd1;
+ cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, kBufferId);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
+ SubscribeValueCHROMIUM cmd2;
+ cmd2.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, GL_MOUSE_POSITION_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
+ PopulateSubscribedValuesCHROMIUM cmd3;
+ cmd3.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd3));
+ EXPECT_CALL(*gl_, Uniform2iv(kUniform2RealLocation, 1, _)).Times(1);
+ UniformValuebufferCHROMIUM cmd4;
+ cmd4.Init(kUniform2FakeLocation, GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
+ GL_MOUSE_POSITION_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd4));
+}
+
+TEST_P(GLES2DecoderWithShaderTest, SubscribeValuebufferNotBound) {
+ const uint32 kBufferId = 123;
+ ValueState valuestate;
+ valuestate.int_value[0] = 111;
+ valuestate.int_value[1] = 222;
+ valuebuffer_manager()->CreateValuebuffer(kBufferId);
+ valuebuffer_manager()->UpdateValueState(
+ GL_MOUSE_POSITION_CHROMIUM, valuestate);
+ SubscribeValueCHROMIUM cmd1;
+ cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, GL_MOUSE_POSITION_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
+ EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
+}
+
+TEST_P(GLES2DecoderWithShaderTest, PopulateValuebufferNoSubscription) {
+ const uint32 kBufferId = 123;
+ ValueState valuestate;
+ valuestate.int_value[0] = 111;
+ valuestate.int_value[1] = 222;
+ valuebuffer_manager()->CreateValuebuffer(kBufferId);
+ valuebuffer_manager()->UpdateValueState(
+ GL_MOUSE_POSITION_CHROMIUM, valuestate);
+ BindValuebufferCHROMIUM cmd1;
+ cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, kBufferId);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
+ PopulateSubscribedValuesCHROMIUM cmd2;
+ cmd2.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
+ EXPECT_EQ(GL_NONE, GetGLError());
+}
+
+TEST_P(GLES2DecoderWithShaderTest, UniformValuebufferNoState) {
+ const uint32 kBufferId = 123;
+ ValueState valuestate;
+ valuestate.int_value[0] = 111;
+ valuestate.int_value[1] = 222;
+ valuebuffer_manager()->CreateValuebuffer(kBufferId);
+ valuebuffer_manager()->UpdateValueState(
+ GL_MOUSE_POSITION_CHROMIUM, valuestate);
+ BindValuebufferCHROMIUM cmd1;
+ cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, kBufferId);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
+ SubscribeValueCHROMIUM cmd2;
+ cmd2.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, GL_MOUSE_POSITION_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
+ EXPECT_CALL(*gl_, Uniform2iv(kUniform2RealLocation, 1, _)).Times(0);
+ UniformValuebufferCHROMIUM cmd3;
+ cmd3.Init(kUniform2FakeLocation, GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
+ GL_MOUSE_POSITION_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd3));
+ EXPECT_EQ(GL_NONE, GetGLError());
+}
+
+TEST_P(GLES2DecoderWithShaderTest, UniformValuebufferInvalidLocation) {
+ const uint32 kBufferId = 123;
+ ValueState valuestate;
+ valuestate.int_value[0] = 111;
+ valuestate.int_value[1] = 222;
+ valuebuffer_manager()->CreateValuebuffer(kBufferId);
+ valuebuffer_manager()->UpdateValueState(
+ GL_MOUSE_POSITION_CHROMIUM, valuestate);
+ BindValuebufferCHROMIUM cmd1;
+ cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, kBufferId);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
+ SubscribeValueCHROMIUM cmd2;
+ cmd2.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, GL_MOUSE_POSITION_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
+ PopulateSubscribedValuesCHROMIUM cmd3;
+ cmd3.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd3));
+ EXPECT_CALL(*gl_, Uniform2iv(kUniform2RealLocation, 1, _)).Times(0);
+ UniformValuebufferCHROMIUM cmd4;
+ cmd4.Init(kUniform1FakeLocation, GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
+ GL_MOUSE_POSITION_CHROMIUM);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd4));
+ EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
+}
+
+} // namespace gles2
+} // namespace gpu
diff --git a/gpu/command_buffer/service/gles2_cmd_validation_autogen.h b/gpu/command_buffer/service/gles2_cmd_validation_autogen.h
index de840375df..c72bcf8183 100644
--- a/gpu/command_buffer/service/gles2_cmd_validation_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_validation_autogen.h
@@ -56,6 +56,7 @@ ValueValidator<GLenum> shader_type;
ValueValidator<GLenum> src_blend_factor;
ValueValidator<GLenum> stencil_op;
ValueValidator<GLenum> string_type;
+ValueValidator<GLenum> subscription_target;
ValueValidator<GLenum> texture_bind_target;
ValueValidator<GLenum> texture_format;
ValueValidator<GLenum> texture_internal_format;
@@ -67,6 +68,7 @@ ValueValidator<GLenum> texture_pool;
ValueValidator<GLenum> texture_target;
ValueValidator<GLenum> texture_usage;
ValueValidator<GLenum> texture_wrap_mode;
+ValueValidator<GLenum> value_buffer_target;
ValueValidator<GLint> vertex_attrib_size;
ValueValidator<GLenum> vertex_attrib_type;
ValueValidator<GLenum> vertex_attribute;
diff --git a/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h b/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h
index 790b9b3edb..6a646ac506 100644
--- a/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h
+++ b/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h
@@ -413,6 +413,10 @@ static const GLenum valid_string_type_table[] = {
GL_EXTENSIONS,
};
+static const GLenum valid_subscription_target_table[] = {
+ GL_MOUSE_POSITION_CHROMIUM,
+};
+
static const GLenum valid_texture_bind_target_table[] = {
GL_TEXTURE_2D,
GL_TEXTURE_CUBE_MAP,
@@ -493,6 +497,10 @@ static const GLenum valid_texture_wrap_mode_table[] = {
GL_REPEAT,
};
+static const GLenum valid_value_buffer_target_table[] = {
+ GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
+};
+
static const GLint valid_vertex_attrib_size_table[] = {
1,
2,
@@ -593,6 +601,8 @@ Validators::Validators()
arraysize(valid_src_blend_factor_table)),
stencil_op(valid_stencil_op_table, arraysize(valid_stencil_op_table)),
string_type(valid_string_type_table, arraysize(valid_string_type_table)),
+ subscription_target(valid_subscription_target_table,
+ arraysize(valid_subscription_target_table)),
texture_bind_target(valid_texture_bind_target_table,
arraysize(valid_texture_bind_target_table)),
texture_format(valid_texture_format_table,
@@ -616,6 +626,8 @@ Validators::Validators()
arraysize(valid_texture_usage_table)),
texture_wrap_mode(valid_texture_wrap_mode_table,
arraysize(valid_texture_wrap_mode_table)),
+ value_buffer_target(valid_value_buffer_target_table,
+ arraysize(valid_value_buffer_target_table)),
vertex_attrib_size(valid_vertex_attrib_size_table,
arraysize(valid_vertex_attrib_size_table)),
vertex_attrib_type(valid_vertex_attrib_type_table,
diff --git a/gpu/command_buffer/service/gpu_scheduler.cc b/gpu/command_buffer/service/gpu_scheduler.cc
index 015d808058..058a546d85 100644
--- a/gpu/command_buffer/service/gpu_scheduler.cc
+++ b/gpu/command_buffer/service/gpu_scheduler.cc
@@ -51,11 +51,11 @@ void GpuScheduler::PutChanged() {
// If there is no parser, exit.
if (!parser_.get()) {
- DCHECK_EQ(state.get_offset, state.put_offset);
+ DCHECK_EQ(state.get_offset, command_buffer_->GetPutOffset());
return;
}
- parser_->set_put(state.put_offset);
+ parser_->set_put(command_buffer_->GetPutOffset());
if (state.error != error::kNoError)
return;
diff --git a/gpu/command_buffer/service/gpu_scheduler_unittest.cc b/gpu/command_buffer/service/gpu_scheduler_unittest.cc
index d8233ecbd6..c1c0d1c360 100644
--- a/gpu/command_buffer/service/gpu_scheduler_unittest.cc
+++ b/gpu/command_buffer/service/gpu_scheduler_unittest.cc
@@ -26,7 +26,6 @@ using testing::StrictMock;
namespace gpu {
const size_t kRingBufferSize = 1024;
-const size_t kRingBufferEntries = kRingBufferSize / sizeof(CommandBufferEntry);
class GpuSchedulerTest : public testing::Test {
protected:
@@ -43,9 +42,10 @@ class GpuSchedulerTest : public testing::Test {
command_buffer_.reset(new MockCommandBuffer);
CommandBuffer::State default_state;
- default_state.num_entries = kRingBufferEntries;
ON_CALL(*command_buffer_.get(), GetLastState())
.WillByDefault(Return(default_state));
+ ON_CALL(*command_buffer_.get(), GetPutOffset())
+ .WillByDefault(Return(0));
decoder_.reset(new gles2::MockGLES2Decoder());
// Install FakeDoCommands handler so we can use individual DoCommand()
@@ -86,7 +86,6 @@ class GpuSchedulerTest : public testing::Test {
TEST_F(GpuSchedulerTest, SchedulerDoesNothingIfRingBufferIsEmpty) {
CommandBuffer::State state;
- state.put_offset = 0;
EXPECT_CALL(*command_buffer_, GetLastState())
.WillRepeatedly(Return(state));
@@ -122,9 +121,10 @@ TEST_F(GpuSchedulerTest, ProcessesOneCommand) {
CommandBuffer::State state;
- state.put_offset = 2;
EXPECT_CALL(*command_buffer_, GetLastState())
.WillRepeatedly(Return(state));
+ EXPECT_CALL(*command_buffer_, GetPutOffset())
+ .WillRepeatedly(Return(2));
EXPECT_CALL(*command_buffer_, SetGetOffset(2));
EXPECT_CALL(*decoder_, DoCommand(7, 1, &buffer_[0]))
@@ -146,9 +146,10 @@ TEST_F(GpuSchedulerTest, ProcessesTwoCommands) {
CommandBuffer::State state;
- state.put_offset = 3;
EXPECT_CALL(*command_buffer_, GetLastState())
.WillRepeatedly(Return(state));
+ EXPECT_CALL(*command_buffer_, GetPutOffset())
+ .WillRepeatedly(Return(3));
EXPECT_CALL(*decoder_, DoCommand(7, 1, &buffer_[0]))
.WillOnce(Return(error::kNoError));
@@ -167,9 +168,10 @@ TEST_F(GpuSchedulerTest, SetsErrorCodeOnCommandBuffer) {
CommandBuffer::State state;
- state.put_offset = 1;
EXPECT_CALL(*command_buffer_, GetLastState())
.WillRepeatedly(Return(state));
+ EXPECT_CALL(*command_buffer_, GetPutOffset())
+ .WillRepeatedly(Return(1));
EXPECT_CALL(*decoder_, DoCommand(7, 0, &buffer_[0]))
.WillOnce(Return(
diff --git a/gpu/command_buffer/service/program_manager.cc b/gpu/command_buffer/service/program_manager.cc
index 7bc72dede3..f3c447cbd0 100644
--- a/gpu/command_buffer/service/program_manager.cc
+++ b/gpu/command_buffer/service/program_manager.cc
@@ -193,8 +193,7 @@ bool ProgramManager::IsInvalidPrefix(const char* name, size_t length) {
memcmp(name, kInvalidPrefix, sizeof(kInvalidPrefix)) == 0);
}
-Program::Program(
- ProgramManager* manager, GLuint service_id)
+Program::Program(ProgramManager* manager, GLuint service_id)
: manager_(manager),
use_count_(0),
max_attrib_name_length_(0),
diff --git a/gpu/command_buffer/service/program_manager.h b/gpu/command_buffer/service/program_manager.h
index dbe9c14fa2..2f5deae65f 100644
--- a/gpu/command_buffer/service/program_manager.h
+++ b/gpu/command_buffer/service/program_manager.h
@@ -39,6 +39,7 @@ class GPU_EXPORT Program : public base::RefCounted<Program> {
};
enum UniformApiType {
+ kUniformNone = 0,
kUniform1i = 1 << 0,
kUniform2i = 1 << 1,
kUniform3i = 1 << 2,
diff --git a/gpu/command_buffer/service/valuebuffer_manager.cc b/gpu/command_buffer/service/valuebuffer_manager.cc
new file mode 100644
index 0000000000..eb4db093f7
--- /dev/null
+++ b/gpu/command_buffer/service/valuebuffer_manager.cc
@@ -0,0 +1,117 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "gpu/command_buffer/service/valuebuffer_manager.h"
+
+#include "gpu/command_buffer/service/program_manager.h"
+
+namespace gpu {
+namespace gles2 {
+
+Valuebuffer::Valuebuffer(ValuebufferManager* manager, GLuint client_id)
+ : manager_(manager), client_id_(client_id), has_been_bound_(false) {
+ manager_->StartTracking(this);
+}
+
+Valuebuffer::~Valuebuffer() {
+ if (manager_) {
+ manager_->StopTracking(this);
+ manager_ = NULL;
+ }
+}
+
+void Valuebuffer::AddSubscription(GLenum subscription) {
+ subscriptions_.insert(subscription);
+}
+
+void Valuebuffer::RemoveSubscription(GLenum subscription) {
+ subscriptions_.erase(subscription);
+}
+
+bool Valuebuffer::IsSubscribed(GLenum subscription) {
+ return subscriptions_.find(subscription) != subscriptions_.end();
+}
+
+const ValueState *Valuebuffer::GetState(GLenum target) const {
+ StateMap::const_iterator it = active_state_map_.find(target);
+ return it != active_state_map_.end() ? &it->second : NULL;
+}
+
+void Valuebuffer::UpdateState(const StateMap& pending_state) {
+ for (SubscriptionSet::const_iterator it = subscriptions_.begin();
+ it != subscriptions_.end(); ++it) {
+ StateMap::const_iterator pending_state_it = pending_state.find((*it));
+ if (pending_state_it != pending_state.end()) {
+ active_state_map_[pending_state_it->first] = pending_state_it->second;
+ }
+ }
+}
+
+ValuebufferManager::ValuebufferManager()
+ : valuebuffer_count_(0) {
+}
+
+ValuebufferManager::~ValuebufferManager() {
+ DCHECK(valuebuffer_map_.empty());
+ DCHECK(pending_state_map_.empty());
+ // If this triggers, that means something is keeping a reference to
+ // a Valuebuffer belonging to this.
+ CHECK_EQ(valuebuffer_count_, 0u);
+}
+
+void ValuebufferManager::Destroy() {
+ valuebuffer_map_.clear();
+ pending_state_map_.clear();
+}
+
+void ValuebufferManager::StartTracking(Valuebuffer* /* valuebuffer */) {
+ ++valuebuffer_count_;
+}
+
+void ValuebufferManager::StopTracking(Valuebuffer* /* valuebuffer */) {
+ --valuebuffer_count_;
+}
+
+void ValuebufferManager::CreateValuebuffer(GLuint client_id) {
+ scoped_refptr<Valuebuffer> valuebuffer(new Valuebuffer(this, client_id));
+ std::pair<ValuebufferMap::iterator, bool> result =
+ valuebuffer_map_.insert(std::make_pair(client_id, valuebuffer));
+ DCHECK(result.second);
+}
+
+Valuebuffer* ValuebufferManager::GetValuebuffer(GLuint client_id) {
+ ValuebufferMap::iterator it = valuebuffer_map_.find(client_id);
+ return it != valuebuffer_map_.end() ? it->second.get() : NULL;
+}
+
+void ValuebufferManager::RemoveValuebuffer(GLuint client_id) {
+ ValuebufferMap::iterator it = valuebuffer_map_.find(client_id);
+ if (it != valuebuffer_map_.end()) {
+ Valuebuffer* valuebuffer = it->second.get();
+ valuebuffer->MarkAsDeleted();
+ valuebuffer_map_.erase(it);
+ }
+}
+
+void ValuebufferManager::UpdateValuebufferState(Valuebuffer* valuebuffer) {
+ DCHECK(valuebuffer);
+ valuebuffer->UpdateState(pending_state_map_);
+}
+
+void ValuebufferManager::UpdateValueState(
+ GLenum target, const ValueState& state) {
+ pending_state_map_[target] = state;
+}
+
+uint32 ValuebufferManager::ApiTypeForSubscriptionTarget(GLenum target) {
+ switch (target) {
+ case GL_MOUSE_POSITION_CHROMIUM:
+ return Program::kUniform2i;
+ }
+ NOTREACHED() << "Unhandled uniform subscription target " << target;
+ return Program::kUniformNone;
+}
+
+} // namespace gles2
+} // namespace gpu
diff --git a/gpu/command_buffer/service/valuebuffer_manager.h b/gpu/command_buffer/service/valuebuffer_manager.h
new file mode 100644
index 0000000000..3cc4ac194a
--- /dev/null
+++ b/gpu/command_buffer/service/valuebuffer_manager.h
@@ -0,0 +1,123 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GPU_COMMAND_BUFFER_SERVICE_VALUEBUFFER_MANAGER_H_
+#define GPU_COMMAND_BUFFER_SERVICE_VALUEBUFFER_MANAGER_H_
+
+#include "base/basictypes.h"
+#include "base/containers/hash_tables.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
+#include "gpu/command_buffer/service/gl_utils.h"
+#include "gpu/gpu_export.h"
+
+namespace gpu {
+namespace gles2 {
+
+class ValuebufferManager;
+
+union ValueState {
+ float float_value[4];
+ int int_value[4];
+};
+
+class GPU_EXPORT Valuebuffer : public base::RefCounted<Valuebuffer> {
+ public:
+ Valuebuffer(ValuebufferManager* manager, GLuint client_id);
+
+ GLuint client_id() const { return client_id_; }
+
+ bool IsDeleted() const { return client_id_ == 0; }
+
+ void MarkAsValid() { has_been_bound_ = true; }
+
+ bool IsValid() const { return has_been_bound_ && !IsDeleted(); }
+
+ void AddSubscription(GLenum subscription);
+ void RemoveSubscription(GLenum subscription);
+
+ // Returns true if this Valuebuffer is subscribed to subscription
+ bool IsSubscribed(GLenum subscription);
+
+ // Returns the active state for a given target in this Valuebuffer
+ // returns NULL if target state doesn't exist
+ const ValueState* GetState(GLenum target) const;
+
+ private:
+ friend class ValuebufferManager;
+ friend class base::RefCounted<Valuebuffer>;
+
+ typedef base::hash_map<GLenum, ValueState> StateMap;
+ typedef base::hash_set<GLenum> SubscriptionSet;
+
+ ~Valuebuffer();
+
+ void UpdateState(const StateMap& pending_state);
+
+ void MarkAsDeleted() { client_id_ = 0; }
+
+ // ValuebufferManager that owns this Valuebuffer.
+ ValuebufferManager* manager_;
+
+ // Client side Valuebuffer id.
+ GLuint client_id_;
+
+ // Whether this Valuebuffer has ever been bound.
+ bool has_been_bound_;
+
+ SubscriptionSet subscriptions_;
+
+ StateMap active_state_map_;
+};
+
+class GPU_EXPORT ValuebufferManager {
+ public:
+ ValuebufferManager();
+ ~ValuebufferManager();
+
+ // Must call before destruction.
+ void Destroy();
+
+ // Creates a Valuebuffer for the given Valuebuffer ids.
+ void CreateValuebuffer(GLuint client_id);
+
+ // Gets the Valuebuffer for the given Valuebuffer id.
+ Valuebuffer* GetValuebuffer(GLuint client_id);
+
+ // Removes a Valuebuffer for the given Valuebuffer id.
+ void RemoveValuebuffer(GLuint client_id);
+
+ // Updates the value state for the given Valuebuffer
+ void UpdateValuebufferState(Valuebuffer* valuebuffer);
+
+ // Gets the state for the given subscription target
+ void UpdateValueState(GLenum target, const ValueState& state);
+
+ static uint32 ApiTypeForSubscriptionTarget(GLenum target);
+
+ private:
+ friend class Valuebuffer;
+
+ typedef base::hash_map<GLuint, scoped_refptr<Valuebuffer>> ValuebufferMap;
+
+ void StartTracking(Valuebuffer* valuebuffer);
+ void StopTracking(Valuebuffer* valuebuffer);
+
+ // Counts the number of Valuebuffer allocated with 'this' as its manager.
+ // Allows to check no Valuebuffer will outlive this.
+ unsigned valuebuffer_count_;
+
+ // Info for each Valuebuffer in the system.
+ ValuebufferMap valuebuffer_map_;
+
+ // Current value state in the system
+ Valuebuffer::StateMap pending_state_map_;
+
+ DISALLOW_COPY_AND_ASSIGN(ValuebufferManager);
+};
+
+} // namespace gles2
+} // namespace gpu
+
+#endif // GPU_COMMAND_BUFFER_SERVICE_VALUEBUFFER_MANAGER_H_
diff --git a/gpu/command_buffer/service/valuebuffer_manager_unittest.cc b/gpu/command_buffer/service/valuebuffer_manager_unittest.cc
new file mode 100644
index 0000000000..ead5df5d16
--- /dev/null
+++ b/gpu/command_buffer/service/valuebuffer_manager_unittest.cc
@@ -0,0 +1,100 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "gpu/command_buffer/service/valuebuffer_manager.h"
+
+#include "base/memory/scoped_ptr.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_util.h"
+#include "gpu/command_buffer/common/gles2_cmd_format.h"
+#include "gpu/command_buffer/common/gles2_cmd_utils.h"
+#include "gpu/command_buffer/service/common_decoder.h"
+#include "gpu/command_buffer/service/feature_info.h"
+#include "gpu/command_buffer/service/gpu_service_test.h"
+#include "gpu/command_buffer/service/mocks.h"
+#include "gpu/command_buffer/service/test_helper.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gl/gl_bindings.h"
+#include "ui/gl/gl_mock.h"
+
+namespace gpu {
+namespace gles2 {
+
+class ValuebufferManagerTest : public GpuServiceTest {
+ public:
+ ValuebufferManagerTest() : manager_() {}
+ ~ValuebufferManagerTest() override { manager_.Destroy(); }
+
+ protected:
+ ValuebufferManager manager_;
+};
+
+TEST_F(ValuebufferManagerTest, Basic) {
+ const GLuint kClient1Id = 1;
+ const GLuint kClient2Id = 2;
+ // Check we can create a Valuebuffer
+ manager_.CreateValuebuffer(kClient1Id);
+ Valuebuffer* valuebuffer0 = manager_.GetValuebuffer(kClient1Id);
+ ASSERT_TRUE(valuebuffer0 != NULL);
+ EXPECT_EQ(kClient1Id, valuebuffer0->client_id());
+ // Check we get nothing for a non-existent Valuebuffer.
+ // Check trying to a remove non-existent Valuebuffer does not crash
+ manager_.RemoveValuebuffer(kClient2Id);
+ // Check we can't get the renderbuffer after we remove it.
+ manager_.RemoveValuebuffer(kClient1Id);
+ EXPECT_TRUE(manager_.GetValuebuffer(kClient1Id) == NULL);
+}
+
+TEST_F(ValuebufferManagerTest, Destroy) {
+ const GLuint kClient1Id = 1;
+ // Check we can create Valuebuffer.
+ manager_.CreateValuebuffer(kClient1Id);
+ Valuebuffer* valuebuffer0 = manager_.GetValuebuffer(kClient1Id);
+ ASSERT_TRUE(valuebuffer0 != NULL);
+ EXPECT_EQ(kClient1Id, valuebuffer0->client_id());
+ manager_.Destroy();
+ // Check the resources were released.
+ Valuebuffer* valuebuffer1 = manager_.GetValuebuffer(kClient1Id);
+ ASSERT_TRUE(valuebuffer1 == NULL);
+}
+
+TEST_F(ValuebufferManagerTest, ValueBuffer) {
+ const GLuint kClient1Id = 1;
+ // Check we can create a Valuebuffer
+ manager_.CreateValuebuffer(kClient1Id);
+ Valuebuffer* valuebuffer0 = manager_.GetValuebuffer(kClient1Id);
+ ASSERT_TRUE(valuebuffer0 != NULL);
+ EXPECT_EQ(kClient1Id, valuebuffer0->client_id());
+ EXPECT_FALSE(valuebuffer0->IsValid());
+}
+
+TEST_F(ValuebufferManagerTest, UpdateState) {
+ const GLuint kClient1Id = 1;
+ ValueState valuestate1;
+ valuestate1.int_value[0] = 111;
+ ValueState valuestate2;
+ valuestate2.int_value[0] = 222;
+ manager_.CreateValuebuffer(kClient1Id);
+ Valuebuffer* valuebuffer0 = manager_.GetValuebuffer(kClient1Id);
+ ASSERT_TRUE(valuebuffer0 != NULL);
+ EXPECT_EQ(kClient1Id, valuebuffer0->client_id());
+ valuebuffer0->AddSubscription(GL_MOUSE_POSITION_CHROMIUM);
+ ASSERT_TRUE(valuebuffer0->GetState(GL_MOUSE_POSITION_CHROMIUM) == NULL);
+ manager_.UpdateValueState(GL_MOUSE_POSITION_CHROMIUM, valuestate1);
+ manager_.UpdateValuebufferState(valuebuffer0);
+ const ValueState* new_state1 =
+ valuebuffer0->GetState(GL_MOUSE_POSITION_CHROMIUM);
+ ASSERT_TRUE(new_state1 != NULL);
+ ASSERT_TRUE(new_state1->int_value[0] == 111);
+ // Ensure state changes
+ manager_.UpdateValueState(GL_MOUSE_POSITION_CHROMIUM, valuestate2);
+ manager_.UpdateValuebufferState(valuebuffer0);
+ const ValueState* new_state2 =
+ valuebuffer0->GetState(GL_MOUSE_POSITION_CHROMIUM);
+ ASSERT_TRUE(new_state2 != NULL);
+ ASSERT_TRUE(new_state2->int_value[0] == 222);
+}
+
+} // namespace gles2
+} // namespace gpu
diff --git a/gpu/command_buffer_service.gypi b/gpu/command_buffer_service.gypi
index f1ed489846..13ffe94000 100644
--- a/gpu/command_buffer_service.gypi
+++ b/gpu/command_buffer_service.gypi
@@ -125,6 +125,8 @@
'command_buffer/service/texture_manager.cc',
'command_buffer/service/transfer_buffer_manager.cc',
'command_buffer/service/transfer_buffer_manager.h',
+ 'command_buffer/service/valuebuffer_manager.h',
+ 'command_buffer/service/valuebuffer_manager.cc',
'command_buffer/service/vertex_array_manager.h',
'command_buffer/service/vertex_array_manager.cc',
'command_buffer/service/vertex_attrib_manager.h',
diff --git a/gpu/command_buffer_service.target.darwin-arm.mk b/gpu/command_buffer_service.target.darwin-arm.mk
index 383dfe1de7..bdc63e0d82 100644
--- a/gpu/command_buffer_service.target.darwin-arm.mk
+++ b/gpu/command_buffer_service.target.darwin-arm.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.darwin-arm64.mk b/gpu/command_buffer_service.target.darwin-arm64.mk
index 098551f535..f8bfe9aaa1 100644
--- a/gpu/command_buffer_service.target.darwin-arm64.mk
+++ b/gpu/command_buffer_service.target.darwin-arm64.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.darwin-mips.mk b/gpu/command_buffer_service.target.darwin-mips.mk
index 6d7c9e8e04..7279d3afab 100644
--- a/gpu/command_buffer_service.target.darwin-mips.mk
+++ b/gpu/command_buffer_service.target.darwin-mips.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.darwin-mips64.mk b/gpu/command_buffer_service.target.darwin-mips64.mk
index 6d7c9e8e04..7279d3afab 100644
--- a/gpu/command_buffer_service.target.darwin-mips64.mk
+++ b/gpu/command_buffer_service.target.darwin-mips64.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.darwin-x86.mk b/gpu/command_buffer_service.target.darwin-x86.mk
index 66d302c748..484015974b 100644
--- a/gpu/command_buffer_service.target.darwin-x86.mk
+++ b/gpu/command_buffer_service.target.darwin-x86.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.darwin-x86_64.mk b/gpu/command_buffer_service.target.darwin-x86_64.mk
index 0904baaecf..2581dbb099 100644
--- a/gpu/command_buffer_service.target.darwin-x86_64.mk
+++ b/gpu/command_buffer_service.target.darwin-x86_64.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.linux-arm.mk b/gpu/command_buffer_service.target.linux-arm.mk
index 383dfe1de7..bdc63e0d82 100644
--- a/gpu/command_buffer_service.target.linux-arm.mk
+++ b/gpu/command_buffer_service.target.linux-arm.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.linux-arm64.mk b/gpu/command_buffer_service.target.linux-arm64.mk
index 098551f535..f8bfe9aaa1 100644
--- a/gpu/command_buffer_service.target.linux-arm64.mk
+++ b/gpu/command_buffer_service.target.linux-arm64.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.linux-mips.mk b/gpu/command_buffer_service.target.linux-mips.mk
index 6d7c9e8e04..7279d3afab 100644
--- a/gpu/command_buffer_service.target.linux-mips.mk
+++ b/gpu/command_buffer_service.target.linux-mips.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.linux-mips64.mk b/gpu/command_buffer_service.target.linux-mips64.mk
index 6d7c9e8e04..7279d3afab 100644
--- a/gpu/command_buffer_service.target.linux-mips64.mk
+++ b/gpu/command_buffer_service.target.linux-mips64.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.linux-x86.mk b/gpu/command_buffer_service.target.linux-x86.mk
index 66d302c748..484015974b 100644
--- a/gpu/command_buffer_service.target.linux-x86.mk
+++ b/gpu/command_buffer_service.target.linux-x86.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/command_buffer_service.target.linux-x86_64.mk b/gpu/command_buffer_service.target.linux-x86_64.mk
index 0904baaecf..2581dbb099 100644
--- a/gpu/command_buffer_service.target.linux-x86_64.mk
+++ b/gpu/command_buffer_service.target.linux-x86_64.mk
@@ -72,6 +72,7 @@ LOCAL_SRC_FILES := \
gpu/command_buffer/service/texture_definition.cc \
gpu/command_buffer/service/texture_manager.cc \
gpu/command_buffer/service/transfer_buffer_manager.cc \
+ gpu/command_buffer/service/valuebuffer_manager.cc \
gpu/command_buffer/service/vertex_array_manager.cc \
gpu/command_buffer/service/vertex_attrib_manager.cc \
gpu/command_buffer/service/async_pixel_transfer_manager_egl.cc
diff --git a/gpu/config/BUILD.gn b/gpu/config/BUILD.gn
index 799dc12a0d..27e377dd1d 100644
--- a/gpu/config/BUILD.gn
+++ b/gpu/config/BUILD.gn
@@ -66,6 +66,9 @@ source_set("config") {
"//third_party/amd/amd_videocard_info_win.cc",
]
}
+
+ # TODO(jschuh): size_t to int.
+ cflags = [ "/wd4267" ]
}
if (use_libpci) {
defines += [ "USE_LIBPCI=1" ]
diff --git a/gpu/gpu.gyp b/gpu/gpu.gyp
index 0878a1d316..3273b26874 100644
--- a/gpu/gpu.gyp
+++ b/gpu/gpu.gyp
@@ -232,6 +232,7 @@
'command_buffer/service/gles2_cmd_decoder_unittest_programs.cc',
'command_buffer/service/gles2_cmd_decoder_unittest_textures.cc',
'command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc',
+ 'command_buffer/service/gles2_cmd_decoder_unittest_valuebuffer.cc',
'command_buffer/service/gl_surface_mock.cc',
'command_buffer/service/gl_surface_mock.h',
'command_buffer/service/gpu_scheduler_unittest.cc',
@@ -252,6 +253,7 @@
'command_buffer/service/test_helper.h',
'command_buffer/service/texture_manager_unittest.cc',
'command_buffer/service/transfer_buffer_manager_unittest.cc',
+ 'command_buffer/service/valuebuffer_manager_unittest.cc',
'command_buffer/service/vertex_attrib_manager_unittest.cc',
'command_buffer/service/vertex_array_manager_unittest.cc',
'command_buffer/service/gpu_tracer_unittest.cc',
diff --git a/gpu/ipc/gpu_command_buffer_traits.cc b/gpu/ipc/gpu_command_buffer_traits.cc
index db482a9226..1b30034063 100644
--- a/gpu/ipc/gpu_command_buffer_traits.cc
+++ b/gpu/ipc/gpu_command_buffer_traits.cc
@@ -3,15 +3,32 @@
// found in the LICENSE file.
#include "gpu/ipc/gpu_command_buffer_traits.h"
+
#include "gpu/command_buffer/common/mailbox_holder.h"
+// Generate param traits write methods.
+#include "ipc/param_traits_write_macros.h"
+namespace IPC {
+#include "gpu/ipc/gpu_command_buffer_traits_multi.h"
+} // namespace IPC
+
+// Generate param traits read methods.
+#include "ipc/param_traits_read_macros.h"
+namespace IPC {
+#include "gpu/ipc/gpu_command_buffer_traits_multi.h"
+} // namespace IPC
+
+// Generate param traits log methods.
+#include "ipc/param_traits_log_macros.h"
+namespace IPC {
+#include "gpu/ipc/gpu_command_buffer_traits_multi.h"
+} // namespace IPC
+
namespace IPC {
void ParamTraits<gpu::CommandBuffer::State> ::Write(Message* m,
const param_type& p) {
- WriteParam(m, p.num_entries);
WriteParam(m, p.get_offset);
- WriteParam(m, p.put_offset);
WriteParam(m, p.token);
WriteParam(m, static_cast<int32>(p.error));
WriteParam(m, p.generation);
@@ -21,9 +38,7 @@ bool ParamTraits<gpu::CommandBuffer::State> ::Read(const Message* m,
PickleIterator* iter,
param_type* p) {
int32 temp;
- if (ReadParam(m, iter, &p->num_entries) &&
- ReadParam(m, iter, &p->get_offset) &&
- ReadParam(m, iter, &p->put_offset) &&
+ if (ReadParam(m, iter, &p->get_offset) &&
ReadParam(m, iter, &p->token) &&
ReadParam(m, iter, &temp) &&
ReadParam(m, iter, &p->generation)) {
diff --git a/gpu/ipc/gpu_command_buffer_traits.h b/gpu/ipc/gpu_command_buffer_traits.h
index ce854d2f27..345163948d 100644
--- a/gpu/ipc/gpu_command_buffer_traits.h
+++ b/gpu/ipc/gpu_command_buffer_traits.h
@@ -5,9 +5,10 @@
#ifndef GPU_IPC_GPU_PARAM_TRAITS_H_
#define GPU_IPC_GPU_PARAM_TRAITS_H_
-#include "ipc/ipc_message_utils.h"
#include "gpu/command_buffer/common/command_buffer.h"
#include "gpu/gpu_export.h"
+#include "gpu/ipc/gpu_command_buffer_traits_multi.h"
+#include "ipc/ipc_message_utils.h"
namespace gpu {
struct Mailbox;
diff --git a/gpu/ipc/gpu_command_buffer_traits_multi.h b/gpu/ipc/gpu_command_buffer_traits_multi.h
new file mode 100644
index 0000000000..a2b20068fa
--- /dev/null
+++ b/gpu/ipc/gpu_command_buffer_traits_multi.h
@@ -0,0 +1,29 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Multiply-included message file, hence no include guard here.
+#include "gpu/command_buffer/common/capabilities.h"
+#include "gpu/gpu_export.h"
+#include "ipc/ipc_message_utils.h"
+#include "ipc/param_traits_macros.h"
+
+#undef IPC_MESSAGE_EXPORT
+#define IPC_MESSAGE_EXPORT GPU_EXPORT
+
+IPC_STRUCT_TRAITS_BEGIN(gpu::Capabilities)
+ IPC_STRUCT_TRAITS_MEMBER(post_sub_buffer)
+ IPC_STRUCT_TRAITS_MEMBER(egl_image_external)
+ IPC_STRUCT_TRAITS_MEMBER(texture_format_bgra8888)
+ IPC_STRUCT_TRAITS_MEMBER(texture_format_etc1)
+ IPC_STRUCT_TRAITS_MEMBER(texture_format_etc1_npot)
+ IPC_STRUCT_TRAITS_MEMBER(texture_rectangle)
+ IPC_STRUCT_TRAITS_MEMBER(iosurface)
+ IPC_STRUCT_TRAITS_MEMBER(texture_usage)
+ IPC_STRUCT_TRAITS_MEMBER(texture_storage)
+ IPC_STRUCT_TRAITS_MEMBER(discard_framebuffer)
+ IPC_STRUCT_TRAITS_MEMBER(sync_query)
+ IPC_STRUCT_TRAITS_MEMBER(image)
+ IPC_STRUCT_TRAITS_MEMBER(blend_equation_advanced)
+ IPC_STRUCT_TRAITS_MEMBER(blend_equation_advanced_coherent)
+IPC_STRUCT_TRAITS_END()