]> git.cworth.org Git - apitrace/blobdiff - TODO.markdown
Update to-do.
[apitrace] / TODO.markdown
index fb447668722225fe1afffc198f44f47c32e3bb9d..3cd4e4ea4e8c1900ddef2eb1a3afac24a99221cc 100644 (file)
@@ -15,7 +15,7 @@ Tracing
 
   * `pthread_self()`
 
-* Put zlib (de)compression in a separate thread.
+* Put (de)compression in a separate thread.
 
 * Trace TSCs
 
@@ -27,7 +27,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.
+
+* Trace the internal GL calls done by GLU on Mac OS X & Windows.
 
 
 Retracing
@@ -40,35 +42,79 @@ 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 trim        Trim a trace by including only the specified calls/frames
+* 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:
+
+     Example    Description        
+     -------    -----------        
+     4          A single number specifying a single call or frame.
 
-* Side-by-side state diffing.
+     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:
@@ -79,4 +125,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.