]> git.cworth.org Git - apitrace/blobdiff - TODO.markdown
Mention apitrace trim in the documentation.
[apitrace] / TODO.markdown
index f0e0d8e62dc4c6a30a36c4175b595f3fa4873512..e59668768ed1e12cbfb7406d23afe6ce01e63b88 100644 (file)
@@ -9,13 +9,7 @@ Tracing
 
 * Allow clamping to a GL version or a number of extensions.
 
-* Trace multiple threads:
-
-  * `GetCurrentThreadId()`
-
-  * `pthread_self()`
-
-* Put zlib (de)compression in a separate thread.
+* Put (de)compression in a separate thread.
 
 * Trace TSCs
 
@@ -27,10 +21,9 @@ Tracing
 * Start tracing on demand (e.g., key-press, or by frame no), emitting calls
   that recreate all current state.
 
-* Add option to include call stack frames in the trace
+* Add option to include call stack frames in the trace.
 
-* Call gzflush() only when there is a signal/exception, except of doing it on
-  every call.
+* Trace the internal GL calls done by GLU on Mac OS X & Windows.
 
 
 Retracing
@@ -43,35 +36,78 @@ Retracing
 
 * Support multiple threads
 
-* Provide a readline-like interactive mode to gltrace
+* Leverage `ARB_debug_output` where available.
 
-  * http://github.com/antirez/linenoise
+* D3D support.
 
-    * https://github.com/antirez/linenoise/issues#issue/8
 
-  * http://hg.youterm.com/radare/file/87579f8c5087/src/dietline.c
+GUI
+---
 
-* Plug memory leaks.
+* Timeline view.
 
-* Allow to retrace with two libGL.so in parallel, and output differences in
-  rendered frames / draw calls.
+* Visualize meshes in draw commands.
 
-* D3D support.
+* Breakpointing and step-by-step debugging.
 
 
-GUI
+CLI
 ---
 
-* Timeline view.
+* Add retrace     Replay all the calls in a trace
+* Add dump-state  Output the OpenGL state in JSON format
+* Add dump-images Create image files for each frame/drawing operation of a trace
 
-* Visualize meshes in draw commands.
+* Add some common command-line options:
 
+  Most commands acting on a trace accept the following common options:
 
-Other:
+   --calls=[RANGE]       Operate only on calls with index numbers within
+                        the specified range.
 
-* Side-by-side trace diffing; either as a separate tool on or the GUI.
+   --frames=[RANGE]      Operate only on frames with index numbers within
+                        the specified range.
+
+   --functions=[REGEXP]  Operate only on function calls which have a
+                        name that matches the given regular expression.
+
+   A [RANGE] can be any of the following:
 
-* Side-by-side state diffing.
+     Example    Description        
+     -------    -----------        
+     4          A single number specifying a single call or frame.
+
+     10-20      Two numbers separated by '-' (FIRST-LAST) specifying a
+               range of consecutive calls/frames from FIRST to LAST. If
+               either of FIRST or LAST is omitted, the first or last
+               call/frame index in the trace will be used.
+
+     1-100/5    Either of the above range specifications followed by '/'
+               and a number (INTERVAL). This specifies the inclusion of
+               only each INTERVAL call/frame within the range. For
+               example, 1-100/5 species frame 1, frame 5, frame 10,
+               ... up to frame 100.
+
+     4,10-20/2  A comma separated list of any of the above range
+               specifications, specifying the union of the ranges.
+
+* Add some retrace-specific options (-b, -db, -sb, -v)
+
+* Add some trime-specific options (--every={draw,framebuffer,frame})
+
+* Accept a filename for --calls or --functions (to use the same calls
+  or functions as present in a trace dump).
+
+* Add an "apitrace bisect" for trimming down a trace based on user
+  input at each stage.
+
+* Add an "apitrace git-bisect-helper" for calling from git-bisect.
+
+
+Other
+-----
+
+* Side-by-side trace diffing; either as a separate tool on or the GUI.
 
 * Ability to extract just a single frame from a trace, and all previous calls
   that contributed to it:
@@ -82,4 +118,10 @@ Other:
     of the frame.
 
 
-See also FIXME, TODO, and XXX comments on the source code.
+See also:
+
+* open issues on [github](https://github.com/apitrace/apitrace/issues)
+
+* _Known issues_ section in BUGS.markdown
+
+* FIXME, TODO, and XXX comments on the source code.