• 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 >>>)
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