mesa/src
Roland Scheidegger 3a1da0abee gallivm: print out how long it takes to optimize shader IR.
Enabled with GALLIVM_DEBUG=perf (which up to now was only used to print
warnings for unoptimized code).

While some unexpectedly long shader compile times for some shaders were fixed
with 8a9f5ecdb1 this should help recognize such
problems in the future. For now though only available in debug builds (which
are not always suitable for such analysis). And since this uses system time,
it might not be all that accurate (even llvmpipe's own rasterization threads
might be running at the same time, or just other tasks).
(llvmpipe also has LP_DEBUG=counters but this only gives an average per shader
and the the total time for all shaders.)
This prints information like this:
optimizing module fs17_variant0 took 1 msec
optimizing module setup_variant_0 took 0 msec
optimizing module draw_llvm_vs_variant0 took 9 msec
optimizing module draw_llvm_vs_variant0 took 12 msec
optimizing module fs17_variant1 took 2 msec

v2: rebase for recent gallivm compilation changes, and print time for whole
modules instead of functions (otherwise it would be very spammy since it would
include all trivial inline sse2 functions), using the shiny new module names,
prying them off LLVM using new helper (not available through C bindings).
Per function timings, while possibly giving more information (if there'd be
a problem only in for instance the partial not the whole function), don't seem
all that useful for now.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
2014-05-16 22:50:14 +02:00
..
egl wayland: Move version 2 request to end of interface specification 2014-05-12 15:55:21 -07:00
gallium gallivm: print out how long it takes to optimize shader IR. 2014-05-16 22:50:14 +02:00
gbm gbm: cleanup __DRI*extension handling 2014-04-28 19:13:38 +01:00
getopt
glsl glsl: Add C-callable fprint_ir function. 2014-05-15 15:45:39 -07:00
glx glx/tests: Partially revert commit 51e3569573 2014-05-10 02:08:36 +01:00
gtest gtest: Update to 1.7.0. 2014-04-14 00:06:53 -07:00
hgl haiku libGL: Move from gallium target to src/hgl 2014-01-06 15:50:21 -06:00
loader loader: don't limit the non-udev path to only android 2014-04-05 12:17:28 +01:00
mapi mesa: Add core support for the GL_INTEL_performance_query extension. 2014-05-02 10:07:04 -07:00
mesa mesa: fix double-freeing of dispatch tables inside glBegin/End. 2014-05-16 07:14:57 -06:00
Makefile.am src/build: Add getopt to distribution. 2014-04-07 09:41:02 -07:00
SConscript loader: introduce the loader util lib 2014-01-18 18:47:27 +00:00