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

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

Issue 371363002: Query objects should not be shared between contexts (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reverted DCHECK -> DCHECK_NE change to avoid error Created 6 years, 5 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
« 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/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """code generator for GLES2 command buffers.""" 6 """code generator for GLES2 command buffers."""
7 7
8 import itertools 8 import itertools
9 import os 9 import os
10 import os.path 10 import os.path
(...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after
1276 # invalid_test: False if no invalid test needed. 1276 # invalid_test: False if no invalid test needed.
1277 # shadowed: True = the value is shadowed so no glGetXXX call will be made. 1277 # shadowed: True = the value is shadowed so no glGetXXX call will be made.
1278 # first_element_only: For PUT types, True if only the first element of an 1278 # first_element_only: For PUT types, True if only the first element of an
1279 # array is used and we end up calling the single value 1279 # array is used and we end up calling the single value
1280 # corresponding function. eg. TexParameteriv -> TexParameteri 1280 # corresponding function. eg. TexParameteriv -> TexParameteri
1281 # extension: Function is an extension to GL and should not be exposed to 1281 # extension: Function is an extension to GL and should not be exposed to
1282 # pepper unless pepper_interface is defined. 1282 # pepper unless pepper_interface is defined.
1283 # extension_flag: Function is an extension and should be enabled only when 1283 # extension_flag: Function is an extension and should be enabled only when
1284 # the corresponding feature info flag is enabled. Implies 1284 # the corresponding feature info flag is enabled. Implies
1285 # 'extension': True. 1285 # 'extension': True.
1286 # not_shared: For GENn types, True if objects can't be shared between contexts
1286 1287
1287 _FUNCTION_INFO = { 1288 _FUNCTION_INFO = {
1288 'ActiveTexture': { 1289 'ActiveTexture': {
1289 'decoder_func': 'DoActiveTexture', 1290 'decoder_func': 'DoActiveTexture',
1290 'unit_test': False, 1291 'unit_test': False,
1291 'impl_func': False, 1292 'impl_func': False,
1292 'client_test': False, 1293 'client_test': False,
1293 }, 1294 },
1294 'AttachShader': {'decoder_func': 'DoAttachShader'}, 1295 'AttachShader': {'decoder_func': 'DoAttachShader'},
1295 'BindAttribLocation': { 1296 'BindAttribLocation': {
(...skipping 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after
2346 'unit_test': False, 2347 'unit_test': False,
2347 'pepper_interface': 'InstancedArrays', 2348 'pepper_interface': 'InstancedArrays',
2348 }, 2349 },
2349 'GenQueriesEXT': { 2350 'GenQueriesEXT': {
2350 'type': 'GENn', 2351 'type': 'GENn',
2351 'gl_test_func': 'glGenQueriesARB', 2352 'gl_test_func': 'glGenQueriesARB',
2352 'resource_type': 'Query', 2353 'resource_type': 'Query',
2353 'resource_types': 'Queries', 2354 'resource_types': 'Queries',
2354 'unit_test': False, 2355 'unit_test': False,
2355 'pepper_interface': 'Query', 2356 'pepper_interface': 'Query',
2357 'not_shared': 'True',
2356 }, 2358 },
2357 'DeleteQueriesEXT': { 2359 'DeleteQueriesEXT': {
2358 'type': 'DELn', 2360 'type': 'DELn',
2359 'gl_test_func': 'glDeleteQueriesARB', 2361 'gl_test_func': 'glDeleteQueriesARB',
2360 'resource_type': 'Query', 2362 'resource_type': 'Query',
2361 'resource_types': 'Queries', 2363 'resource_types': 'Queries',
2362 'unit_test': False, 2364 'unit_test': False,
2363 'pepper_interface': 'Query', 2365 'pepper_interface': 'Query',
2364 }, 2366 },
2365 'IsQueryEXT': { 2367 'IsQueryEXT': {
(...skipping 1675 matching lines...) Expand 10 before | Expand all | Expand 10 after
4041 'resource_types': func.GetInfo('resource_types'), 4043 'resource_types': func.GetInfo('resource_types'),
4042 'count_name': func.GetOriginalArgs()[0].name, 4044 'count_name': func.GetOriginalArgs()[0].name,
4043 } 4045 }
4044 file.Write( 4046 file.Write(
4045 "%(return_type)s GLES2Implementation::%(name)s(%(typed_args)s) {\n" % 4047 "%(return_type)s GLES2Implementation::%(name)s(%(typed_args)s) {\n" %
4046 args) 4048 args)
4047 func.WriteDestinationInitalizationValidation(file) 4049 func.WriteDestinationInitalizationValidation(file)
4048 self.WriteClientGLCallLog(func, file) 4050 self.WriteClientGLCallLog(func, file)
4049 for arg in func.GetOriginalArgs(): 4051 for arg in func.GetOriginalArgs():
4050 arg.WriteClientSideValidationCode(file, func) 4052 arg.WriteClientSideValidationCode(file, func)
4051 code = """ GPU_CLIENT_SINGLE_THREAD_CHECK(); 4053 not_shared = func.GetInfo('not_shared')
4052 GetIdHandler(id_namespaces::k%(resource_types)s)-> 4054 if not_shared:
4053 MakeIds(this, 0, %(args)s); 4055 alloc_code = (
4056 """ IdAllocatorInterface* id_allocator = GetIdAllocator(id_namespaces::k%s);
4057 for (GLsizei ii = 0; ii < n; ++ii)
4058 %s[ii] = id_allocator->AllocateID();""" %
4059 (func.GetInfo('resource_types'), func.GetOriginalArgs()[1].name))
4060 else:
4061 alloc_code = (""" GetIdHandler(id_namespaces::k%(resource_types)s)->
4062 MakeIds(this, 0, %(args)s);""" % args)
4063 args['alloc_code'] = alloc_code
4064
4065 code = """ GPU_CLIENT_SINGLE_THREAD_CHECK();
4066 %(alloc_code)s
4054 %(name)sHelper(%(args)s); 4067 %(name)sHelper(%(args)s);
4055 helper_->%(name)sImmediate(%(args)s); 4068 helper_->%(name)sImmediate(%(args)s);
4056 if (share_group_->bind_generates_resource()) 4069 if (share_group_->bind_generates_resource())
4057 helper_->CommandBufferHelper::Flush(); 4070 helper_->CommandBufferHelper::Flush();
4058 %(log_code)s 4071 %(log_code)s
4059 CheckGLError(); 4072 CheckGLError();
4060 } 4073 }
4061 4074
4062 """ 4075 """
4063 file.Write(code % args) 4076 file.Write(code % args)
(...skipping 4286 matching lines...) Expand 10 before | Expand all | Expand 10 after
8350 "ppapi/shared_impl/ppb_opengles2_shared.cc"]) 8363 "ppapi/shared_impl/ppb_opengles2_shared.cc"])
8351 8364
8352 if gen.errors > 0: 8365 if gen.errors > 0:
8353 print "%d errors" % gen.errors 8366 print "%d errors" % gen.errors
8354 return 1 8367 return 1
8355 return 0 8368 return 0
8356 8369
8357 8370
8358 if __name__ == '__main__': 8371 if __name__ == '__main__':
8359 sys.exit(main(sys.argv[1:])) 8372 sys.exit(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