aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com
Commit message (Collapse)AuthorAgeFilesLines
...
* gltrace: Add support for VBO'sSiva Velusamy2012-02-278-1/+534
| | | | | | | | | | | 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
* gltrace: Add support for generic vertex attributes.Siva Velusamy2012-02-223-5/+181
| | | | Change-Id: I6eec29a0f48291324178d9e419cc10013274e0ff
* gltrace: Add a GLCall detail provider.Siva Velusamy2012-02-2111-28/+180
| | | | | | | | | | | | 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
* gltrace: Show per frame summary statistics.Siva Velusamy2012-02-215-136/+417
| | | | | | | | | | 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
* gltrace: Fix state update race condition.Siva Velusamy2012-02-211-30/+34
| | | | | | | The GL State is updated in reaction to user selections, and should be performed only in a synchronized block. Change-Id: Ieeaba4fd5a088b5b9e85a21fb6738c214d6f8c01
* gltrace: Show wall time and thread time.Siva Velusamy2012-02-176-15/+83
| | | | | | | Extend the protobuf to include wall time and thread time. Both durations are displayed in the function view. Change-Id: I407255464469195f7e6cf1a4b526637cb7c02823
* gltrace: Provide details view for uniform variables.Siva Velusamy2012-02-152-0/+174
| | | | | | Display uniforms rendered as a vector or a matrix. Change-Id: Ifbdaad571f71e2f4d477027548dd6951eddba8e5
* gltrace: Add support for shader uniforms.Siva Velusamy2012-02-147-7/+357
| | | | | | | This patch adds the necessary state and transformations to support uniforms used in shaders. Change-Id: Ibf93098977d8f8a733d6572b1524ff50eda28b6f
* gltrace: Fix formatter issue with enum arguments.Siva Velusamy2012-02-131-2/+15
| | | | | | | | 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
* gltrace: fix search for tree viewSiva Velusamy2012-02-131-2/+18
| | | | | | | | 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
* gltrace: use DetailsView to display state details.Siva Velusamy2012-02-1012-241/+567
| | | | | | | | | | | | | | | 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
* gltrace: Add a low cost way to maintain per call properties.Siva Velusamy2012-02-073-0/+53
| | | | | | | | | | | | | | | | | | 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
* gltrace: Make fb view into a pagebookviewSiva Velusamy2012-02-077-201/+300
| | | | | | | | | | | | | 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
* gltrace: Use half-open ranges when defining frames.Siva Velusamy2012-02-074-11/+11
| | | | | | | | | | 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
* gltrace: always display eglSwapBuffer in duration mini map.Siva Velusamy2012-02-071-2/+16
| | | | | | | | | 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
* gltrace: Display Calls in a HierarchySiva Velusamy2012-02-075-81/+399
| | | | | | | | | | | | | | | | | 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
* gltrace: update to latest GLES headersSiva Velusamy2012-02-013-74/+284
| | | | | | | | 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
* gltrace: add Shader and Program object stateSiva Velusamy2012-02-014-3/+167
| | | | | | | This patch adds the necessary state variables and transformations to maintain GL program state and GL shader state. Change-Id: I0709d119e537137bebf3ec73fa8f902d1195c5bc
* gltrace: Use UDS socket forwarding for gltrace transfers.Siva Velusamy2012-01-311-9/+31
| | | | | | Forward local port to a device UDS port for tracing. Change-Id: I56ef5f891d1b6c9682df11845bb041c9a8abb849
* gltrace: color glDraw() functions differentlySiva Velusamy2012-01-272-20/+66
| | | | | | | | | | | | | 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
* gltrace: add a texture view to display the texture imageSiva Velusamy2012-01-247-77/+275
| | | | | | | | | | | | | | 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
* gltrace: separate out ImageCanvas from GLFrameBufferView.Siva Velusamy2012-01-242-181/+227
| | | | | | | This patch performs a simple refactoring: extract out a ImageCanvas widget from within the GLFrameBuffer View. Change-Id: I840ae499e7de79e98437379b5ddf97777899daa6
* gltrace: manage texture image state changesSiva Velusamy2012-01-2411-25/+457
| | | | | | | | | | | | | | | | | | 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
* gltrace: fix memory leak when editor is closed.Siva Velusamy2012-01-191-0/+6
| | | | | | | When a gltrace editor is closed, the state view should remove itself from the workbench selection listener. Change-Id: I1dcda4332c131b3ca747043a7acd4078c7616357
* gltrace: reset bound textures on glDeleteTexturesSiva Velusamy2012-01-197-3/+150
| | | | | | | | | | 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
* gltrace: add texture state variablesSiva Velusamy2012-01-1718-27/+674
| | | | | | | | Add support for texture state variables, and the necessary transformations that happen during glTexImage*(), gl[Gen/Delete]Textures, glBindTexture and glTexParameter. Change-Id: I09060dfb41726d91a9abf478fc8cba67fd41d5fa
* gltrace: add new state variablesSiva Velusamy2012-01-177-12/+737
| | | | | | | | | | | This patch adds GL state variables for the following GL areas: - Viewport Transformations - Rasterization - Pixel Operations - Pixel packing Change-Id: Ifda97c9dd679cbae8b68990ab992d347c0ca7ba0
* gltrace: cleanup state transformationsSiva Velusamy2012-01-1710-103/+306
| | | | | | | | | | | | | | | | | | 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
* gltrace: state view improvementsSiva Velusamy2012-01-1213-277/+360
| | | | | | | | | | | | | | | | | 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
* gltrace: associate state transformations with calls.Siva Velusamy2012-01-123-15/+19
| | | | | | | | 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
* gltrace: do not keep the protobuf message in memorySiva Velusamy2012-01-105-72/+85
| | | | | | | | | | | | | 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
* gltrace: map calls to frame after sort by start time.Siva Velusamy2012-01-102-20/+32
| | | | | | | | | | | | 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
* gltrace: create call duration mini mapSiva Velusamy2012-01-103-599/+554
| | | | | | | | | 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
* gltrace: add a graphical way to select framesSiva Velusamy2012-01-0930-50/+873
| | | | | | | | | | | | | 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
* gltrace: Enable trace options.Siva Velusamy2012-01-038-178/+445
| | | | | | | | | 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
* gltrace: cleanup methods to format GL CallsSiva Velusamy2011-12-197-334/+469
| | | | | | | | | - move all formatting code to separate package - show return values where applicable - better formatting for pointers - add unit tests Change-Id: Iaba124c9190ebc36d059bf6312a474fd73632958
* gltrace: show context id corresponding to gl functionsSiva Velusamy2011-12-153-6/+41
| | | | | | | Add a column in the GL function trace view that shows the GL Context in which the function was called. Change-Id: Idedc821c66ec57eb2d4c997ad4cc936e1fe472b8
* gltrace: Add current FB binding to GL stateSiva Velusamy2011-12-153-4/+32
| | | | | | | Add the currently bound framebuffer setting to the GL state. Set it appropriately based on the glBindFramebuffer() call. Change-Id: I9dfc5154cd7801c2aa06920f67e31de45c63e6f7
* gltrace: add gltrace perspectiveSiva Velusamy2011-12-093-1/+43
| | | | | | | - Add a new perspective. - Move existing GL related items to show up only in this perspective Change-Id: I50d8f2f78d983e54af03ceacad97de459fd9e745
* gltrace: FB view enhancementsSiva Velusamy2011-12-081-2/+195
| | | | | | | | | | | 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
* gltrace: do not store images in memorySiva Velusamy2011-12-0616-1927/+3231
| | | | | | | | | | | 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
* gltrace: infrastructure for modeling OpenGL StateSiva Velusamy2011-11-2317-3/+1382
| | | | | | | | | | | | | | | | | - 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
* gltrace: add support for a text filter barSiva Velusamy2011-11-141-0/+76
| | | | | | Provides a way to search the list of OpenGL calls in the frame view. Change-Id: I819209d4215bb3b34c9f7105782ce1fbf57f75a4
* gltrace: Display framebuffer contents for certain GL callsSiva Velusamy2011-11-142-4/+159
| | | | | | | | 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
* GLTrace initial implementationSiva Velusamy2011-11-1412-1/+3210
| | | | | | | | 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
* gl debugger: Rename SamplesView to GLFramesViewSiva Velusamy2011-10-1411-58/+56
| | | | | | No change in functionality, only rename. Change-Id: I43d134c9e9acca1761712bfe1a9fc6f4143131af
* Use a scale widget to select a particular frame.Siva Velusamy2011-10-141-41/+83
| | | | | | | | | | | | | | | | 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
* Fix some egregious formatting style differences.Siva Velusamy2011-10-138-298/+184
| | | | | | | | | | 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
* Add logging in ddms.Xavier Ducrohet2011-10-061-5/+10
| | | | Change-Id: I42508186ea339de1d97f0de2e801e6152311881a
* Convert Tabs -> Spaces.Siva Velusamy2011-09-065-107/+107
| | | | Change-Id: Ib2b1311047624f2d31c3806400047b8beb01dcbf