diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-27 19:09:32 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-27 19:09:32 +0000 |
commit | 71f1d10c0878554ec80c6ca7092417ebab21c069 (patch) | |
tree | b1712eae070d6009f256e3bfa25f34414acbfba3 /gpu/command_buffer/build_gles2_cmd_buffer.py | |
parent | 00c8782f343fe3e3fc12c62e72237bcfd06d982e (diff) | |
download | chromium_src-71f1d10c0878554ec80c6ca7092417ebab21c069.zip chromium_src-71f1d10c0878554ec80c6ca7092417ebab21c069.tar.gz chromium_src-71f1d10c0878554ec80c6ca7092417ebab21c069.tar.bz2 |
Revert "Revert 169641 - Cache resource bindings on client"
This reverts commit 7ced098111694ae800d0a54fc889ef9f6e81a3e3.
BUG=160370
TBR=apatrick@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11316191
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169702 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/build_gles2_cmd_buffer.py')
-rwxr-xr-x | gpu/command_buffer/build_gles2_cmd_buffer.py | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py index 88eaa4e..32e53f4 100755 --- a/gpu/command_buffer/build_gles2_cmd_buffer.py +++ b/gpu/command_buffer/build_gles2_cmd_buffer.py @@ -1159,7 +1159,6 @@ _FUNCTION_INFO = { 'type': 'Bind', 'decoder_func': 'DoBindBuffer', 'gen_func': 'GenBuffersARB', - 'impl_func': False, }, 'BindFramebuffer': { 'type': 'Bind', @@ -1177,6 +1176,8 @@ _FUNCTION_INFO = { 'type': 'Bind', 'decoder_func': 'DoBindTexture', 'gen_func': 'GenTextures', + # TODO(gman): remove this once client side caching works. + 'client_test': False, }, 'BlitFramebufferEXT': { 'decoder_func': 'DoBlitFramebufferEXT', @@ -1976,7 +1977,11 @@ _FUNCTION_INFO = { 'client_test': False, 'pepper_interface': 'ChromiumMapSub', }, - 'UseProgram': {'decoder_func': 'DoUseProgram', 'unit_test': False}, + 'UseProgram': { + 'decoder_func': 'DoUseProgram', + 'impl_func': False, + 'unit_test': False, + }, 'ValidateProgram': {'decoder_func': 'DoValidateProgram'}, 'VertexAttrib1f': {'decoder_func': 'DoVertexAttrib1f'}, 'VertexAttrib1fv': { @@ -3463,8 +3468,9 @@ TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { SetGLError(GL_INVALID_OPERATION, "%(name)s\", \"%(id)s reserved id"); return; } - Bind%(type)sHelper(%(arg_string)s); - helper_->%(name)s(%(arg_string)s); + if (Bind%(type)sHelper(%(arg_string)s)) { + helper_->%(name)s(%(arg_string)s); + } } """ @@ -3484,6 +3490,39 @@ TEST_F(%(test_name)s, %(name)sInvalidArgs%(arg_index)d_%(value_index)d) { 'lc_type': name_arg.resource_type.lower(), }) + def WriteGLES2ImplementationUnitTest(self, func, file): + """Overrriden from TypeHandler.""" + client_test = func.GetInfo('client_test') + if client_test == False: + return + code = """ +TEST_F(GLES2ImplementationTest, %(name)s) { + struct Cmds { + %(name)s cmd; + }; + Cmds expected; + expected.cmd.Init(%(cmd_args)s); + + gl_->%(name)s(%(args)s); + EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); + ClearCommands(); + gl_->%(name)s(%(args)s); + EXPECT_TRUE(NoCommandsWritten()); +} +""" + cmd_arg_strings = [] + for count, arg in enumerate(func.GetCmdArgs()): + cmd_arg_strings.append(arg.GetValidClientSideCmdArg(func, count, 0)) + count += 1 + gl_arg_strings = [] + for count, arg in enumerate(func.GetOriginalArgs()): + gl_arg_strings.append(arg.GetValidClientSideArg(func, count, 0)) + file.Write(code % { + 'name': func.name, + 'args': ", ".join(gl_arg_strings), + 'cmd_args': ", ".join(cmd_arg_strings), + }) + class GENnHandler(TypeHandler): """Handler for glGen___ type functions.""" |