• Home
  • History
  • Annotate
  • only in /frameworks/native/opengl/libs/GLES_trace/src/
History log of /frameworks/native/opengl/libs/GLES_trace/src/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
16d7b6a8bb6f22ddd9252c6c0aefa84a53b65d53 18-Aug-2014 Ben Clayton <bclayton@google.com> Don't try to capture the pointer when using PBOs for texture APIs

If a PBO is bound, then the pointer argument is a relative offset from
the start of the PBO, not an absolute address.

Fixes b/17063439

Change-Id: I39629ce6c9bb3cb6bac5c9b0311287628306ddd4
(cherry picked from commit 0ad707f2f3d714af7d983d68330ed51dace815f5)
ltrace_context.cpp
ltrace_context.h
ltrace_fixup.cpp
7b3f48d2efc83094de70c24520bafacda3749a20 17-Jul-2014 Ben Clayton <bclayton@google.com> Use the count parameter to store all the uniform vectors, not just the first one. DO NOT MERGE.

Change-Id: Ib56d859051f0b895de5c12ffa371cd4b2b65ac0b
(cherry picked from commit 31b0aec64ba44b1ee0581e00a588d84f4b081512)
ltrace_fixup.cpp
3d3c125423ab922e705c3f563c689bd7c4a04bac 07-Jul-2014 Ben Clayton <bclayton@google.com> Add data capturing of glCompressedTexImage2D and glCompressedTexSubImage2D calls.

Change-Id: I38643f5d279a84f1b7069801d7c106fc8f1ae394
ltrace_fixup.cpp
fca1b54031a1ba2a3c82bbbbe71716cd7e6a61d7 18-May-2014 Jesse Hall <jessehall@google.com> opengl: Regenerate code with ES 3.1 and new extensions

Enable ES 3.1 generation in glgen.py, and regenerate everything to add
support for that as well as these new extensions in the registry:
- EXT_copy_image
- EXT_draw_buffers_indexed
- EXT_geometry_shader
- EXT_gpu_shader5
- EXT_primitive_bounding_box
- EXT_shader_implicit_conversions
- EXT_shader_io_blocks
- EXT_tessellation_shader
- EXT_texture_border_clamp
- EXT_texture_buffer
- EXT_texture_cube_map_array
- EXT_texture_view

Bug: 15028495
Change-Id: I3f45a7ef5367c70e54ce6b36a8c030ae11033434
ltrace.pb.cpp
ltrace.pb.h
ltrace_api.cpp
ltrace_api.h
3703f7f014846b8bf83e08a8bf25450dd0dcd7af 14-May-2014 Jesse Hall <jessehall@google.com> opengl: Update GLES headers and generate *.in from registry XML

Import GLES headers from Khronos SVN r26322:
https://cvs.khronos.org/svn/repos/registry/trunk/public/gles/api

There are many non-functional whitespace and parameter name changes
included here. These were introduced upstream when converting from the
old .spec registry to the new XML registry.

There are also some new extensions added. Unfortunately there isn't a
version of the XML that matches the headers the previous versions of
the *.in files were generated from, so I can't separate out the
non-functional changes from the new extensions (other than temporarily
hacking them out of the XML). See below for a list.

Finally, I had to hack the official glext.h. Khronos hasn't updated
the official GLES1 headers since switching to the XML registry, and
there is one critical difference: a "const void**" parameter in the
official header is "const void* const*" in the registry. I changed the
header to avoid build errors with code generated from the registry.

Dependencies on the *.in files required manually updating some
GLES_trace/ files as well:

- gltrace_api.{h,cpp} must be manually re-generated using
tools/genapi.py.
- New GL prototypes must be manually added to gltrace.proto.
- gltrace.pb.{h,cpp} must be regenerated using aprotoc (see dev.make)

New GLES extensions in libs/GLES_CM/glext_api.in:
- GL_OES_byte_coordinates
- GL_EXT_map_buffer_range
- GL_APPLE_copy_texture_levels
- GL_APPLE_sync

