History log of /frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3ef9e9671c224af82d2efec1a1e9a275fb9acf44 11-Jun-2012 Siva Velusamy <vsiva@google.com> gltrace: Fixup vertex attrib pointers only for GLES2

Change-Id: Ibf280c2a4372ce6e598e164eef0d72b7c0a6d1c2
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.cpp
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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.cpp
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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.cpp
a7167f364737c12e621d836f470cf328c6e111cd 01-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: fixup Push & Insert Marker calls

Change-Id: I58ced7225fac79ec636a65da4883614a5dce6dff
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.cpp
34c726efb54a941a97a6d7252e7c1442d2eded56 17-Jan-2012 Siva Velusamy <vsiva@google.com> gltrace: fixup data for glTexSubImage2D & glDeleteBuffers

Change-Id: I1c1deb8c6026ecf1fa0ed5287ccf601416eba6dc
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.cpp
56ac6ff9bdc3c117e820c5a361ab45049c8b03f8 16-Dec-2011 Siva Velusamy <vsiva@google.com> gltrace: add start time & duration to each traced call.

Change-Id: Idfec8f715f6000594b6381cbfdee9fdf6d89f484
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.cpp
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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.cpp
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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_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
/frameworks/native/opengl/libs/GLES_trace/src/gltrace_fixup.cpp