X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=TODO.markdown;h=2fd23831aa55beec34ef9d7db5a30f5058a39650;hb=4c5f6fa4d7474bc2a13a6c00bd3f4ac47ff56920;hp=fb447668722225fe1afffc198f44f47c32e3bb9d;hpb=07348d58030f889a4ec11bfcef9a32628e55afa4;p=apitrace diff --git a/TODO.markdown b/TODO.markdown index fb44766..2fd2383 100644 --- a/TODO.markdown +++ b/TODO.markdown @@ -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,7 +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. + +* Trace the internal GL calls done by GLU on Mac OS X & Windows. Retracing @@ -40,35 +36,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: -* 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: @@ -79,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.