New GLES2 extensions in libs/GLES2/gl2ext_api.in:
- GL_KHR_blend_equation_advanced
- GL_KHR_debug
- GL_OES_sample_shading
- GL_OES_texture_storage_multisample_2d_array
- GL_EXT_disjoint_timer_query
- GL_EXT_draw_buffers
- GL_EXT_draw_instanced
- GL_EXT_instanced_arrays
- GL_EXT_map_buffer_range
- GL_EXT_map_buffer_range
- GL_EXT_multiview_draw_buffers
- GL_EXT_separate_shader_objects
- GL_ANGLE_instanced_arrays
- GL_ANGLE_translated_shader_source
- GL_APPLE_copy_texture_levels
- GL_APPLE_sync
- GL_INTEL_performance_query
- GL_NV_blend_equation_advanced
- GL_NV_copy_buffer
- GL_NV_draw_instanced
- GL_NV_framebuffer_blit
- GL_NV_framebuffer_multisample
- GL_NV_instanced_arrays
- GL_NV_non_square_matrices

Bug: 15028495
Change-Id: I902517c23354e14f9c63b1584db286d682315bb5
ltrace.pb.cpp
ltrace.pb.h
ltrace_api.cpp
ltrace_api.h
0b96e6c44b3c4549bd947fd2947540f4b62a038e 20-May-2014 Jesse Hall <jessehall@google.com> Revert "opengl: Generate *.in from registry XML"

This reverts commit 4a73962c694bfe57eb2bea40ed6fb626be7006aa.

Change-Id: I1fa5cbe4d0b86f6df69d616157b3fec68d706d7a
ltrace.pb.cpp
ltrace.pb.h
ltrace_api.cpp
ltrace_api.h
4a73962c694bfe57eb2bea40ed6fb626be7006aa 14-May-2014 Jesse Hall <jessehall@google.com> opengl: Generate *.in from registry XML

There are many non-functional whitespace and parameter name changes
included here. These were introduced upstream when converting from the
old .spec registry to the new XML registry.

There are also some new extensions added. Unfortunately there isn't a
version of the XML that matches the headers the previous versions of
the *.in files were generated from, so I can't separate out the
non-functional changes from the new extensions (other than temporarily
hacking them out of the XML). See below.

Finally, I had to hack the official glext.h. Khronos hasn't updated
the official GLES1 headers since switching to the XML registry, and
there is one critical difference: a "const void**" parameter in the
official header is "const void* const*" in the registry. I changed the
header to avoid build errors with code generated from the registry.

Dependencies on the *.in files required manually updating some
GLES_trace/ files as well:

- gltrace_api.{h,cpp} must be manually re-generated using
tools/genapi.py.
- New GL prototypes must be manually added to gltrace.proto.
- gltrace.pb.{h,cpp} must be regenerated using aprotoc (see dev.make)

New GLES extensions in libs/GLES_CM/glext_api.in:
- GL_OES_byte_coordinates
- GL_EXT_map_buffer_range
- GL_APPLE_copy_texture_levels
- GL_APPLE_sync

New GLES2 extensions in libs/GLES2/gl2ext_api.in:
- GL_KHR_blend_equation_advanced
- GL_KHR_debug
- GL_OES_sample_shading
- GL_OES_texture_storage_multisample_2d_array
- GL_EXT_disjoint_timer_query
- GL_EXT_draw_buffers
- GL_EXT_draw_instanced
- GL_EXT_instanced_arrays
- GL_EXT_map_buffer_range
- GL_EXT_map_buffer_range
- GL_EXT_multiview_draw_buffers
- GL_EXT_separate_shader_objects
- GL_ANGLE_instanced_arrays
- GL_ANGLE_translated_shader_source
- GL_APPLE_copy_texture_levels
- GL_APPLE_sync
- GL_INTEL_performance_query
- GL_NV_blend_equation_advanced
- GL_NV_copy_buffer
- GL_NV_draw_instanced
- GL_NV_framebuffer_blit
- GL_NV_framebuffer_multisample
- GL_NV_instanced_arrays
- GL_NV_non_square_matrices

Bug: 15028495
Change-Id: Ib3fa700a146adf7f1487a93e459b1e6df0dcdc42
ltrace.pb.cpp
ltrace.pb.h
ltrace_api.cpp
ltrace_api.h
4c0596f4cc7d3a0bbbe5862cb38585a58ef4d0a3 14-May-2014 Jesse Hall <jessehall@google.com> Rationalize GLES2/3 .in files.

