summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/build_gles2_cmd_buffer.py
diff options
context:
space:
mode:
authorgman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-27 19:09:32 +0000
committergman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-27 19:09:32 +0000
commit71f1d10c0878554ec80c6ca7092417ebab21c069 (patch)
treeb1712eae070d6009f256e3bfa25f34414acbfba3 /gpu/command_buffer/build_gles2_cmd_buffer.py
parent00c8782f343fe3e3fc12c62e72237bcfd06d982e (diff)
downloadchromium_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-xgpu/command_buffer/build_gles2_cmd_buffer.py47
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."""