blob: 2832a6a6a279a366ddac47343c8451915246e75f [file] [edit]
@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