| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
Add support for Vertex Buffer Object operations:
- Add VBO state
- Add transforms for VBO operations:
glGenBuffers, glDeleteBuffers, glBufferData & glBufferSubData
- Add details provider that can display the buffer data in
a bunch of different formats.
Change-Id: I30fe1b0924f180ba40fca04a8a4dd53357cc6a7e
|
|
|
|
| |
Change-Id: I6eec29a0f48291324178d9e419cc10013274e0ff
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following changes are performed in this CL:
- The details view is moved into the views.detail package.
- The details view supports detail providers for GL State Variables.
This patch adds a new interface for providers that contribute
details for GL Calls. This interface is used to provide support
for displaying the framebuffer that might be part of a glDraw
call.
Change-Id: I2e327f02c6326759c23c2952acd361ff48f8f904
|
|
|
|
|
|
|
|
|
|
| |
This CL changes the framebuffer view to be a frame summary view.
The Frame Summary View displays summary information regarding the
currently displayed frame. For each frame, it displays:
- the contents of the framebuffer at the end of the frame.
- summary statistics regarding the GL Calls present in the frame.
Change-Id: I293f5b0de40aac315dee257fbc3eaa3d5ff0919c
|
|
|
|
|
|
|
| |
The GL State is updated in reaction to user selections, and
should be performed only in a synchronized block.
Change-Id: Ieeaba4fd5a088b5b9e85a21fb6738c214d6f8c01
|
|
|
|
|
|
|
| |
Extend the protobuf to include wall time and thread time.
Both durations are displayed in the function view.
Change-Id: I407255464469195f7e6cf1a4b526637cb7c02823
|
|
|
|
|
|
| |
Display uniforms rendered as a vector or a matrix.
Change-Id: Ifbdaad571f71e2f4d477027548dd6951eddba8e5
|
|
|
|
|
|
|
| |
This patch adds the necessary state and transformations to
support uniforms used in shaders.
Change-Id: Ibf93098977d8f8a733d6572b1524ff50eda28b6f
|
|
|
|
|
|
|
|
| |
Enum arguments are passed along in the protocol buffer
with an integer type. This patch fixes the formatter to
take care of this case.
Change-Id: I1efeaa955b87b57b0da805ae5942d138bbce1544
|
|
|
|
|
|
|
|
| |
When using a tree widget, the ViewerFilter#select method should
search not just the given node, but also all its children if the
node is a tree node.
Change-Id: I2ff9896067e75521f5d654d27b8b2a5787410d56
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL replaces the texture view with a generic details view
that can be used to show the details for any state property.
The details view is structured as a page book view that has
a stack layout capable of showing different controls. It has
a list of IStateDetailsProviders to which it delegates the
task of providing details for a given GL property.
Currently, there are 2 such details providers - one for
texture images and one for shader source.
Change-Id: I1ead8848116b0a5889d272f69b49610590937a8f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For most GL Calls, we don't need to save anything but its string
representation from its protocol buffer. But for a number of calls,
additional data is required. But we don't want to save the entire
protobuf (due to its high memory consumption).
So this patch adds a generic properties holder to the GLCall
structure. While the trace file is parsed, certain calls may
save data from the protobuf in this structure and these can be
retrieved at runtime.
This patch also utilizes this feature to save the marker name
for every glPushGroupMarker call. Only these markers are displayed
in the trace view as opposed to the full gl call.
Change-Id: If989b3a35704fd0017a944e58589d2122a9a0334
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL makes the framebuffer view a subclass of a PageBookView.
This allows the framebuffer view to maintain state across
multiple open GL trace editors.
Since the StateView is also a PageBookView, and both these views
show content associated with the currently active GL Function
Trace Viewer, the common code across both of them have been
pulled into GLPageBookView.
Change-Id: I48a2e8432d1c2aeafe13c0aa2789fef3afe8228e
|
|
|
|
|
|
|
|
|
|
| |
A GLFrame maintains the start and end indices of the GL Calls
composing that frame. Currently, the indices comprise a closed
range (i.e. include both the call at the start index and the call
at the end index). This patch makes it a half open range (the
end index is excluded) to make things easy to follow.
Change-Id: Ie44b56a32d002595493b11f496ebf123072f8962
|
|
|
|
|
|
|
|
|
| |
eglSwapBuffer call is takes a really short time on the device,
and so doesn't show up at all in the duration minimap. This patch
explicitly sets the duration to be a high enough value so that
eglSwapBuffer is clearly visible.
Change-Id: If59a7c869b5b3f5b39dd130714197c7efabdd0ae
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch uses the gl extensions glPushMarker and glPopMarker in
the trace file to construct call hierarchies. The call hierarchies
are then displayed in a tree view.
In order to perform this, the main widget in the GLFunctionTraceViewer
has been changed from a Table to a Tree. The model for the tree
is GLCallNode, which is a thin wrapper on top of a GLCall.
A hierarchy can only be displayed if there is a single context
that is being viewed. If a trace file has multiple contexts, then
a context selector Combo box is provided that controls which
context is being viewed.
Change-Id: I043db99c15dfcc179fcffb656f3ffd2d9864f848
|
|
|
|
|
|
|
|
| |
The GLES headers were updated as part of
CL: I554d9659113b4721b748ee5c1a3b1ca82b11d75e. This patch updates
the host dependencies to correspond to the updated headers.
Change-Id: I968b62756d5087f0649fd7a96bf52f23b4c5c324
|
|
|
|
|
|
|
| |
This patch adds the necessary state variables and transformations
to maintain GL program state and GL shader state.
Change-Id: I0709d119e537137bebf3ec73fa8f902d1195c5bc
|
|
|
|
|
|
| |
Forward local port to a device UDS port for tracing.
Change-Id: I56ef5f891d1b6c9682df11845bb041c9a8abb849
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch makes the glDraw*() calls stand out in the table and
in the duration minimap by coloring them differently than the rest
of the functions.
This patch also changes displays the contents of the framebuffer
in the framebuffer view as soon as a frame is selected (as
opposed to updating the view only when the eglSwapBuffer function
is selected).
Change-Id: I749e277e468003612895c45d90a5874b2a84e4d3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a new view that displays the texture image
in an ImageCanvas.
The code shared between the FrameBufferView and the TextureView
have now been moved to an abstract ImageViewPart class.
The GL state view provides selection events that are listened
to by the texture view. When a texture property is selected,
the appropriate texture image is displayed in the texture view.
Change-Id: I5f192c88ace447e267d1b3c110ab9bfd39864321
|
|
|
|
|
|
|
| |
This patch performs a simple refactoring: extract out a
ImageCanvas widget from within the GLFrameBuffer View.
Change-Id: I840ae499e7de79e98437379b5ddf97777899daa6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Texture Data is provided via glTexImage2D. Parts of a created
texture may then be updated using glTexSubImage2D. This patch
adds a GL state variable that maintains a path to the current
texture image for each texture.
This patch also includes a few other misc. changes:
- Duration minimap: do not create back buffer image of size 0.
In such a case, just don't draw anything.
- In the function trace view, selecting a particular item in
the table doesn't also scroll it into view on Mac. Add
a setTopIndex to fix this.
- add Guava is a dependency
- Apply the state transformations in a separate Eclipse job.
Change-Id: I53f5a0438217d9d086b844f7d333306f7c9fbccd
|
|
|
|
|
|
|
| |
When a gltrace editor is closed, the state view should
remove itself from the workbench selection listener.
Change-Id: I1dcda4332c131b3ca747043a7acd4078c7616357
|
|
|
|
|
|
|
|
|
|
| |
This patch includes the following changes:
1. glDeleteTextures should delete the provided list of textures,
and then reset any texture units that were bound to that texture
back to texture 0.
2. Size the frame selection spinner based on the character size.
Change-Id: I1cb709df1037ec0f73e1ba3bef6a0ecd9c18b85a
|
|
|
|
|
|
|
|
| |
Add support for texture state variables, and the necessary transformations
that happen during glTexImage*(), gl[Gen/Delete]Textures, glBindTexture
and glTexParameter.
Change-Id: I09060dfb41726d91a9abf478fc8cba67fd41d5fa
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds GL state variables for the following
GL areas:
- Viewport Transformations
- Rasterization
- Pixel Operations
- Pixel packing
Change-Id: Ifda97c9dd679cbae8b68990ab992d347c0ca7ba0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, gl calls can only modify existing GL state
variables. This patch, adds support for GL transformations
that can add items to existing list properties.
As a result, eglCreateContext can now create a specific
context (ES1 or ES2) on demand.
A new IStateTransform interface is introduced, and the
existing GLStateTransform has been renamed to
PropertyChangeTransform that implements this interface.
This patch also enables highlighting of state variables
that change between different GL Calls.
Change-Id: I16fc8286acd6374d66e59e1f7ba76310bdacab5d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GL State View currently utilizes a single tree and switches
the underlying model depending on which editor is active. This causes
loss of context when switching between editors.
This patch makes the state view behave more like the Eclipse Outline
View. State View now inherits from PageBookView, and it allows each
editor to supply whatever controls it wants to display in the view.
Each editor supplies an instance of StateViewPage based on the state
of the trace in the editor.
This patch also moves the state information out of the GLTrace object
and into the StateViewPage.
Change-Id: Ied827ffc53ebba835f1617126068eb3de50f12d4
|
|
|
|
|
|
|
|
| |
Currently, the top level GLTrace object holds a list of
state transformations associated with each GLCall. This
patch moves the state transformations into the GLCall itself.
Change-Id: I320c4b38d1ba19c230adc12c71d57f911582b55a
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the original protobuf message is retained in
memory as part of a GLCall. It turns out that this takes
up a significant amount of memory.
This patch extracts the necessary fields out of the
protobuf and puts them in GLCall. No references to the
protobuf are maintained in memory anymore, although
they can be recreated by reading in the file again.
Change-Id: I93cb8a41a1d8b274ea14b9ae4cde034f0ce70f83
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the trace contains multiple contexts, calls from multiple
contexts may be out of order. Hence the calls are sorted by start
time when the trace is read.
Currently, calls are assigned to frames when they are first read
in from the trace file. This patch performs this assignment once
the calls are sorted.
Change-Id: I7a1b51fac18249cb965756b567d4245d783647ee
|
|
|
|
|
|
|
|
|
| |
Having a combined frame selector + call duration viewer seemed
confusing, so this patch removes the frame selector canvas, and moves
the call duration view to the right of the table. The call duration
view now looks like a mini map of the calls displayed in the table.
Change-Id: I82827642aa462809065d1a7945f8903bd6a99e38
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a graphical canvas on which the following elements
are rendered:
- a scale showing the list of frames
- when a particular frame[s] is selected, the duration of
the GL calls is displayed as a graph.
The GL call table view listens to selection events from this canvas
and displays the appropriate function calls based on the selection.
Change-Id: Icc8b2bc13547a06103d90f3d5c1f3a764511752b
|
|
|
|
|
|
|
|
|
| |
Provide user options that control how much data is collected.
The user can control whether framebuffer data is read on eglSwap()
or glDraw*(), and whether texture images submitted via
glTexImage() are read.
Change-Id: I99b71d31a985295f0793d94887c0efcc25083fc6
|
|
|
|
|
|
|
|
|
| |
- move all formatting code to separate package
- show return values where applicable
- better formatting for pointers
- add unit tests
Change-Id: Iaba124c9190ebc36d059bf6312a474fd73632958
|
|
|
|
|
|
|
| |
Add a column in the GL function trace view that shows the
GL Context in which the function was called.
Change-Id: Idedc821c66ec57eb2d4c997ad4cc936e1fe472b8
|
|
|
|
|
|
|
| |
Add the currently bound framebuffer setting to the GL state.
Set it appropriately based on the glBindFramebuffer() call.
Change-Id: I9dfc5154cd7801c2aa06920f67e31de45c63e6f7
|
|
|
|
|
|
|
| |
- Add a new perspective.
- Move existing GL related items to show up only in this perspective
Change-Id: I50d8f2f78d983e54af03ceacad97de459fd9e745
|
|
|
|
|
|
|
|
|
|
|
| |
1. Currently, the FB image is just set as the background image on
the canvas. As a result, the image will be tiled if the view area
is larger than the FB image. This patch fixes it so that the image
is displayed correctly.
2. Add a scale image to fit canvas option.
Change-Id: Ic56bacd416645a3c84673371d68fc067873a2f8e
|
|
|
|
|
|
|
|
|
|
|
| |
Protocol buffer messages can optionally contain the contents of the
framebuffer. These messages are then really large in size. Rather
than storing all of these messages in memory, we remove the image
data from the message and store a pointer (offset in file) to the
image in file. When needed, the trace file is read again to retrieve
the image.
Change-Id: I3d0c65026bba29efc5e31d8c251582fdaa068c64
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Model the OpenGL state as a hierarchy of properties
- Construct the list of transformations to be applied to the
GL State based on each OpenGL call. (Currently, only
glVertexAttribPointer() is actually implemented).
- Each transformation knows how to extract the property to
modify and its new value. It has apply and undo functions
that can transform the state, or undo the transformation.
- Implement the GL State view which is a tree view of the
entire GL state hierarchy.
- Make the GLFunction Trace View provide selection events
that the framebuffer and state view can listen to and
update their status based on the selection.
Change-Id: I22b011ac9f10ceb0684a8cb7ee4938200ef43ec3
|
|
|
|
|
|
| |
Provides a way to search the list of OpenGL calls in the frame view.
Change-Id: I819209d4215bb3b34c9f7105782ce1fbf57f75a4
|
|
|
|
|
|
|
|
| |
The payload for the OpenGL calls glDraw* and eglSwapBuffers contain
the contents of the framebuffer after the call. When these calls are
double clicked in the tabular view, bring up their framebuffer contents.
Change-Id: I26f5467fb2ebbb96acdee83ff6e3b8c7e9e76451
|
|
|
|
|
|
|
|
| |
This initial implementation provides two basic features:
1. Connect to the device and retrieve a trace.
2. Open a trace file and display the list of GL calls in a table.
Change-Id: Ib594f0606b1276f6fbdcc0d7a1dae9034617cfab
|
|
|
|
|
|
| |
No change in functionality, only rename.
Change-Id: I43d134c9e9acca1761712bfe1a9fc6f4143131af
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, a slider (looks like a scrollbar) is present at the top
of the view, with no indication that it can be used to select the
frame to be displayed.
Replace that with the following layout:
Frame: -------------------------------- [23]
where the -'es are the scale widget, and the spinner at the end
indicates the currently selected frame. The spinner and the scale
are linked together to go up/down when either one changes.
Change-Id: Ie5403a179d518e4ebe50dba720c29c5bc07c4369
|
|
|
|
|
|
|
|
|
|
| |
Minor refactoring: does not affect functionality.
Updated the file SampleView to follow some of the conventions used
in the rest of the ADT plugins. No attempt to fix everything, just
the ones that annoyed me.
Change-Id: Ifd18e2c361ec8592c5efdc9e81ebe84a4eea5c33
|
|
|
|
| |
Change-Id: I42508186ea339de1d97f0de2e801e6152311881a
|
|
|
|
| |
Change-Id: Ib2b1311047624f2d31c3806400047b8beb01dcbf
|