We weren't using gl2_api.in, since gl3_api.in was a superset. And
gl3ext_api.in was empty, and Khronos has decided to keep it that way
(any GLES2/3/... extensions will be in gl2ext.h).

Since libGLES2.so will have all future backwards-compatible GLES APIs,
it makes sense to just use gl2_api.in and gl2ext_api.in to build its
contents. This changes renames gl3_api.in to gl2_api.in and updates
uses of it, and removes gl3ext_api.in and references.

Bug: 15028495
Change-Id: I0745eda27ec91ee625f03e957e4fdb22035dd781
ltrace_api.cpp
ltrace_api.h
92dc3fc52cf097bd105460cf377779bdcf146d62 12-Mar-2014 Mark Salyzyn <salyzyn@google.com> native frameworks: 64-bit compile issues

- Fix format (print/scanf)
- Suppress unused argument warning messages (bonus)

Change-Id: I05c7724d2aba6da1e82a86000e11f3a8fef4e728
ltrace_egl.cpp
39177b4103f7c8f1f9903b3f52e83048fc066235 28-Jan-2014 Siva Velusamy <vsiva@google.com> GLES_trace: fix compile errors on 64 bit architectures

GLES_trace passes some pointers back to the host. Encode them
using int64's rather than int32's

This fix requires an update to the host tool to look at pointers
as 64 bit, and if not found, then fall back to 32 bit integers.

Change-Id: I11ff2ca51290f05913c1b9143cecee1caf015543
ltrace_api.cpp
4e620ddce344e946ced992f61a69c367ff92fe24 31-May-2013 Mathias Agopian <mathias@google.com> free EGL resources associated to a thread when it terminates

destroyed but current-to-a-thread resources are only destroyed
when they're made not-current; however, we were not destroying
those when the thread itself terminated, causing these resources
to be leaked forever.

we now install a tls-key destructor that takes care of this
by calling eglReleaseThread upon thread termination.

Bug: 9209776
Change-Id: I88298a34e3a27488eb81eab76717715569c7d57c
ltrace_context.cpp
4774338bd0ad1ebe42c311fd0c72f13786b5c800 08-Feb-2013 Jesse Hall <jessehall@google.com> Add ES3 support to libGLESv2 and tracing tools

Since ES3 is backwards compatible with ES2, a new wrapper isn't
necessary, and the Khronos implementation guidelines recommend
supporting both versions with the same library.

Change-Id: If9bb02be60ce01cc5fe25d1f40c4e7f37244ebf6
ltrace.pb.cpp
ltrace.pb.h
ltrace_api.cpp
ltrace_api.h
d58974c6b25fe9fdadb38dc1f1371196b71a0913 07-Feb-2013 Jesse Hall <jessehall@google.com> Regenerate API/trace files for constness change

Change-Id: I45836219fc0e97607d83d458de9babb44f4c7534
ltrace_api.cpp
ltrace_api.h
a73a97728befb5ba5ad647ab3b60058c4d536ba4 18-Dec-2012 Siva Velusamy <vsiva@google.com> gltrace: Add support for tracing running applications.

Currently, to activate OpenGL tracing, an application has to be
start with --opengl-trace option (or have a debug prop set).

This CL adds support for tracing an application which may already
be running. This is implemented as follows:
- DDMS initiates a JDWP message to the VM indicating that
opengl traces be enabled.
- When that message is received, a flag is set that indicates
that tracing should be enabled.
- The trace flag is checked during every eglSwap() operation,
and if it finds that tracing should be active and it isn't,
then it starts the tracing component.

Change-Id: I3347fe89fc06c7404d7aa9360f4b21e5bf36ebcb
ltrace_eglapi.cpp
16ac25b73a089e840e8d53cb3af3b6ff08ff54a3 07-Nov-2012 Andrew Hsieh <andrewhsieh@google.com> am 168dfe71: am 5e530e02: am a151a19d: Merge "Fix return type of glGetAttribLocation and glGetUniformLocation"

* commit '168dfe71bfafebaa26b6f75df553f5fad7607669':
Fix return type of glGetAttribLocation and glGetUniformLocation
5e530e02bc3073a2e2469df3c333ae14f1b37433 07-Nov-2012 Andrew Hsieh <andrewhsieh@google.com> am a151a19d: Merge "Fix return type of glGetAttribLocation and glGetUniformLocation"

