-Known bugs
-==========
-
-Failure to build libfips-32.so on amd64 without gcc-multilib package
-
- Configure script should do a test-compile with "#include
- <features.h>"
-
- Configure script should disable compilation of
- cross-architexture library if dependencies are missing (and
- inform the user)
-
- Here's a debootstap recipe that can be used for testing:
-
- apt-get install debootstrap
- mkdir /home/chroot/ubuntu
- debootstrap precise /home/chroot/ubuntu <Ubuntu mirror>
- chroot=/home/chroot/ubuntu/12.04
- mount --bind /dev/pts $chroot/dev/pts
- mount --bind /proc $chroot/proc
- chroot $chroot
-
-undefined symbol: glGenQueries
-
- The problem here is code in libfips directly calling OpenGL
- functions like glGenQueries but not linking against any OpenGL
- library.
-
- We don't want to link against any OpenGL library so that the
- application itself can choose which OpenGL to use (and how to
- link/load it).
-
- The trick is to instead make these calls indirectly by first
- calling glXGetProcAddressARB/eglGetProcAddress. There's some
- proof-of-concept code for this in the stash-egl-lookup-fixups
- branch, (which needs some cleaning up).
-
Feature requests (small-scale, near-term changes)
=================================================
Report shader compilation time.
-Add Eric's tiny hash table for collecting per-shader statistics
+Report elapsed time per frame.
- people.freedesktop.org:~anholt/hash_table
+Add options to control which metrics should be collected.
-Sort list of shaders in output
+Add Eric's tiny hash table for collecting per-shader statistics
-Use better units for shader activity (eg. absolute time, relative percentage)
+ people.freedesktop.org:~anholt/hash_table
Capture GPU performance counters.
Use ncurses for a better top-like display.
+Report timestamps and CPU time durations for operations causing
+CPU/GPU syncs.
+
Emit per-frame data in a format for external timeline viewer.
Allow enabling/disabling of tracing at run-time
Audit exisiting visualization tools before writing one from scratch
- Eero suggested that pytimechart might be well-suited:
+ Eero suggested two possibilities:
+ pytimechart
+ -----------
http://pythonhosted.org/pytimechart/index.html
+ e-graph
+ -------
+ https://gitorious.org/e-graph
+
Others?
Explore using perf/LTTng probing instead of LD_PRELOAD wrapper
This has the advantage of allowing full-system,
multi-process data collection.
+
+Things to change while replaying to isolate impact of different pieces
+of the pipeline (list by Eero)
+==============================
+ The interesting "what is a bottleneck" experiments are
+ (from back of 3D pipeline to front):
+ - Disable blend (= disable related dst reads)
+ - Binding 1x1 / NULL texture instead of real ones [1]
+ - Using simple pass-through pixel shader instead of real ones [2]
+ - Use kill / discard pixel shader instead of real ones
+ - Use 0x0 / 1x1 scissor rect
+ - Front+backface cull
+ - Disable draws
+