]> git.cworth.org Git - apitrace/blobdiff - TODO.markdown
First stab at tracing thread IDs.
[apitrace] / TODO.markdown
index c2aa1997f9f46c8f06bc7f90615cf18cad54c74a..2fd23831aa55beec34ef9d7db5a30f5058a39650 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
 
@@ -42,13 +36,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 +48,62 @@ GUI
 
 * Visualize meshes in draw commands.
 
+* Breakpointing and step-by-step debugging.
+
+
+CLI
+---
+
+* 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 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 +119,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.