X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=TODO.markdown;fp=TODO.markdown;h=f0e0d8e62dc4c6a30a36c4175b595f3fa4873512;hb=0b21731c7bda21fd8bab167fee9766a647f832e2;hp=0000000000000000000000000000000000000000;hpb=65b1e54c7b64f9088f0c4fe9c993b3303bd44bcc;p=apitrace diff --git a/TODO.markdown b/TODO.markdown new file mode 100644 index 0000000..f0e0d8e --- /dev/null +++ b/TODO.markdown @@ -0,0 +1,85 @@ +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 + +* Call gzflush() only when there is a signal/exception, except of doing it on + every call. + + +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 + +* 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 + +* Plug memory leaks. + +* Allow to retrace with two libGL.so in parallel, and output differences in + rendered frames / draw calls. + +* D3D support. + + +GUI +--- + +* Timeline view. + +* Visualize meshes in draw commands. + + +Other: + +* Side-by-side trace diffing; either as a separate tool on or the GUI. + +* Side-by-side state diffing. + +* 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 FIXME, TODO, and XXX comments on the source code.