'd3d11_1': 'd3d11',
}
- api_retrace_map = {
- 'gl': 'glretrace',
- 'egl_gl': 'eglretrace',
- 'egl_gles1': 'eglretrace',
- 'egl_gles2': 'eglretrace',
- #'d3d8': 'd3dretrace',
- 'd3d9': 'd3dretrace',
- 'd3d10': 'd3dretrace',
- 'd3d10_1': 'd3dretrace',
- 'd3d11': 'd3dretrace',
- 'd3d11_1': 'd3dretrace',
+ api_replay_map = {
+ 'gl': 'glreplay',
+ 'egl_gl': 'eglreplay',
+ 'egl_gles1': 'eglreplay',
+ 'egl_gles2': 'eglreplay',
+ 'd3d8': 'd3dreplay',
+ 'd3d9': 'd3dreplay',
+ 'd3d10': 'd3dreplay',
+ 'd3d10_1': 'd3dreplay',
+ 'd3d11': 'd3dreplay',
+ 'd3d11_1': 'd3dreplay',
}
def traceApp(self):
cmd = [
options.apitrace, 'trace',
- '--api', self.api_trace_map[self.api],
- '--output', self.trace_file,
+ '-v',
+ '-a', self.api_trace_map[self.api],
+ '-o', self.trace_file,
'--'
] + cmd
if self.max_frames is not None:
def checkTrace(self):
sys.stderr.write('Comparing trace %s against %s...\n' % (self.trace_file, self.ref_dump))
- cmd = [options.apitrace, 'dump', '--color=never', self.trace_file]
- p = popen(cmd, stdout=subprocess.PIPE)
+ cmd = [options.apitrace, 'dump', '--verbose', '--color=never', self.trace_file]
+ p = popen(cmd, stdout=subprocess.PIPE, universal_newlines=True)
srcParser = SrcTraceParser(p.stdout)
srcTrace = srcParser.parse()
sys.stdout.flush()
sys.stderr.write('\n')
- if self.api not in self.api_retrace_map:
+ if self.api not in self.api_replay_map:
return
for callNo, refImageFileName in images:
s = json.dumps(state, sort_keys=True, indent=2)
open(filename, 'wt').write(s)
- def retrace(self):
- if self.api not in self.api_retrace_map:
+ def replay(self):
+ if self.api not in self.api_replay_map:
return
sys.stderr.write('Retracing %s...\n' % (self.trace_file,))
- p = self._retrace()
+ p = self._replay()
p.wait()
if p.returncode != 0:
- fail('retrace failed with code %i' % (p.returncode))
+ fail('replay failed with code %i' % (p.returncode))
sys.stdout.flush()
sys.stderr.write('\n')
from PIL import Image
state = self.getState(callNo)
if self.doubleBuffer:
- attachments = ['GL_BACK', 'GL_BACK_LEFT', 'GL_BACK_RIGHT', 'GL_COLOR_ATTACHMENT0']
+ attachments = ['GL_BACK', 'GL_BACK_LEFT', 'GL_BACK_RIGHT', 'GL_COLOR_ATTACHMENT0', 'RENDER_TARGET_0']
else:
- attachments = ['GL_FRONT', 'GL_FRONT_LEFT', 'GL_FRONT_RIGHT', 'GL_COLOR_ATTACHMENT0']
+ attachments = ['GL_FRONT', 'GL_FRONT_LEFT', 'GL_FRONT_RIGHT', 'GL_COLOR_ATTACHMENT0', 'RENDER_TARGET_0']
imageObj = self.getFramebufferAttachment(state, attachments)
data = imageObj['__data__']
stream = StringIO(base64.b64decode(data))
im = Image.open(stream)
- im.save('test.png')
return im
def getFramebufferAttachment(self, state, attachments):
else:
return state
- p = self._retrace(['-D', str(callNo)])
+ p = self._replay(['-D', str(callNo)])
state = json.load(p.stdout, strict=False)
p.wait()
if p.returncode != 0:
- fail('retrace returned code %i' % (p.returncode))
+ fail('replay returned code %i' % (p.returncode))
self.adjustSrcState(state)
except KeyError:
pass
- def _retrace(self, args = None, stdout=subprocess.PIPE):
- retrace = self.api_retrace_map[self.api]
- #cmd = [get_build_program(retrace)]
- cmd = [options.apitrace, 'retrace']
+ def _replay(self, args = None, stdout=subprocess.PIPE):
+ replay = self.api_replay_map[self.api]
+ #cmd = [get_build_program(replay)]
+ cmd = [options.apitrace, 'replay']
if self.doubleBuffer:
cmd += ['-db']
else:
self.runApp()
self.traceApp()
self.checkTrace()
- self.retrace()
+ self.replay()
pass_()