case trace::API_D3D9:
wrapperFilename = "d3d9.dll";
break;
- case trace::API_D3D10:
- case trace::API_D3D10_1:
- case trace::API_D3D11:
+ case trace::API_DXGI:
wrapperFilename = "dxgitrace.dll";
useInject = true;
break;
return 1;
}
- os::String wrapperPath = findWrapper(wrapperFilename);
+ os::String wrapperPath = findWrapper(wrapperFilename, verbose);
if (!wrapperPath.length()) {
- std::cerr << "error: failed to find " << wrapperFilename << "\n";
+ std::cerr << "error: failed to find " << wrapperFilename << " wrapper\n";
goto exit;
}
#if defined(_WIN32)
+ useInject = true;
if (useInject) {
args.push_back("inject");
args.push_back(wrapperPath);
for (char * const * arg = argv; *arg; ++arg) {
args.push_back(*arg);
}
- args.push_back(NULL);
if (verbose) {
const char *sep = "";
std::cerr << "\n";
}
+ args.push_back(NULL);
+
status = os::execute((char * const *)&args[0]);
exit:
" -v, --verbose verbose output\n"
" -a, --api=API specify API to trace ("
#ifdef _WIN32
- "gl, d3d7, d3d8, d3d9, or d3d10"
+ "gl, d3d7, d3d8, d3d9, or dxgi (for d3d10 and higher) "
#else
"gl or egl"
#endif
api = trace::API_D3D8;
} else if (strcmp(optarg, "d3d9") == 0) {
api = trace::API_D3D9;
- } else if (strcmp(optarg, "d3d10") == 0) {
- api = trace::API_D3D10;
- } else if (strcmp(optarg, "d3d10_1") == 0) {
- api = trace::API_D3D10_1;
- } else if (strcmp(optarg, "d3d11") == 0) {
- api = trace::API_D3D11;
+ } else if (strcmp(optarg, "dxgi") == 0 ||
+ strcmp(optarg, "d3d10") == 0 ||
+ strcmp(optarg, "d3d10_1") == 0 ||
+ strcmp(optarg, "d3d11") == 0 ||
+ strcmp(optarg, "d3d11_1") == 0) {
+ api = trace::API_DXGI;
} else {
std::cerr << "error: unknown API `" << optarg << "`\n";
usage();