X-Git-Url: https://git.cworth.org/git?p=apitrace;a=blobdiff_plain;f=TODO.markdown;h=d8375aee0062ea151dcd35dda3ecc113f00fd5c6;hp=c3afde725ebe73c9c8d0442b5357e2b4600fe974;hb=HEAD;hpb=32420d2167c14c4c00d351e8807031b64bce06ef diff --git a/TODO.markdown b/TODO.markdown index c3afde7..d8375ae 100644 --- a/TODO.markdown +++ b/TODO.markdown @@ -1,135 +1 @@ -Things To Do -============ - -(in no particular order) - - -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. - -* Trace TSCs - -* Trace window sizes somehow - -* Allow to distinguish between the calls really done by the program, vs the - fakes one necessary to retrace correctly. - -* 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. - -* Trace the internal GL calls done by GLU on Mac OS X & Windows. - - -Retracing ---------- - -* Use visuals that best match those used in the trace; specially auto - detect single/double buffer visuals. - -* Respect multiple context sharing of the traces. - -* Support multiple threads - -* Leverage `ARB_debug_output` where available. - -* D3D support. - - -GUI ---- - -* Timeline view. - -* 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 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 ------ - -* 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: - - * via a state tracker (i.e., knowledge of how calls affect the state); - - * or by leveragine retrace, dumping the calls to emit all state at beginning - of the frame. - - -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. +Content moved to the [wiki](https://github.com/apitrace/apitrace/wiki/ToDo).