@echo off if "%1"=="/?" goto :showhelp if "%1"=="-?" goto :showhelp if "%1"=="-help" goto :showhelp if "%1"=="--help" goto :showhelp setlocal if "%HLSL_SRC_DIR%"=="" ( echo Missing source directory. if exist %~dp0..\..\LLVMBuild.txt ( set HLSL_SRC_DIR=%~dp0..\.. echo Source directory deduced to be %~dp0..\.. ) else ( exit /b 1 ) ) set _TRACE_SESSION_NAME=hctetwsession if "%_PROVIDER_GUIDS%" == "" ( echo _PROVIDER_GUIDS not set - setting to dxcompiler provider. set _PROVIDER_GUIDS=5c65fe8c-9f96-4bfd-9a87-9f8ebd45da64 ) else ( echo _PROVIDER_GUIDS already set - appending dxcompiler providers. set _PROVIDER_GUIDS=%_PROVIDER_GUIDS%+5c65fe8c-9f96-4bfd-9a87-9f8ebd45da64 ) set _TRACE_FILENAME=%TEMP%\hctetwsession.etl if not "%2"=="" ( set _TRACE_FILENAME=%2 ) if "%1"=="-start" ( call :do_start ) else if "%1"=="-stop" ( call :do_stop ) else if "%1"=="-view" ( call :do_view ) else ( echo Unknown command. goto :showhelp ) goto :eof :do_start xperf -start %_TRACE_SESSION_NAME% -on %_PROVIDER_GUIDS% -f %_TRACE_FILENAME% if errorlevel 1 ( echo xperf command failed to start the session exit /b 1 ) exit /b 0 :do_stop xperf -stop %_TRACE_SESSION_NAME% if errorlevel 1 ( echo xperf command failed to stop the session exit /b 1 ) exit /b 0 :do_view if not exist %_TRACE_FILENAME% ( echo %_TRACE_FILENAME% does not exist. echo Consider running hcttrace -start exit /b 1 ) tracerpt %_TRACE_FILENAME% -import %HLSL_SRC_DIR%\include\dxc\Tracing\dxcetw.man -y -o %_TRACE_FILENAME%.xml if errorlevel 1 ( echo Failed to generate trace report. exit /b 1 ) rem Move to location of prior file. rem cscript //Nologo %HLSL_SRC_DIR%\utils\hct\hcttracei.js /i:%_TRACE_FILENAME%.xml where python.exe 1>nul 2>nul if errorlevel 1 ( rem TODO - discover rather than hard-code %SystemDrive%\Python27\python.exe %HLSL_SRC_DIR%\utils\hct\hcttracei.py %_TRACE_FILENAME%.xml ) else ( python.exe %HLSL_SRC_DIR%\utils\hct\hcttracei.py %_TRACE_FILENAME%.xml ) exit /b 0