Allow to replay trace using only one thread, helpful when debugging
driver.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: José Fonseca <jfonseca@vmware.com>
bool profilingPixelsDrawn = false;
bool profilingMemoryUsage = false;
bool useCallNos = true;
bool profilingPixelsDrawn = false;
bool profilingMemoryUsage = false;
bool useCallNos = true;
+bool singleThread = false;
unsigned frameNo = 0;
unsigned callNo = 0;
unsigned frameNo = 0;
unsigned callNo = 0;
startTime = os::getTime();
startTime = os::getTime();
- RelayRace race;
- race.run();
+ if (singleThread) {
+ trace::Call *call;
+ while ((call = parser.parse_call())) {
+ retraceCall(call);
+ delete call;
+ };
+ flushRendering();
+ } else {
+ RelayRace race;
+ race.run();
+ }
long long endTime = os::getTime();
float timeInterval = (endTime - startTime) * (1.0 / os::timeFrequency);
long long endTime = os::getTime();
float timeInterval = (endTime - startTime) * (1.0 / os::timeFrequency);
" -S, --snapshot=CALLSET calls to snapshot (default is every frame)\n"
" -v, --verbose increase output verbosity\n"
" -D, --dump-state=CALL dump state at specific call no\n"
" -S, --snapshot=CALLSET calls to snapshot (default is every frame)\n"
" -v, --verbose increase output verbosity\n"
" -D, --dump-state=CALL dump state at specific call no\n"
- " -w, --wait waitOnFinish on final frame\n";
+ " -w, --wait waitOnFinish on final frame\n"
+ " --singlethread use a single thread to replay command stream\n";
PPD_OPT,
PMEM_OPT,
SB_OPT,
PPD_OPT,
PMEM_OPT,
SB_OPT,
{"snapshot", required_argument, 0, 'S'},
{"verbose", no_argument, 0, 'v'},
{"wait", no_argument, 0, 'w'},
{"snapshot", required_argument, 0, 'S'},
{"verbose", no_argument, 0, 'v'},
{"wait", no_argument, 0, 'w'},
+ {"singlethread", no_argument, 0, SINGLETHREAD_OPT},
case SB_OPT:
retrace::doubleBuffer = false;
break;
case SB_OPT:
retrace::doubleBuffer = false;
break;
+ case SINGLETHREAD_OPT:
+ retrace::singleThread = true;
+ break;
case 's':
snapshotPrefix = optarg;
if (snapshotFrequency.empty()) {
case 's':
snapshotPrefix = optarg;
if (snapshotFrequency.empty()) {