]> git.cworth.org Git - apitrace/blobdiff - TODO.markdown
Use markdown syntax.
[apitrace] / TODO.markdown
diff --git a/TODO.markdown b/TODO.markdown
new file mode 100644 (file)
index 0000000..f0e0d8e
--- /dev/null
@@ -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.