Carl Worth [Mon, 20 Aug 2012 16:45:27 +0000 (09:45 -0700)]
cli: Add a simple "apitrace replay" sub-command.
This calls out to glretrace in order to replay a trace. Currently it
only supports the -w,--wait option, (and not yet any of the profiling
support).
With this command and the existing "apitrace dump-images", we're quite
close to being able to relegate glretrace to an implementation detail
used by the apitrace program, (such that soon, it won't be necessary
to provide glretrace on the user's PATH).
Carl Worth [Sun, 12 Aug 2012 23:36:48 +0000 (16:36 -0700)]
dump-images: Execute glretrace from source dir when running uninstalled
Previously, we've had code to carefully find wrappers and scripts
relative to an apitrace binary being run from an uninstalled
directory. This is extremely useful while testing an experimental
feature before installing said experimental code.
Similarly, provide a findProgram function to do the same thing for an
executable program and use it within "apitrace dump-images" when
invoking glretrace.
Carl Worth [Sun, 12 Aug 2012 23:01:09 +0000 (16:01 -0700)]
Move trace::findWrapper to trace_resource.cpp
It's not actually used outside of trace_tools_trace.cpp, but it is so
similar to the existing trace::findScript in trace_resource.cpp that
there are benefits to having them defined in the same file.
Carl Worth [Sun, 12 Aug 2012 19:44:50 +0000 (12:44 -0700)]
glretrace: Use getopt rather than manual parsing of command-line options
This allows for better consistency with other apitrace command-line
interface. It also provids for several new full-name options where
previously only a single-letter option was available,
(--snapshot-prefix for -s, --verbose for -v, et.).
We use getopt_long_only here to maintain compatibility with the older
style of long options with one dash (-core) as well as providing the
double-dash version )--core).
It would now be quite convenient to regularize the command-line
interface to glretrace in several ways. None of these are performed in
this commit to avoid breaking compatibility with existing scripts,
etc.:
* Combine related options under a single name (--pcpu and --pgpu
could be something like --profile=cpu,gpu).
* Combine options with the same meaning that would never be used
independently. Snapshot generation and snapshot comparison are
different modes. Meanwhile, prefix selection and call selection
should apply identically to either mode. So both modes can use a
single set of options (--prefix and --calls) rather than having
separate --snapshot-prefix and --snapshot options.
Carl Worth [Sun, 12 Aug 2012 23:48:10 +0000 (16:48 -0700)]
Move static boolOption function to trace::boolOption
Other programs will also want to be able to parse Boolean command-line
options, so we should share this code in order to easily get
consistent behavior.
Imre Deak [Tue, 24 Apr 2012 11:06:48 +0000 (14:06 +0300)]
gles: track gl buffer contents in a shadow buffer
This is needed since GLES/GLES2 don't support either glGetBufferSubData
or glMapBufferOES. At the moment apitrace is only interested in
GL_ELEMENT_ARRAY_BUFFER contents so don't track buffers of other types.
José Fonseca [Fri, 26 Oct 2012 17:13:10 +0000 (18:13 +0100)]
More efficient synchronous multi-threading.
Mimic a relay race, where only one thread is running at one time.
This gracefully degrades to the old behavior for single-threaded traces,
and is faster for multi-threaded traces, while still ensuring that the
recorded order is preserved.