shader-slang / slang

Making it easier to work with shaders
MIT License
2.06k stars 177 forks source link

Create the breakdown profiling of slang #4209

Closed kaizhangNV closed 3 months ago

kaizhangNV commented 4 months ago

Currently we only profile the total compile time and downstream compile time of slang. But we really need a way to have a breakdown the front-end, link, back-end compile time.

Also, we noticed that there is performance regression on the latest slang version comparing to v0.24.x, so we need to back-port the profiler to the older version such that we can have a reliable comparison.

jkwak-work commented 4 months ago

There are two command-line arguments for slangc.exe: -report-downstream-time and -report-perf-benchmark. It sounds like this task will be to improve -report-perf-benchmark, is it? Or do we need a new compiler option for this task?

jkwak-work commented 4 months ago

Just FYI, here is how it looks like when I used -report-perf-benchmar,

$ build/Release/bin/slangc.exe -report-perf-benchmark tests/glsl-intrinsic/intrinsic-basic.slang -allow-glsl
(0): note 103: compiler performance benchmark:
loadStdLib:     1       198
checkAllTranslationUnits:       2       1039
generateIRForTranslationUnit:   2       155
performMandatoryEarlyInlining:  7       9

Type Dictionary Size: 2575