* commit 'a151a19db2fa07295837027fb5d84c02401cc78d':
Fix return type of glGetAttribLocation and glGetUniformLocation
300ad09822db1013d9f28c4bca3680f865533ab6 06-Nov-2012 Andrew Hsieh <andrewhsieh@google.com> Fix return type of glGetAttribLocation and glGetUniformLocation

from int to GLint.

See:
http://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetAttribLocation.xml
http://www.khronos.org/opengles/sdk/docs/man/xhtml/glGetUniformLocation.xml

Change-Id: I4a9f8e9e34b8c3cca239ae84bfe8f3cdfd94802a
ltrace_api.cpp
ltrace_api.h
ltrace_fixup.cpp
090503a01c457feb6e64facfc7eb50c1f5612c6b 01-Oct-2012 Siva Velusamy <vsiva@google.com> gltrace: Fix NPE

Change-Id: Id7af9cd388f3508201f96a0624966c2ce01b4da5
ltrace_fixup.cpp
ad9693f4f0586d18a82fdbb70c6a89e43d662ff1 16-Aug-2012 Siva Velusamy <vsiva@google.com> gltrace: flush trace buffer on createContext & makeCurrent

Certain apps (e.g. chrome) seem to create contexts which are unused
for long periods of time. If tracing is stopped before those contexts
are used, then the debugger never gets to know that these contexts
were created. Flushing the trace after these calls ensures that
the debugger knows about all created/used contexts.

Change-Id: I01baa11aa56ac89eddce3c2851e4bf01076984d1
ltrace_context.cpp
3ef9e9671c224af82d2efec1a1e9a275fb9acf44 11-Jun-2012 Siva Velusamy <vsiva@google.com> gltrace: Fixup vertex attrib pointers only for GLES2

Change-Id: Ibf280c2a4372ce6e598e164eef0d72b7c0a6d1c2
ltrace_context.cpp
ltrace_context.h
ltrace_fixup.cpp
2fdcc81ddfdbdfbbde63bd64e9ac9272b5417553 16-May-2012 Siva Velusamy <vsiva@google.com> gltrace: Allow receiving commands of length > 4

Currently, gltrace offers very few trace collection options. As a
result, these options are encoded in a single integer. The trace
control task simply receives integers and interprets them as
commands.

This patch changes the control protocol to first receive the
command length followed by the actual command itself. This allows
for future flexibility to provide enable other commands.

Change-Id: Id5f56c80a025bbbe7613ab4457e092732e7d9dc9
ltrace_eglapi.cpp
ltrace_transport.cpp
ltrace_transport.h
c7d767ad57a25eeefbbfe2610396d800f04178ed 26-Apr-2012 Siva Velusamy <vsiva@google.com> gldebugger: Allow connections from root user

Change-Id: I26ce670ae93c43bd36843576e824a9d7acea644d
ltrace_transport.cpp
8e2f3858d5a06dae5a543d9428278f59120f7f8c 16-Mar-2012 Siva Velusamy <vsiva@google.com> gltrace: Only accept connections from the shell.

Only accept incoming connections from the shell user.

Change-Id: Ibef1a796d794d45f73db59949b39cb1ce68542b4
ltrace_transport.cpp
50129e4ae2777dfbe0738f0f69b17f4d8f9400e2 29-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: Send vertex attribute data after glDraw() call.

This patch enables tracing of vertex attribute data that
is specified using glVertexAttribPointer().

