: QThread(parent),
m_benchmarking(false),
m_doubleBuffered(true),
+ m_singlethread(false),
m_captureState(false),
m_captureCall(0),
m_profileGpu(false),
m_profilePixels(false)
{
qRegisterMetaType<QList<ApiTraceError> >();
-
-#ifdef Q_OS_WIN
- QString format = QLatin1String("%1;");
-#else
- QString format = QLatin1String("%1:");
-#endif
- QString buildPath = format.arg(APITRACE_BINARY_DIR);
- m_processEnvironment = QProcessEnvironment::systemEnvironment();
- m_processEnvironment.insert("PATH", buildPath +
- m_processEnvironment.value("PATH"));
-
- qputenv("PATH",
- m_processEnvironment.value("PATH").toLatin1());
}
QString Retracer::fileName() const
m_fileName = name;
}
+QString Retracer::remoteTarget() const
+{
+ return m_remoteTarget;
+}
+
+void Retracer::setRemoteTarget(const QString &host)
+{
+ m_remoteTarget = host;
+}
+
void Retracer::setAPI(trace::API api)
{
m_api = api;
m_doubleBuffered = db;
}
+bool Retracer::isSinglethread() const
+{
+ return m_singlethread;
+}
+
+void Retracer::setSinglethread(bool singlethread)
+{
+ m_singlethread = singlethread;
+}
+
bool Retracer::isProfilingGpu() const
{
return m_profileGpu;
case trace::API_D3D7:
case trace::API_D3D8:
case trace::API_D3D9:
- case trace::API_D3D10:
- case trace::API_D3D10_1:
- case trace::API_D3D11:
+ case trace::API_DXGI:
#ifdef Q_OS_WIN
prog = QLatin1String("d3dretrace");
#else
return;
}
+ if (m_singlethread) {
+ arguments << QLatin1String("--singlethread");
+ }
+
if (m_captureState) {
arguments << QLatin1String("-D");
arguments << QString::number(m_captureCall);
arguments << m_fileName;
+ /*
+ * Support remote execution on a separate target.
+ */
+
+ if (m_remoteTarget.length() != 0) {
+ arguments.prepend(prog);
+ arguments.prepend(m_remoteTarget);
+ prog = QLatin1String("ssh");
+ }
+
/*
* Start the process.
*/
if (m_captureState) {
ApiTraceState *state = new ApiTraceState(parsedJson);
emit foundState(state);
- msg = QLatin1String("State fetched.");
}
if (m_captureThumbnails && !thumbnails.isEmpty()) {