summaryrefslogtreecommitdiff
path: root/gui
AgeCommit message (Collapse)AuthorFilesLines
2015-05-19gui: Use frame number when saving frame state.Jose Fonseca1-22/+14
We were using the number of the first call in the frame, but the frame calls might have never been loaded. Fixes #334.
2015-05-18gui: Remove debug statements.Jose Fonseca1-2/+0
2015-05-01gui: Receive dumps in UBJSON format.Jose Fonseca5-15/+294
2015-03-30gui: Add Save As menu option.Alexander Trukhin3-0/+38
https://github.com/apitrace/apitrace/issues/305 Signed-off-by: Alexander Trukhin <alxtry@gmail.com>
2015-03-14gui: Handle Android retrace in GUI.BogDan Vatra23-96/+2403
- allow the user to choose and pull a file from device and use open it in ApiTrace GUI. - allow the user to choose a local (EGL) file and push it to the device for retrace. - allow the user link a local file with a file on the device. - retrace on android.
2015-03-09cmake: Fix build with ealier Qt 5 versions.José Fonseca1-5/+11
2015-03-09cmake: Re-add top-level dir include.José Fonseca1-0/+1
Necessary for image/*.
2015-03-09cmake: Fix CMP0043 violations.José Fonseca1-2/+0
https://bugreports.qt.io/browse/QTBUG-39457
2015-03-09cmake: Set CMAKE_INCLUDE_CURRENT_DIR where appropriate.José Fonseca1-3/+0
2015-03-04gui: Always show microseconds in the profile heat map.Giuseppe D'Angelo1-4/+4
Don't let the automatic rounding trigger here. Otherwise, inspecting a call starting at time T >= 1 seconds will always hide microseconds (and round to milliseconds), etc.
2015-02-12gui: do not run search while trace still loadingTapani Pälli1-2/+8
Patch fixes a crash if impatient user (like me) makes a search before trace has been loaded. Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
2015-02-06gui: Add tool tips to surface tabJose Fonseca1-0/+8
Basically the same info for now, but more later.
2015-02-06gui: Remove redundant createIndex call.Jose Fonseca1-1/+0
2015-02-06retrace,gui: Pass user labels separately from bind point labels.José Fonseca1-2/+16
2015-01-26gui: Display thumbnails only for calls that draw something.Dan McCabe1-1/+1
Rather than accumulate all thumbnails that attempt to be drawn, this patch filters out all calls that don't draw anything. v2: Replace ApiTraceCall::isDrawCall with CALL_FLAG_RENDER flag check -- Jose.
2015-01-26gui: Create a call set for thumbnails requested.Dan McCabe2-0/+27
Retracer now knows what thumbnails are needed. This information needs to be communicated to the glretrace command. Construct a string that contains the call numbers for all missing thumbnails. The constructed string is then passed to glretrace with the "-S" argument. TODO: we want to be able to detect contiguous sequences of calls and emit them as a range. However, I wasn't able to get this working correctly and will defer this to a future patch.
2015-01-26gui: Prepare to receive sparse thumbnail data.Dan McCabe7-18/+44
The previous implementation assumed that all frame thumbnails would be provided to the trace by the retracer. Now, not only are just a subset of frame thumbnails being provided, but call thumbnails may also be present, depending on where the user was looking. Therefore, rather than process a list of thumbnails, one for each frame, this patch modifies the code to process a hash table of thumbnails which is addressed by the call index. In addition, the code now needs to extract the call index that was encoded by glretrace as an image comment. Therefore, the PNM parser will now attempt to interpret the comment in the PNM header as a number and return it in addition to the other header data. In order for Qt to manage the modified message data, main.cpp now has to define a different data packet as well (ImageHash). I tried to not define that new type but the Qt preprocessor didn't like the two type parameters I was using. Finally, ApiTrace::bindThumbnails is made more generic to deal with the sparse data in the hash table as well as potentially assign call thumbnails as well as frame thumbnails. v2: Attach inner thumbnails to the right call. Calls may be filtered, so it's not possible to find the right call merely by indexing. -- Jose
2015-01-26gui: Notify retracer of missing thumbnails to capture.Dan McCabe6-0/+47
Now that the trace knows what thumbnails are needed, that information needs to be communicated to the retracer to actually capture them. The trace is modified to iterate through the missing thumbnails. For each of these thumbnail indices, the trace calls a callback to notify it of the thumbnail. I don't really like my solution to this but I couldn't figure out a better one. What I wanted to do was have the trace hand out an iterator along the lines of what Java or C# do, but I couldn't figure out how to create one. If the reviewers of this code have a suggestion, I'm all ears. The main window provides the callback and acts as an intermediate to the retracer. The callback receives the missing index and passes it to the retracer, which then adds the index to the collection of missing thumbnail indices it is gathering.
2015-01-26gui: Detect and accumulate missing thumbnails.Dan McCabe5-0/+60
Previously, ALL frame thumbnails were loaded when the user wanted to see thumbnails. This patch sets the foundations for loading only those thumbnails that are visible in the current (and all previously displayed) window(s). In ApiCallDelegate::paint(), it is noted that a thumbnail may not be valid and therefore is missing. If this is the case, the frame or call is notified that the client of the thumbnail cares that the thumbnail is missing. The frame or call in turn notifies the trace that a thumbnail is missing and is desired. The trace then accumulates the missing thumbnails in a set. Note that the act of querying the thumbnail itself is not sufficient to detect that a thumbnail is missing. This is because ApiCallDelegate::sizeHint() also queries the thumbnail to determine its size. It turns out that these size queries occur even for calls and frames that are not immediately visible. Using just the query for the thumbnail to detect that it is missing results in many more thumbnail capture activities than are otherwise needed.
2015-01-26gui: Move thumbnails to ApiTraceEvent.Dan McCabe3-14/+29
Previously, thumbnails were only supported for frames. Now, we want to display thumbnails for calls as well. Therefore, move thumbnail methods and private data to the common parent class of both ApiTraceFrame and ApiTraceCall: ApiTraceEvent. Also, in ApiCallDelegate::paint(), add support for drawing the call thumbnail. Since no calls have thumbnails yet, nothing will be drawn. However, the code is still correct. Finally, in ApiCallDelegate::sizeHint(), add support for sizing the call thumbnail.
2015-01-25gui: Don't crash when a error happens in a filtered call.Jose Fonseca1-9/+11
In particular, this was happening when dumping snapshots, because snapshot often needs to be taken imediately prior to the swapbuffers call, hence performance warnings caused by the readpixel calls was being attributed to the previous call.
2015-01-25gui: Don't bother pass --db to glretrace.Jose Fonseca1-3/+1
It's the default.
2015-01-14gui: Merge qt-5 branch.José Fonseca6-46/+25
Squashed commit of the following: commit 9969f5c9b7de21851a69a39f9711f2bc79e12908 Author: José Fonseca <jfonseca@vmware.com> Date: Tue May 6 15:28:40 2014 +0100 docs: Update install instructions for Qt5. commit 4adc599dd75a55d09254a9bf4fa7d33a71cec317 Author: José Fonseca <jfonseca@vmware.com> Date: Tue Jan 6 16:36:43 2015 +0000 gui: Drop /Zc:wchar_t- Reverted on Qt5. commit 2c0d9c14560abfba9863ab561207853a40cd5f6a Author: José Fonseca <jfonseca@vmware.com> Date: Tue May 6 15:24:39 2014 +0100 gui: Ignore more generated files. commit e966b70fe5d4fa1eb0d497d2e0d768c47cdaac5f Author: José Fonseca <jfonseca@vmware.com> Date: Tue May 6 15:19:50 2014 +0100 cmake: Don't require QT when ENABLE_GUI is set to AUTO. commit b23cbe081624871ed37dc042c17ed68392756e63 Author: José Fonseca <jfonseca@vmware.com> Date: Tue May 6 13:17:50 2014 +0100 cmake: Silence policy CMP0020 warnings on Windows. I'm not sure exactly how this policy affects us, other than the warnings themselves. commit 6fdd4ffc0b80dc01ca182f1c9dca565759157667 Author: Zack Rusin <zack@kde.org> Date: Sun Mar 30 01:10:40 2014 -0400 gui: Port to Qt5. The biggest change is that Qt5 includes JSON support in the core. Everything else should stay the same.
2015-01-06gui: Extend image viewer value range.José Fonseca1-0/+12
As reported on http://lists.freedesktop.org/archives/apitrace/2015-January/001031.html
2015-01-02gui: Enable console on debug builds.José Fonseca1-10/+10
2014-12-19gui: Remove dead ApiTraceEvent::stateParameters().José Fonseca2-10/+0
2014-12-19gui: Remove ApiTraceEvent::m_hasBinaryData.José Fonseca2-7/+5
Fold into ApiTraceEvent::m_binaryDataIndex.
2014-12-19gui: Remove ApiTraceEnumSignature.José Fonseca4-95/+19
It was leaking all over the place, because it wasn't always attached to a TraceLoader. I tried to plumb TraceLoader pointer through to where it was needed, but I failed, as some of the callers where nowhere near to get hold of it. I also believe that instead of converting every trace_model.hpp object into a QVariant is it preferable for the GUI to hold on to the trace_model.hpp objects themselves, and only produce Qt objects for the derived state it needs for fast render/search.
2014-12-12gui: Increase to 3 decimals on image upper/lower spin boxes.José Fonseca1-0/+6
2014-11-21qapitrace: Don't crash when dragging outside image in viewerChris Forbes1-0/+4
When the mouse is down, movement events continue to be delivered to the PixelWidget even when outside the widget. In these cases, we reference memory outside the image buffer. This usually worked out OK, as the nearby addresses were usually mapped. However, the x value gets converted to unsigned before being added, so very small negative x values end up offsetting the pixel pointer by many gigabytes, which is almost certainly not accessible, and explodes. Instead, if the position is outside the image, safely return a fixed (out of bounds) message. Fixes #269. Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
2014-11-15gui: Log command line whenever retracing.José Fonseca2-1/+10
2014-11-12gui: Update www.opengl.org URLs.José Fonseca3-3257/+3257
Avoid the redirection.
2014-11-10gui: Use only the file name portion for the temporary edited trace.José Fonseca1-4/+7
2014-10-23gui: Show large vectors/matrices/arrays in multiple rows.José Fonseca1-9/+28
2014-10-23gui: Add a new state tab for buffers.José Fonseca4-0/+47
2014-10-23gui: Right justify list indices so they sort numerically.José Fonseca1-1/+2
2014-10-02cmake: Package/install .PDB files too.José Fonseca1-0/+1
2014-09-26trace: Serialize wide-strings properly.José Fonseca4-0/+21
Wide strings are only used by DirectX APIs, mostly for descriptions, but it's still useful to be able to read them. I'm split on whether to bump the trace format version or not. OpenGL traces are unaffected.
2014-07-10Merge pull request #282 from urkle/fix_image_savezackr1-2/+19
fix saving image via right click menu in state inspector
2014-07-07add simple support to export buffers to disk.Edward Rudd3-0/+66
2014-07-07fix saving image via right click menu in state inspectorEdward Rudd1-2/+19
2014-06-18gui: Avoid temporary std::string by calling QString::fromLatin1 where possible.José Fonseca1-7/+7
2014-05-30gui: Ensure all Retracer::Retracer members are initialized.José Fonseca1-0/+2
I was randomly getting some runs with core profile.
2014-05-30gui: Don't crash when double-clicking on non-image rows of Surface tab.José Fonseca1-2/+5
Fixes issue #260.
2014-05-23gui: Don't show glPopDebugGroup().José Fonseca1-0/+5
2014-05-23gui: Never filter glPushDebugGroup.José Fonseca1-1/+9
Or everything inside will be invariably filtered out. Thanks to Michal Krol to point this out.
2014-05-22gui: Silence duplicate widget warning.José Fonseca1-1/+1
2014-05-22gui: Generalize from glStringMarkerGREMEDY to all markers.José Fonseca1-4/+4
2014-05-22gui: print the marker string from glStringMarkerGREMEDY directlyVladimir Vukicevic1-33/+44
2014-05-22gui: Tweak thread id presentation.José Fonseca1-4/+7
Match CLI, and only show on details for now. Issue #199.