Index: gpu/command_buffer/build_gles2_cmd_buffer.py |
=================================================================== |
--- gpu/command_buffer/build_gles2_cmd_buffer.py (revision 187725) |
+++ gpu/command_buffer/build_gles2_cmd_buffer.py (working copy) |
@@ -2152,6 +2152,15 @@ |
'pepper_interface': 'InstancedArrays', |
'defer_draws': True, |
}, |
+ 'DrawBuffersEXT': { |
+ 'type': 'PUTn', |
+ 'decoder_func': 'DoDrawBuffersEXT', |
+ 'data_type': 'GLenum', |
+ 'count': 1, |
+ 'client_test': False, |
+ 'unit_test': False, |
+ 'extension': True, |
+ }, |
'DrawElementsInstancedANGLE': { |
'type': 'Manual', |
'cmd_args': 'GLenumDrawMode mode, GLsizei count, ' |
@@ -4927,11 +4936,11 @@ |
TEST_F(GLES2ImplementationTest, %(name)s) { |
struct Cmds { |
cmds::%(name)sImmediate cmd; |
- %(type)s data[2][%(count)d]; |
+ %(type)s data[%(count_param)d][%(count)d]; |
}; |
Cmds expected; |
- for (int ii = 0; ii < 2; ++ii) { |
+ for (int ii = 0; ii < %(count_param)d; ++ii) { |
for (int jj = 0; jj < %(count)d; ++jj) { |
expected.data[ii][jj] = static_cast<%(type)s>(ii * %(count)d + jj); |
} |
@@ -4945,14 +4954,18 @@ |
for count, arg in enumerate(func.GetCmdArgs()[0:-2]): |
cmd_arg_strings.append(arg.GetValidClientSideCmdArg(func, count, 0)) |
gl_arg_strings = [] |
+ count_param = 0 |
for count, arg in enumerate(func.GetOriginalArgs()[0:-1]): |
gl_arg_strings.append(arg.GetValidClientSideArg(func, count, 0)) |
+ if arg.name == "count": |
+ count_param = int(arg.GetValidClientSideArg(func, count, 0)) |
file.Write(code % { |
'name': func.name, |
'type': func.GetInfo('data_type'), |
'count': func.GetInfo('count'), |
'args': ", ".join(gl_arg_strings), |
'cmd_args': ", ".join(cmd_arg_strings), |
+ 'count_param': count_param, |
}) |
def WriteImmediateCmdComputeSize(self, func, file): |
@@ -5028,26 +5041,29 @@ |
def WriteImmediateFormatTest(self, func, file): |
"""Overrriden from TypeHandler.""" |
+ args = func.GetCmdArgs() |
+ count_param = 0 |
+ for value, arg in enumerate(args): |
+ if arg.name == "count": |
+ count_param = int(arg.GetValidClientSideArg(func, value, 0)) |
file.Write("TEST_F(GLES2FormatTest, %s) {\n" % func.name) |
file.Write(" const int kSomeBaseValueToTestWith = 51;\n") |
file.Write(" static %s data[] = {\n" % func.info.data_type) |
- for v in range(0, func.info.count * 2): |
+ for v in range(0, func.info.count * count_param): |
file.Write(" static_cast<%s>(kSomeBaseValueToTestWith + %d),\n" % |
(func.info.data_type, v)) |
file.Write(" };\n") |
file.Write(" cmds::%s& cmd = *GetBufferAs<cmds::%s>();\n" % |
(func.name, func.name)) |
- file.Write(" const GLsizei kNumElements = 2;\n") |
+ file.Write(" const GLsizei kNumElements = %d;\n" % count_param) |
file.Write(" const size_t kExpectedCmdSize =\n") |
file.Write(" sizeof(cmd) + kNumElements * sizeof(%s) * %d;\n" % |
(func.info.data_type, func.info.count)) |
file.Write(" void* next_cmd = cmd.Set(\n") |
file.Write(" &cmd") |
- args = func.GetCmdArgs() |
for value, arg in enumerate(args): |
file.Write(",\n static_cast<%s>(%d)" % (arg.type, value + 1)) |
file.Write(",\n data);\n") |
- args = func.GetCmdArgs() |
file.Write(" EXPECT_EQ(static_cast<uint32>(cmds::%s::kCmdId),\n" % |
func.name) |
file.Write(" cmd.header.command);\n") |