-#!/usr/bin/env python
# Copyright (C) 2012 Intel Corporation
#
# Store the "marshal" attribute, if present.
self.marshal = element.get('marshal')
+ self.marshal_sync = element.get('marshal_sync')
+ self.marshal_call_after = element.get('marshal_call_after')
def marshal_flavor(self):
"""Find out how this function should be marshalled between
for p in self.parameters:
if p.is_output:
return 'sync'
- if p.is_pointer() and not (p.count or p.counter) and not (self.marshal == 'draw' and p.name == 'indices'):
+ if (p.is_pointer() and not (p.count or p.counter or p.marshal_count)
+ and not (self.marshal == 'draw'
+ and (p.name == 'indices' or p.name == 'indirect'))):
return 'sync'
- if p.count_parameter_list:
+ if p.count_parameter_list and not p.marshal_count:
# Parameter size is determined by enums; haven't
# written logic to handle this yet. TODO: fix.
return 'sync'