At the time the glVertexAttribPointer() call is made, we
only receive a pointer in client space, without any indication
of the size (# of attributes). This size is known only at
the time of the glDraw() call.

This patch generates a new message glVertexAttribPointerData()
when a draw call is issued that contains the vertex attribute
data.

A glDrawArrays() call directly gives the size of data to copy.
A glDrawElements() call gives the indices to copy. In such a
case, all data between the min & max indices drawn are copied
and sent to the host. To support glDrawElements() with an
element array buffer, this patch also adds state that maintains
a copy of all element array buffers.

Change-Id: I434da794a0aa9ada8e7474e219ffb1d79b183ecf
ltrace.pb.cpp
ltrace.pb.h
ltrace_context.cpp
ltrace_context.h
ltrace_fixup.cpp
9801142afbe3d906259b634ef3bc8bebdafe0083 27-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: Make code 64-bit safe.

Currently, the trace API passes the pointers that need to be
patched up via 32 bit integers. Such code will not be 64 bit safe.
This patch sends all pointers in a separate array of pointers
for the fixup calls to read from.

Change-Id: If975333f11a6f6f9a74fba57de328affaed452a5
ltrace_api.cpp
ltrace_fixup.cpp
ltrace_fixup.h
9291da97cbb5f8d3ae5eb9e8d5415ef85916d982 23-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: attach buffer data sent with glBufferData

Attach the buffer that is passed with glBufferData
and glBufferSubData to the proto buf.

Change-Id: I1b4c1172d405736b06cb0a356a6e241e1d60c4d5
ltrace_fixup.cpp
05df4504e57657994a89e424b6881ee26d0f313c 17-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: Trace thread time and wall clock time.

For each gl function, trace both the thread and wall clock
times.

Change-Id: I32b6caa67fa50bf915dab89b3c5021ee82e28d55
ltrace.pb.cpp
ltrace.pb.h
ltrace_api.cpp
ltrace_fixup.cpp
ltrace_fixup.h
88e8e5a3f16f0003bd2b43142241b8e1a9a46abe 15-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: Patch up all glUniform*() calls.

This patch updates the trace information for all glUniform*() calls
to have the right data (the actual uniforms that are passed).

In addition, as soon as a program is linked, information regarding
all the active attributes and uniforms is passed on to the debugger.

Change-Id: Icfbc6722789b42c413a845cf546577fa6de7da2b
ltrace_fixup.cpp
a7167f364737c12e621d836f470cf328c6e111cd 01-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: fixup Push & Insert Marker calls

Change-Id: I58ced7225fac79ec636a65da4883614a5dce6dff
ltrace_fixup.cpp
b8c39145475391a134c052533292332516083dec 30-Jan-2012 Siva Velusamy <vsiva@google.com> Merge "gltrace: Use Unix Domain Socket rather than INET Socket"
31272606149d83437a097800074b21e9e6a205ad 28-Jan-2012 Mathias Agopian <mathias@google.com> update GLES headers and add support for corresponding new extensions.

Change-Id: I554d9659113b4721b748ee5c1a3b1ca82b11d75e
ltrace.pb.cpp
ltrace.pb.h
ltrace_api.cpp
ltrace_api.h
0832fb6407d1c85cba20a8cc0aff828db3c134de 27-Jan-2012 Siva Velusamy <vsiva@google.com> gltrace: Use Unix Domain Socket rather than INET Socket

Export trace information via abstract Unix Domain Socket (UDS).
This allows tracing of applications without INTERNET permission,
and should be faster as well.

Change-Id: Iabb67fcc2bc2484afd8128af07dca723b81c52c6
ltrace_eglapi.cpp
ltrace_transport.cpp
ltrace_transport.h
34c726efb54a941a97a6d7252e7c1442d2eded56 17-Jan-2012 Siva Velusamy <vsiva@google.com> gltrace: fixup data for glTexSubImage2D & glDeleteBuffers

Change-Id: I1c1deb8c6026ecf1fa0ed5287ccf601416eba6dc
ltrace_fixup.cpp
e6f43ddce78d6846af12550ff9193c5c6fe5844b 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
ltrace_eglapi.cpp
ltrace_fixup.cpp
ltrace_transport.cpp
3f194e6e3a62cbb846e8948eac8e4ce9aa7444a6 03-Jan-2012 Siva Velusamy <vsiva@google.com> gltrace: add user settings to control data captured.

Currently users do not have control over the amount of data
captured during tracing. This patch adds 3 settings that users
can enable/disable at runtime:
- capture framebuffer on eglSwap() calls
- capture framebuffer on glDraw*() calls
- capture texture data passed to glTexImage*() calls
Disabling these options when not needed signficantly decreases
the size of the trace file, and reduces performance overhead for
the running application.

These settings are stored in the per process GLTraceState.
A separate thread listens for commands from the host, and updates
the state based on the user commands.

Change-Id: Ic4518b94e8bcbc5330ac7138153721caa98b365d
ltrace_context.cpp
ltrace_context.h
ltrace_egl.cpp
ltrace_eglapi.cpp
ltrace_fixup.cpp
56ac6ff9bdc3c117e820c5a361ab45049c8b03f8 16-Dec-2011 Siva Velusamy <vsiva@google.com> gltrace: add start time & duration to each traced call.

Change-Id: Idfec8f715f6000594b6381cbfdee9fdf6d89f484
ltrace.pb.cpp
ltrace.pb.h
ltrace_api.cpp
ltrace_api.h
ltrace_egl.cpp
ltrace_fixup.cpp
ltrace_fixup.h
93a826f78f6313db791e6fc880439189897651b3 14-Dec-2011 Siva Velusamy <vsiva@google.com> gltrace: transport buffering and context management

This patch adds two improvements:
1. Protobuf messages are buffered and sent in chunks.
2. Multiple EGL contexts are handled properly: Corresponding
to each EGLContext, a GLTraceContext with a unique ID is created.
On eglMakeCurrent, the appropriate GLTraceContext is set and is
used while tracing subsequent GL Calls in that thread.

Change-Id: I34076376d3e5af205c87c7396ea47659844abd6e
ltrace_api.cpp
ltrace_context.cpp
ltrace_context.h
ltrace_egl.cpp
ltrace_egl.h
ltrace_eglapi.cpp
ltrace_fixup.cpp
ltrace_fixup.h
ltrace_transport.cpp
ltrace_transport.h
59511ad1cbdb13509f5c249a5193e0180e0dbf0c 04-Jan-2012 Siva Velusamy <vsiva@google.com> Merge "gltrace: attach contents of the appropriate framebuffer"
9d4536835248525f32f1504a3d28d5bbfa0a2910 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
ltrace_transport.cpp
f132ac35d82a2960542619fb3fb91d22ab256dc7 08-Dec-2011 Siva Velusamy <vsiva@google.com> gltrace: attach contents of the appropriate framebuffer

Currently, gltrace always attaches the contents of the currently
bound framebuffer. This patch changes it to attach the contents
of FB0 on eglSwap, and the currently bound framebuffer for the
glDraw* calls.

Change-Id: Ice0520d45d75638fe61cd91149df773074216510
ltrace_context.cpp
ltrace_context.h
ltrace_egl.cpp
ltrace_fixup.cpp
ltrace_fixup.h
a8cfde8897c840ce6a491a054ade806b41df2a70 05-Dec-2011 Siva Velusamy <vsiva@google.com> gltrace: Make framebuffer contents an optional message.

Currently, the contents of the FrameBuffer are sent by encoding
them as the last argument to the function call. As a result, it is
not possible to know if a message has the framebuffer encoded in it
without looking at the function type.

This patch modifies the protobuf definition to include a separate
optional framebuffer message.

Change-Id: Ief3a6950052d927ca0743e729457435b48c25a92
ltrace.pb.cpp
ltrace.pb.h
ltrace_fixup.cpp
0469dd6d55fa331bfd7de9431da98b6340d82271 01-Dec-2011 Siva Velusamy <vsiva@google.com> glestrace: Framework for GLES tracing library

This patch provides a framework for tracing GLES 1.0 and 2.0
functions. It is missing a lot of features, but here are the
things it accomplishes:

- Stop building the glesv2dbg library, and build the
glestrace library instead.
- Replace the hooks for glesv2dbg with the ones for glestrace.
- Add the basics for the trace library. Currently, this
traces all GL functions, but not all required data is
sent for all the functions. As a result, it will not
be possible to reconstruct the entire GL state on the
host side.

The files gltrace.pb.* and gltrace_api.* are both generated
using the tools/genapi.py script.

Change-Id: Id60a468f7278657f008bc6ea1df01f9bdfecfdd3
ltrace.pb.cpp
ltrace.pb.h
ltrace_api.cpp
ltrace_api.h
ltrace_context.cpp
ltrace_context.h
ltrace_egl.cpp
ltrace_egl.h
ltrace_eglapi.cpp
ltrace_fixup.cpp
ltrace_fixup.h
ltrace_hooks.cpp
ltrace_hooks.h
ltrace_transport.cpp
ltrace_transport.h