convert: Auto-detect API.
diff --git a/scripts/convert.py b/scripts/convert.py
index 9be7f4b..0da7bf5 100755
--- a/scripts/convert.py
+++ b/scripts/convert.py
@@ -96,22 +96,54 @@
sys.exit(1)
+def detectApiFromCsv(inCsv):
+ import csv
+ csvReader = csv.reader(open(inCsv, 'rt'), )
+ for row in csvReader:
+ print row
+ event = row[2]
+ print event
+ if event.startswith("Direct3DCreate9"):
+ return "d3d9"
+ if event.startswith("CreateDXGIFactory"):
+ return "dxgi"
+ if event.startswith("D3D10CreateDevice"):
+ return "d3d10"
+ if event.startswith("D3D11CreateDevice"):
+ return "d3d11"
+ assert False
+
+
def convertFromPix(inPix, outTrace):
pixExe = getPixExe()
- if False:
- # TODO: Use -exporttocsv option to detect which API to use
+ api = options.api
+
+ if True:
+ # Use -exporttocsv option to detect which API to use
cmd = [
pixExe,
inPix,
- '-exporttocsv', # XXX: output filename is ignored
+ '-exporttocsv',
]
+
+ # XXX: output filename is ignored
+ inPixDir, inPixFileName = os.path.split(inPix)
+ inPixName, inPixExt = os.path.splitext(inPixFileName)
+ outCsv = os.path.join(inPixDir, inPixName + '.csv')
+
+ if os.path.exists(outCsv):
+ os.remove(outCsv)
+
callProcess(cmd)
+ if os.path.isfile(outCsv):
+ api = detectApiFromCsv(outCsv)
+
cmd = [
options.apitrace,
'trace',
- '-a', options.api,
+ '-a', api,
'-o', outTrace,
pixExe,
inPix,