]> git.cworth.org Git - apitrace/blobdiff - TODO.markdown
TODO: Add some notes on additions we want to the command-line interface
[apitrace] / TODO.markdown
index c2aa1997f9f46c8f06bc7f90615cf18cad54c74a..679c5ade6177bcffe586efb4d2dccf95492fe6ed 100644 (file)
@@ -42,13 +42,7 @@ Retracing
 
 * Support multiple threads
 
-* Provide a readline-like interactive mode to gltrace
-
-  * http://github.com/antirez/linenoise
-
-    * https://github.com/antirez/linenoise/issues#issue/8
-
-  * http://hg.youterm.com/radare/file/87579f8c5087/src/dietline.c
+* Leverage `ARB_debug_output` where available.
 
 * D3D support.
 
@@ -60,6 +54,65 @@ GUI
 
 * Visualize meshes in draw commands.
 
+* Breakpointing and step-by-step debugging.
+
+CLI
+---
+
+* Add trace:      Generate a new trace by executing the given program
+* 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
+* Add diff        Identify differences between a trace dump and another trace
+* Add diff-state  Identify differences between a state dump and another trace
+* Add diff-images Identify differences between images and another trace
+
+* Add some common command-line options:
+
+  Most commands acting on a trace accept the following common options:
+
+   --calls=[RANGE]       Operate only on calls with index numbers within
+                        the specified range.
+
+   --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.
+
+     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
 -----
@@ -75,4 +128,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.