Age | Commit message (Collapse) | Author | Files | Lines |
|
We were using the number of the first call in the frame, but the frame
calls might have never been loaded.
Fixes #334.
|
|
|
|
|
|
https://github.com/apitrace/apitrace/issues/305
Signed-off-by: Alexander Trukhin <alxtry@gmail.com>
|
|
- 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.
|
|
|
|
Necessary for image/*.
|
|
https://bugreports.qt.io/browse/QTBUG-39457
|
|
|
|
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.
|
|
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>
|
|
Basically the same info for now, but more later.
|
|
|
|
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
It's the default.
|
|
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.
|
|
As reported on http://lists.freedesktop.org/archives/apitrace/2015-January/001031.html
|
|
|
|
|
|
Fold into ApiTraceEvent::m_binaryDataIndex.
|
|
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.
|
|
|
|
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>
|
|
|
|
Avoid the redirection.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
fix saving image via right click menu in state inspector
|
|
|
|
|
|
|
|
I was randomly getting some runs with core profile.
|
|
Fixes issue #260.
|
|
|
|
Or everything inside will be invariably filtered out.
Thanks to Michal Krol to point this out.
|
|
|
|
|
|
|
|
Match CLI, and only show on details for now.
Issue #199.
|