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

Side by Side Diff: gpu/command_buffer/build_gles2_cmd_buffer.py

Issue 7358006: Cache OpenGL program info on the client side of the command buffer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | gpu/command_buffer/client/gles2_implementation.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # 2 #
3 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """code generator for GLES2 command buffers.""" 7 """code generator for GLES2 command buffers."""
8 8
9 import os 9 import os
10 import os.path 10 import os.path
(...skipping 1471 matching lines...) Expand 10 before | Expand all | Expand 10 after
1482 'IsShader': { 1482 'IsShader': {
1483 'type': 'Is', 1483 'type': 'Is',
1484 'decoder_func': 'DoIsShader', 1484 'decoder_func': 'DoIsShader',
1485 'expectation': False, 1485 'expectation': False,
1486 }, 1486 },
1487 'IsTexture': { 1487 'IsTexture': {
1488 'type': 'Is', 1488 'type': 'Is',
1489 'decoder_func': 'DoIsTexture', 1489 'decoder_func': 'DoIsTexture',
1490 'expectation': False, 1490 'expectation': False,
1491 }, 1491 },
1492 'LinkProgram': {'decoder_func': 'DoLinkProgram'}, 1492 'LinkProgram': {
1493 'decoder_func': 'DoLinkProgram',
1494 'impl_func': False,
1495 },
1493 'MapBufferSubDataCHROMIUM': { 1496 'MapBufferSubDataCHROMIUM': {
1494 'gen_cmd': False, 1497 'gen_cmd': False,
1495 'extension': True, 1498 'extension': True,
1496 'chromium': True, 1499 'chromium': True,
1497 }, 1500 },
1498 'MapTexSubImage2DCHROMIUM': { 1501 'MapTexSubImage2DCHROMIUM': {
1499 'gen_cmd': False, 1502 'gen_cmd': False,
1500 'extension': True, 1503 'extension': True,
1501 'chromium': True, 1504 'chromium': True,
1502 }, 1505 },
(...skipping 1558 matching lines...) Expand 10 before | Expand all | Expand 10 after
3061 """Overrriden from TypeHandler.""" 3064 """Overrriden from TypeHandler."""
3062 file.Write("%s %s(%s) {\n" % 3065 file.Write("%s %s(%s) {\n" %
3063 (func.return_type, func.original_name, 3066 (func.return_type, func.original_name,
3064 func.MakeTypedOriginalArgString(""))) 3067 func.MakeTypedOriginalArgString("")))
3065 func.WriteDestinationInitalizationValidation(file) 3068 func.WriteDestinationInitalizationValidation(file)
3066 self.WriteClientGLCallLog(func, file) 3069 self.WriteClientGLCallLog(func, file)
3067 for arg in func.GetOriginalArgs(): 3070 for arg in func.GetOriginalArgs():
3068 arg.WriteClientSideValidationCode(file, func) 3071 arg.WriteClientSideValidationCode(file, func)
3069 file.Write( 3072 file.Write(
3070 " GPU_CLIENT_DCHECK(%s != 0);\n" % func.GetOriginalArgs()[-1].name) 3073 " GPU_CLIENT_DCHECK(%s != 0);\n" % func.GetOriginalArgs()[-1].name)
3071 file.Write(" program_and_shader_id_handler_->FreeIds(1, &%s);\n" % 3074 file.Write(" DeleteProgramOrShaderHelper(%s);\n" %
3072 func.GetOriginalArgs()[-1].name) 3075 func.GetOriginalArgs()[-1].name)
3073 file.Write(" helper_->%s(%s);\n" % 3076 file.Write(" helper_->%s(%s);\n" %
3074 (func.name, func.MakeCmdArgString(""))) 3077 (func.name, func.MakeCmdArgString("")))
3075 file.Write(" Flush();\n") 3078 file.Write(" Flush();\n")
3076 file.Write("}\n") 3079 file.Write("}\n")
3077 file.Write("\n") 3080 file.Write("\n")
3078 3081
3079 3082
3080 class DELnHandler(TypeHandler): 3083 class DELnHandler(TypeHandler):
3081 """Handler for glDelete___ type functions.""" 3084 """Handler for glDelete___ type functions."""
(...skipping 1123 matching lines...) Expand 10 before | Expand all | Expand 10 after
4205 def WriteGLES2ImplementationHeader(self, func, file): 4208 def WriteGLES2ImplementationHeader(self, func, file):
4206 """Overrriden from TypeHandler.""" 4209 """Overrriden from TypeHandler."""
4207 code_1 = "%(return_type)s %(func_name)s(%(args)s) {\n" 4210 code_1 = "%(return_type)s %(func_name)s(%(args)s) {\n"
4208 code_2 = """ GPU_CLIENT_LOG("[" << this << "] gl%(func_name)s" << "(" 4211 code_2 = """ GPU_CLIENT_LOG("[" << this << "] gl%(func_name)s" << "("
4209 << %(arg0)s << ", " 4212 << %(arg0)s << ", "
4210 << %(arg1)s << ", " 4213 << %(arg1)s << ", "
4211 << static_cast<void*>(%(arg2)s) << ", " 4214 << static_cast<void*>(%(arg2)s) << ", "
4212 << static_cast<void*>(%(arg3)s) << ")"); 4215 << static_cast<void*>(%(arg3)s) << ")");
4213 helper_->SetBucketSize(kResultBucketId, 0); 4216 helper_->SetBucketSize(kResultBucketId, 0);
4214 helper_->%(func_name)s(%(id_name)s, kResultBucketId); 4217 helper_->%(func_name)s(%(id_name)s, kResultBucketId);
4215 if (bufsize > 0) { 4218 std::string str;
4216 std::string str; 4219 GLsizei max_size = 0;
4217 if (GetBucketAsString(kResultBucketId, &str)) { 4220 if (GetBucketAsString(kResultBucketId, &str)) {
4218 GLsizei max_size = 4221 if (bufsize > 0) {
4222 max_size =
4219 std::min(static_cast<size_t>(%(bufsize_name)s) - 1, str.size()); 4223 std::min(static_cast<size_t>(%(bufsize_name)s) - 1, str.size());
4220 if (%(length_name)s != NULL) {
4221 *%(length_name)s = max_size;
4222 }
4223 memcpy(%(dest_name)s, str.c_str(), max_size); 4224 memcpy(%(dest_name)s, str.c_str(), max_size);
4224 %(dest_name)s[max_size] = '\\0'; 4225 %(dest_name)s[max_size] = '\\0';
4225 GPU_CLIENT_LOG("------\\n" << %(dest_name)s << "\\n------"); 4226 GPU_CLIENT_LOG("------\\n" << %(dest_name)s << "\\n------");
4226 } 4227 }
4227 } 4228 }
4229 if (%(length_name)s != NULL) {
4230 *%(length_name)s = max_size;
4231 }
4228 } 4232 }
4229 """ 4233 """
4230 args = func.GetOriginalArgs() 4234 args = func.GetOriginalArgs()
4231 str_args = { 4235 str_args = {
4232 'return_type': func.return_type, 4236 'return_type': func.return_type,
4233 'func_name': func.original_name, 4237 'func_name': func.original_name,
4234 'args': func.MakeTypedOriginalArgString(""), 4238 'args': func.MakeTypedOriginalArgString(""),
4235 'id_name': args[0].name, 4239 'id_name': args[0].name,
4236 'bufsize_name': args[1].name, 4240 'bufsize_name': args[1].name,
4237 'length_name': args[2].name, 4241 'length_name': args[2].name,
(...skipping 1708 matching lines...) Expand 10 before | Expand all | Expand 10 after
5946 5950
5947 if options.generate_docs: 5951 if options.generate_docs:
5948 gen.WriteDocs("docs/gles2_cmd_format_docs_autogen.h") 5952 gen.WriteDocs("docs/gles2_cmd_format_docs_autogen.h")
5949 5953
5950 if gen.errors > 0: 5954 if gen.errors > 0:
5951 print "%d errors" % gen.errors 5955 print "%d errors" % gen.errors
5952 sys.exit(1) 5956 sys.exit(1)
5953 5957
5954 if __name__ == '__main__': 5958 if __name__ == '__main__':
5955 main(sys.argv[1:]) 5959 main(sys.argv[1:])
OLDNEW
« no previous file with comments | « no previous file | gpu/command_buffer/client/gles2_implementation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698