apitrace: Changes to 'master'
New branch 'master' available with the following commits:
commit 561f413fc31aff5431b4fe892c7365f196aa9306
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date: Sun May 18 16:07:53 2014 +1000
Initial Debian packaging
commit e5a449b4392dd3d0297b1d571e40f947127a74f0
Merge: 6ed3174 eb64121
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date: Sat May 17 21:35:32 2014 +1000
Merge tag 'upstream/5.0+repack'
Upstream version 5.0+repack
commit eb64121bcba01794b6a9efe2ea1574c8e2248123
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date: Sat May 17 21:35:32 2014 +1000
Imported Upstream version 5.0+repack
commit 6ed3174842e9f7490478cd38502dcfa0b39158c5
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri May 2 23:11:08 2014 +0100
Tag a new release 5.0.
There are still many outstanding patches / pull requests that deserve to
be in this release. But instead of delaying a release any further, I'll
simply make a new minor release when I get around to go through these.
Fixes issue #239.
commit 158f409bfcd5901201d5ae9ad0e34d6382b86470
Author: Lawrence L Love <lawrencex.l.love@intel.com>
Date: Thu Mar 13 09:24:05 2014 -0700
qapitrace: arrow-key selected Call is obstructed
If the Frame at the bottom of the current view is expanded and
the down arrow-key is used to select the first Call in the Frame
then the Details View window that pops up obstructs the Call.
NOTE: If the first Call is instead selected with a mouse-click
then the Call appropriately scrolls into view
Not a big deal but disconcerting.
DIRECTIONS
1) Select and expand the Frame at the bottom of the current view
2) Use the down arrow-key to move to the first Call in the Frame
FIX
In selection callback for Call (MainWindow::callItemSelected) add
m_ui.callView->scrollTo(index)
after the Details View window is shown
TESTING
Manual testing.
Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
commit c0dd09879fd88b9a2f6c311b6fa7d85c9eca3c51
Author: Lawrence L Love <lawrencex.l.love@intel.com>
Date: Fri Feb 21 10:03:44 2014 -0800
qapitrace: issue #218 crashes on glPopDebugGroup
Problem:
dereferencing a NULL pointer.
Reason:
As mentioned in the issue description, a glPushDebugGroup and
glPopDebugGroup pair were in two different frames. The
TraceLoader:fetchFrameContents() function assumes they're in the
same frame and starts a new "groups" stack for each frame fetch.
On encountering a CALL_FLAG_MARKER_POP call, does
groups.top()->finishedAddingChildren();
when in fact groups is empty and is dereferencing a NULL pointer.
In the other sample trace (sample-effects.trace) all glPush/Pop pairs
were in the same frame but one frame had an extra glPopDebugGroup
causing the same error.
Fix:
Add a groups.count() check before dereferencing groups.top()
Caveats:
Any unpaired glPopDebugGroup calls will be listed as regular gl calls.
Any unpaired glPushDebugGroup calls will end with the frame end.
Tested both sample crash traces; they no longer crash.
(apitrace-tests doesn't apply for testing this fix)
Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
commit 3a5b5558016d693a9c70b230a30e35c57c9773cd
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri May 2 22:50:21 2014 +0100
eglretrace: Support GL_OES_surfaceless_context by creating a dummy drawable.
Should fix issue #248.
commit c6ae87379404a4a86adcab7a9701ff21bbb84030
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri May 2 22:34:05 2014 +0100
tracediff: Don't crash if less is not present.
commit bdc0346b6292619224e25b37abb569e776927e8a
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri May 2 21:15:07 2014 +0100
Remove githalytics.com snippet from the readme.
Doesn't do anything useful, now that github is serving the URL as a
static image from *.githubusercontent.com , and GitHub now provides some
stats.
commit e7beb9c99abfc6328accbbd2f30c9d8c48cc5790
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Apr 29 22:26:25 2014 +0100
cmake: Dump a message for each DirectX API found.
commit c91061d92dc87109bbb7e11da1cb6c187ccf7d02
Author: José Fonseca <jfonseca@vmware.com>
Date: Sat Apr 26 18:07:24 2014 +0100
Avoid unsafe cast.
commit d70d1ea6d58e131dcf5b2d250d33673463e8beaa
Author: José Fonseca <jfonseca@vmware.com>
Date: Sat Apr 26 18:07:02 2014 +0100
cli: Ensure variable is initialized.
commit a054c7385854b0e71b8d3071a465b9bc21581ee0
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Apr 29 12:10:48 2014 +0100
msinttypes: Remove stdbool.h
Not part of msinttypes and never used by us.
commit 5a285fb7a33b0c5b54b5af8ed0311981ea5c9d66
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Apr 29 12:07:39 2014 +0100
msinttypes: Update to latest version.
commit f827897157f7736089096e24387a75d4ee2b4f30
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Apr 29 10:29:12 2014 +0100
cmake: Don't use bundled stdint.h for recent MSVC versions.
commit 8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e
Author: Zack Rusin <zack@kde.org>
Date: Wed Apr 9 21:54:59 2014 -0400
gui: respect the alpha channel in surfaces
We weren't rendering any background which meant that surfaces
that were fully transparent would just show garbage that was
underneath. Lets make sure that the widget has a painted background
instead of garbage underneath.
commit daa1a0266956272c8349c965c32f57d4a7b2ddde
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Apr 8 16:47:42 2014 +0100
d3dretrace: Force windowed mode on D3D9 traces.
Because there is no guarantee that the display mode is available.
commit a86667cc60d1d17ba8577e8c6cfc58479f8a6778
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Apr 8 16:45:54 2014 +0100
d3dretrace: Terminate when CreateDevice fails.
Like we do for D3D10+.
commit d85b927d3803fe1631bfac75ec643a58ff1343ea
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Apr 8 15:46:26 2014 +0100
d3dretrace: Enable D3D9D when additional debug is requested.
commit d55418c567493a232fbf8b217af5aebf3f8e9ae5
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Apr 8 15:27:12 2014 +0100
retrace: Allow multiple levels of debugging checks.
commit fcf044b1a0f89939e88442f4faf9c23335d2601c
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Mar 27 17:39:04 2014 +0000
tracediff: Don't highlight differences if the call nos are actually the same.
commit 89c5816399e71bda92a8959b5b771c04d6672ea3
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Mar 27 17:10:28 2014 +0000
glretrace: Don't rely on kCGLOGLPVersion_GL4_Core.
It doesn't work, per https://github.com/apitrace/apitrace/issues/181#issuecomment-37119564
commit cb7c76fe29110ac98cdd2677e42370fe7e6b8796
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Mar 27 16:57:22 2014 +0000
Revert "qapitrace: fix an inline string FIXME request"
This reverts commit 0d86efd38a375c526491c679f4d2185ebe51434e, from
issue #244, due to two problems I just noticed:
- strcasestr doesn't exist on Windows, and there seems to be no easy
replacement.
- ApiTraceCall::contains search the string in the whole call (not just
the name)
commit 0d86efd38a375c526491c679f4d2185ebe51434e
Author: Lawrence L Love <lawrencex.l.love@intel.com>
Date: Tue Mar 25 17:11:09 2014 -0700
qapitrace: fix an inline string FIXME request
Issue:
TraceLoader::callContains() had the comment
FIXME: do string comparison directly on trace::Call
The existing code was doing a new/delete of an ApiTraceCall object
in order to use its interface for a string search.
Resolution:
Assuming what was meant by a direct comparison is using C's
strstr/strcasestr functions, that is what's implemented in
this patch.
An alternative would be to use a QString object's API
return (QString(call->name()).contains(str, sensitivity));
but no testing was done with that.
Testing:
This code is only hit when searching in unloaded frames. Frame 0 is
pre-loaded so this code isn't exercised until the string is searched
in another frame.
Testing was done with case-sensitive and case-insensitive searches.
Compared against existing previous code for same results.
Timing:
Did two searches each of old and new code using "gettimeofday" timing
in TraceLoader::search with the following results searching for a
nonsense string (to search entire trace), case-insensitive:
warzone2100 180MB (180664407) old new
------ -------
Total time in seconds: 89.047 16.3269
88.9844 16.3358
Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
commit 3d91a979947afe25314882a47db1b2853b23b676
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Mar 19 16:12:10 2014 +0000
glstate: Describe a few more transform feedback states.
commit 485846b2a40d8ac7d6c1c5f8af6d15b0c10af19d
Author: Brian Paul <brianp@vmware.com>
Date: Fri Mar 7 10:14:12 2014 -0700
glretrace: avoid glXSwapBuffers failures because of "bad" windows
Both Mesa's and NVIDIA's libGL generate an X protocol error in
glXSwapBuffers() if the window has never been bound with
glXMakeCurrent(). That causes glretrace to exit. The X protocol
error can't be trapped with XSetErrorHandler() for some reason.
So, keep track of whether a window has ever been bound and skip
glXSwapBuffers if the window has never been bound.
This allows some WGL-based apitraces to be replayed on Linux/GLX.
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
commit 707630df1b4270eae3dd49b7344c645f32c1b5f4
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Mar 7 14:20:35 2014 +0000
gltrace: Handle GL_EXT_compiled_vertex_array correctly.
Quake3 puts some vertices in its array buffer that it never renders.
This happens for clouds rendering as well as flares. (In other words, it
creates a vertex buffer with V vertices, and an index buffer that
reference indices substantially lower than V, max(I) < V).
It uses compiled vertex arrays, and will LockArrays(V) - more elements
than it actually references. This is legal because Quake3's arrays have
a static size, much bigger than however many vertices it puts in there,
so the driver can safely read the whole locked area even though half of
it is never referenced.
With Apitrace, however, the situation changes a bit, because Apitrace's
calculation for the length of a user pointer is based on max(draw
element indices).
Below is an example of Quake3's sky rendering:
3466977 glLockArraysEXT(first = 0, count = 110)
3466978 glEnableClientState(array = GL_TEXTURE_COORD_ARRAY)
3466979 glEnableClientState(array = GL_COLOR_ARRAY)
3466980 glEnableClientState(array = GL_COLOR_ARRAY)
3466981 glBindTexture(target = GL_TEXTURE_2D, texture = 1132)
3466982 glTexCoordPointer(size = 2, type = GL_FLOAT, stride = 0, pointer = blob(440))
3466983 glClientActiveTexture(texture = GL_TEXTURE1)
3466984 glTexCoordPointer(size = 2, type = GL_FLOAT, stride = 0, pointer = blob(440))
3466985 glClientActiveTexture(texture = GL_TEXTURE0)
3466986 glColorPointer(size = 4, type = GL_UNSIGNED_BYTE, stride = 0, pointer = blob(220))
3466987 glVertexPointer(size = 3, type = GL_FLOAT, stride = 16, pointer = blob(876))
3466988 glDrawElements(mode = GL_TRIANGLES, count = 192, type = GL_UNSIGNED_INT, indices = blob(768))
The glDrawElements only references indices from 0 to 54.
Under Apitrace, the trace only copies the 55 vertices, instead of the
110 locked values. When replaying, the driver, which may want to read
the whole locked area, will read past the 55 vertices. This doesn't
always crash because we're lucky, but on the NVIDIA driver this crashes
fairly reliably. According to the compiled array spec, the driver is
allowed to read all of the locked memory.
The fix is to change the array tracing so that its count is based on
max(drawelements_count, locked_count).
Thanks to Arthur Huillet for diagnosing the problem, the above
description, suggesting the fix, and testing it.
Tested-by: Arthur Huillet <arthur.huillet@free.fr>
commit 26be8f915bb8c3e443fdec9468060c54dad056c2
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Mar 7 14:08:50 2014 +0000
gltrace: Use _glGetInteger where possible.
Simplifies/condenses code somewhat.
commit 0cab2bf168b60020632c93bb8564aafd9dcb0a6e
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Mar 7 09:28:35 2014 +0000
glretrace: Use glStringi for all 3.x contexts.
And not just those we explicitly request to be core context.
Fixes issue #236.
commit b2f773d8320d30648b89767dfe5b25ef94bc7e62
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 14:46:23 2014 +0000
dxgitrace: Fix IDXGISwapChainDWM spec.
commit 0f49e44dd035a2579c38210a4349fca62318c6c4
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 14:46:01 2014 +0000
glstate: Dump GL_ARB_buffer_storage state.
commit 3522cbdf837a4c825ff393e570f84e5093e57db2
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 14:45:32 2014 +0000
gltrace: Warn about coherent/pinned memory mappings being unsupported.
See issue #232.
commit 8c3fa76429cdbc366f95b124c2174001f949f43a
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 14:20:26 2014 +0000
gui: Use more precision dumping pixels.
commit 9a2e56819def9093693bca6896cbfeef9a5950d2
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 14:17:35 2014 +0000
eglretrace: Support non-compat GL profiles and debug contexts.
Not really tested though, as I don't have an EGL_KHR_create_context
implementation readily available.
commit c24f98f8356103a5999c14fbf382b3c8b3de29dd
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 13:51:15 2014 +0000
glretrace: Centralise and complete the list of texture targets.
commit 3b350ff556a49050a7ade2c01dca9227b87d811a
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 12:10:03 2014 +0000
egltrace: Drop debug.apitrace.procname support.
As suggested by Alexander Monakov, given it is no longer necessary with
Android 4.0 onwards.
Also remove all isTracingEnabled logic with it, simplifying code
substantially, and addressing issue #171.
commit 888112983ef9564b3a9d15699faa17c337d3942b
Author: Alexander Monakov <amonakov@ispras.ru>
Date: Tue Jul 2 10:38:09 2013 +0400
Use /data/data/$procname/$procname.trace on Android
So that applications with apitrace built-in with WRITE_EXTERNAL_STORAGE
permission can write traces on non-rooted devices too.
See issue #149.
commit b4051e3c5fe78064141a9b8a73752af1a3f349ba
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 11:44:38 2014 +0000
md5: Fix include for memcpy.
It should be string.h. This fixes warnings about undeclared memcpy
when building for Android.
commit 1a95d61544e9e3f518beaeafbb4a700a6800c6a2
Author: Alexander Monakov <amonakov@ispras.ru>
Date: Tue Jul 2 10:38:08 2013 +0400
gltrace: Prefer process title over executable path on Android
v2: Add comment (Jose Fonseca)
commit 2b0a0143dfcb1a5a1f6709f97a9cb11b5ae769ee
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 11:19:47 2014 +0000
gltrace: Handle GL_AMD_sparse_texture bitmask.
commit 262da2daf99c3af1f0f04a4bae1ecdb0f333271e
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 28 11:19:16 2014 +0000
glstate: Tweaks for GL_ARB_seamless_cubemap_per_texture.
GL_TEXTURE_CUBE_MAP_SEAMLESS is now also per texture.
commit 990ddd9f96fd4bac333d1178e56985d09bb26173
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 27 14:18:43 2014 +0000
specs/glparams: Add missing enums.
Feed from gl.xml as opposed from deprecated .spec files.
commit 1f43101e74b5e199c0d77c041a133d4e22637154
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 27 13:19:35 2014 +0000
specs/glparams: Reorder parameters numerically.
No other change.
commit d32e52e77583dc23ab1db6fbee4fec2e23773bdc
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 27 15:03:59 2014 +0000
cgltrace: Tweaks to CGL api support.
commit 52ca41d9fa6ef88e65d9da52e375716c68d48646
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Feb 26 16:47:53 2014 +0000
gltrace: Trace GL_NV_vdpau_interop.
Traces won't be replayable, but this will at least prevent the
apitrace: warning: unknown function "glVDPAU*"
warnings.
commit cea905bad6de3583c3b3f0672e02c79775f3aca7
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Feb 26 16:45:41 2014 +0000
gltrace: Support GL_NV_blend_equation_advanced.
commit 25a8a2138afe4ccdcd1de36a04f870a8d60a45ad
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Feb 26 16:20:57 2014 +0000
egltrace: Fix eglGetConfigs/eglChooseConfig prototypes.
`configs` is an output parameter.
commit 7d990fecfb7febd857aa9496f176c064f4a16b07
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Feb 26 16:16:31 2014 +0000
gltrace: Fix emission of fake viewport/scissor on MacOSX.
commit 8c449b53328059e9b55bb34baec9b27a15055a7e
Merge: 1c6c2bc 55d98e6
Author: zackr <zack@kde.org>
Date: Tue Feb 25 12:28:36 2014 -0500
Merge pull request #231 from lawlove/qapitrace-startnum
qapitrace: fails to find [CALLNO] in first frame
commit 1c6c2bc52d088962a0b0a0cac9121d11b24eba0b
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Feb 25 15:28:03 2014 +0000
gltrace: Detect the availability of tr1/memory header.
Instead of trying to guess it.
Should fix issue #224
commit b9adf67e972b58da5c017e82bab20438b56f353c
Author: Lawrence L Love <lawrencex.l.love@intel.com>
Date: Wed Feb 12 10:40:25 2014 -0800
apitrace documentation: add multiple callsets
Documentation update for previous commit:
apitrace: Allow multiple --calls and/or --frames input options
Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
commit 53a4080ffa79234da4ed9a246d15b7604777ac64
Author: Lawrence L Love <lawrencex.l.love@intel.com>
Date: Wed Feb 12 15:26:55 2014 -0800
qapitrace: minor optimization to findCallIndex()
Function continues searching after target call index is found
Noticed that TraceLoader::findCallIndex(int index) continues looking
through the entire list of calls after target call index is found
Fix:
Add a 'break;' after call is found.
Testing:
No real difference in time. Rough test /w 180MB file:
$ ll warzone2100.trace
-rw-r--r-- 1 lllove lllove 180664407 Feb 14 09:58 warzone2100.trace
Selecting the first call (7797067) of 10362 calls in frame 1767
Without change:
$ time qapitrace warzone2100.trace 7797067
real 0m13.495s
user 0m12.592s
sys 0m0.072s
With change:
$ time ../../src/qapitrace warzone2100.trace 7797067
real 0m13.275s
user 0m12.476s
sys 0m0.092s
(time based on my reaction time to kill qapitrace when frame 1767
is expanded to call# 7797067)
Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
commit 35857d9add2d4b50944474e6e89f121c1923b07e
Author: Doug Binks <doug@enkisoftware.com>
Date: Mon Feb 17 16:42:33 2014 +0100
glretrace: Improved support for GPUs which have GL_ARB_timer_query but not the EXT version.
This also uses ARB query for occlusion as this is an ARB not an EXT
extension.
commit a4d1c33bc6231886fe9fb62fc3ffd3c03c2a5058
Author: Nigel Stewart <nstewart@nvidia.com>
Date: Wed Feb 12 13:21:47 2014 -0600
glretrace: For multi-sampling back off the requested # of samples, until success.
Fixes GLX crash.
commit 2dc9453a7ace2f41d693ad93a781511139f9d27a
Author: Doug Binks <doug@enkisoftware.com>
Date: Mon Feb 17 15:58:32 2014 +0100
Add includes for algorithm.
Fixed compile errors for "error C2039: 'max' : is not a member of 'std'" with Visual Studio 2013 (and perhaps others).
commit 55d98e67b238a5e6d7d3e9ba76d60caa1f4e25f8
Author: Lawrence L Love <lawrencex.l.love@intel.com>
Date: Fri Feb 21 16:46:30 2014 -0800
qapitrace: fails to find [CALLNO] in first frame
qapitrace <tracefile> [CALLNO]
will mostly fail to find CALLNO if it resides in the first frame (not
always). If CALLNO is in a frame other than frame 0 then it succeeds.
Description
-----------
Apparently a race condition exists between two objects fetching the
list of calls for frame 0. On initialization of the trace, frame 0 is
automatically populated. If the specified CALLNO is also in frame 0
then the function that returns the Frame's children
(TraceLoader::fetchFrameContents) can be accessed simultaneously via
separate SIGNALS. Details below.
I don't think either of these address the issue but the implemented
solution works. It seems there should be a better solution.
Implemented solution
--------------------
Do one or the other:
Pre-populate frame 0 if callno is not given. Otherwise, populate and
expand to the given callno
Solution alternative
--------------------
Don't force populate frame 0 on initialization. Hence, no conflict.
(I don't see a need for pre-populating frame 0. The other frames
load just as fast without being pre-populated.)
Unsuccessful solution attempts
------------------------------
Using QMutex around the fetch function
Using Qt::BlockingQueuedConnection for both SIGNALs
Details
-------
After the trace has been scanned a "finishedParsing()" SIGNAL is
emitted from TraceLoader::loadTrace(). This SIGNAL is connected to
two different objects in a separate thread from the emitting
(TraceLoader) object:
1) SLOT ApiTrace::finishedParsing()
2) SLOT MainWindow::finishedLoadingTrace()
(via SIGNAL ApiTrace::finishedLoadingTrace())
SLOT ApiTrace::finishedParsing() # only loads frame 0
SLOT MainWindow::finishedLoadingTrace() # expands to the given callno.
If the callno is in frame 0 there can be a race condition.
Both objects end up emitting SIGNALS from the ApiTrace object to
TraceLoader object SLOTs where each SLOT in turn calls the
TraceLoader:fetchFrameContents()
function to retrieve the Frame's children, a list of pointers to
call objects (QVector<ApiTraceCall*>). This list of calls for each
frame should only be generated once. It then emits a SIGNAL to cause
the ApiTrace object to load the calls into the frame. Any subsequent
call to the fetch function just returns the frame's member set of
children call objects.
When the MainWindow SIGNAL is emitted, the fetch function may be
accessed at the same time as the other SIGNAL result. When the
check is made by the fetch function for whether the frame's children
call objects have been loaded, it receives a false and continues to
create another list of the same calls. When this list is returned, the
client looks for the call object associated with the index and then
emits a SIGNAL with that call object. Eventually that call object is
searched for in the (now loaded) Frame's children but has a different
address and hence not found.
Testing
-------
debug_khr.trace # single frame
sample-effects.trace # from issue#218
warzone2100.trace # from issue#218
glxgears.trace
Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
commit a314508e397c8f1814228d36259ea8708034444e
Author: Alexander Monakov <amonakov@ispras.ru>
Date: Mon Feb 10 15:31:17 2014 +0400
Dalvik.markdown: note that "adb root" is required (#225)
commit 353ce658cd24a39e5f5ef34997b44acb56ad19da
Author: Alexander Monakov <amonakov@ispras.ru>
Date: Mon Feb 10 15:03:15 2014 +0400
android.toolchain.cmake: update from upstream (#225)
From https://github.com/taka-no-me/android-cmake/commit/5db45cfb87fec180b74963d3680dd60d4d8d8c3a
commit 788d9ce293a9b44f64536130cf4ad577e8101dbe
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Feb 4 19:02:04 2014 +0000
glretrace: Support GL_EXT_debug_marker/label too.
Just like KHR_debug.
Untested, but should hopefully work fine.
commit 7ff82416a09d19922c18d211b0223399db1aeda3
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Feb 4 19:01:22 2014 +0000
gltrace: Fake GL_EXT_debug_marker/label too.
commit fd67604d5932cce3617ff7ce725a0a686d129905
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Feb 4 18:09:57 2014 +0000
gltrace: Move GL_EXT_debug_marker/label from GLES to ES specs.
They are also available in GL, and Apple actually advertises them in MacOSX:
https://developer.apple.com/graphicsimaging/opengl/capabilities/
commit cb07e2d632f412b2a4a903f85695bf8e24dc4f2d
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Feb 4 15:14:09 2014 +0000
gltrace: Add a link to Mesa's glGetBufferParameteriv fix.
For reference.
commit 38a2e4ec6c944f3cadebce68829479f36862cbb8
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Feb 4 15:12:27 2014 +0000
glretrace: Remove assert in dumpProgramUniforms.
As it can be triggered by some OpenGL drivers.
commit 98a91c92bb30f637b89b9c06a59c502f5bf28d0c
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Feb 4 15:11:28 2014 +0000
glretrace: Swizzle uniform block indices.
This may be necessary even when replaying with the same driver used
while tracing, but a shader is edited in qapitrace causing an uniform
block to become inactive.
commit 095fb95c67056c89adaf438f8da85bd6ba78828c
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Feb 4 14:27:05 2014 +0000
tracediff: Honour --call-nos option.
commit 8d1408b3a3c50cebcd8cafeca3ea363aa5f1b3fb
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Feb 3 19:57:18 2014 +0000
gltrace: Ensure GL_ARRAY_BUFFER is unbound before emiting fake gl*Pointer() calls.
When tracing, just before every drawcall, ApiTrace inserts gl*Pointer()
calls into the stream on attributes it detected as resident in user-mem
(instead of in a VBO).
ApiTrace wasn't inserting a glBindBuffer(GL_ARRAY_BUFFER, 0) and
glBindBuffer(GL_ARRAY_BUFFER, prevBuf) around those auto-generated
calls. Thus, it misrepresented pointers as huge offsets into the
currently bound VBO.
Thanks to idinev for spotting and diagnosing this issue. This achieves
the same result as idinev's fix in issue #222, but from the trace side.
commit 26b0a7133940e548a46231cc8d93206787a0bed4
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Feb 3 16:57:09 2014 +0000
glretrace: Silence NVIDIA's "Buffer detailed info:".
Merely informative.
commit db5ad3bd5803abf7cb87f6cfcd70540e2c493a04
Author: idinev <ultrano@hotmail.com>
Date: Mon Feb 3 15:50:39 2014 +0000
glretrace: Add glCompressedTex*Image*ARB to unpack function name list.
Issue #222.
commit d8f68f4a606226fa8c4ba07951790ca1e1d39c32
Author: idinev <ultrano@hotmail.com>
Date: Mon Feb 3 15:43:47 2014 +0000
glretrace: Set GLX_SAMPLE_BUFFERS.
Issue #222.
commit f300646b085595d53c87f9763d031960bc6f0325
Author: Corey Richardson <corey@octayn.net>
Date: Sun Jan 26 17:15:42 2014 -0500
qapitrace: Add option to retrace with core profile.
This was preventing using qapitrace to debug issues using Mesa. The
application being debugged used GL 3.3, but since a core profile wasn't
requested, the max Mesa would give was 3.0.
commit e8272e25f1a0fc0c473e0f74a658493ccabbb688
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Feb 3 14:55:53 2014 +0000
glretrace: Fix typo.
commit fe6bb2b4082963f7ade0e59bda34e13e3983b730
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Feb 3 14:55:46 2014 +0000
glretrace: Limit the low severity messages.
Otherwise some traces will be full of them...
commit aae9fc4f8683996cfe90f1997e428913a4d43dd4
Author: David Gow <david@ingeniumdigital.com>
Date: Sun Feb 2 22:07:58 2014 +0800
glretrace: Enable all debug output.
On nVidia systems, not all debug output is enabled by default. If we wish to
have the driver tell us where it is placing buffer objects, for example, we have
to enable all the debug channels by passing GL_DONT_CARE to everything in
glDebugMessageControlARB(...)
commit b49c0966b47e81bde66c2e544cdc8e18911c5632
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Feb 3 14:35:43 2014 +0000
d3dretrace: Assert SetWindowPos is called on the window thread.
commit de63b4817ae3a6951231fd89b94abcac55dd9fa8
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Feb 3 14:35:15 2014 +0000
glretrace: Prevent deadlock on SetWindowPos.
Achieve this by using a dedicated thread to process window events. It is
the only practical solution for this.
commit 0ff2eb11982b9d3c7a3333900cf0d3a5c0f77e32
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jan 29 20:06:48 2014 +0000
glretrace: Replay failing wglMakeCurrent calls correctly.
If wglMakeCurrent failed in the trace, then just make current NULL.
commit a887bfabaed83c4588b40c845535c0388c8da0f3
Author: Lawrence L Love <lawrencex.l.love@intel.com>
Date: Wed Jan 22 12:10:35 2014 -0800
qapitrace: ignore more supporting files generated by qtcreator
Missed this extension the previous commit:
"qapitrace: ignore supporting files generated by qtcreator"
Note: *.moc_parameters files are generated by cmake. Without
them, the following make error occurs:
moc: Cannot open options file specified with @
...
make[2]: *** [gui/apitrace.moc] Error 1
Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
commit 4addd530e2dc1708745d11d81de21b5d1230ed41
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jan 22 14:06:23 2014 +0000
image: Avoid snprintf.
Fixes MSVC build failure, as MSVC only defined _snprintf.
commit 6c73f457ebfc40327fe1197fbb3a8927b1499b95
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jan 22 13:22:23 2014 +0000
image: Simplify MD5 calculation and output.
No intermediate buffer.
commit 3a6980cfb4c6cdacc6a195f8068a365bcd83023c
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jan 22 13:19:05 2014 +0000
image: Fix bug in RAW image output.
commit f8da408f14983b1352b5bf54572c168b8337338a
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jan 22 13:03:24 2014 +0000
retrace: Make --snapshot-format=MD5 work as documented.
--snapshot-format is the standard output format. -s is the prefix, not
the actual filename.
That is, for MD5 one should do:
./glretrace --snapshot-format=MD5 -s - app.trace
commit daa154bb2d1213a7cc9fb4b697a0c77237e5760b
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jan 22 12:55:24 2014 +0000
retrace: Document MD5 snapshot format.
commit 91ab493809b9dddd10bfafe21249d7a279402631
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jan 22 12:54:57 2014 +0000
md5: Fix gcc warning.
commit 5ef7994209def7644bb582397aa2242ab95f1467
Author: Meng Mengmeng <mengmeng.meng@intel.com>
Date: Wed Jan 22 12:44:46 2014 +0000
glretrace: Add '--snapshot-format=MD5' option that allows write image MD5 to a text format file.
Collecting MD5 is obtained based on raw buffer. Rendering results are
reproducd accurately. Creating .txt in place of PNG Format, that would
save more disk space and run faster.
Reference command:
glretrace --snapshot-format=MD5 -s /tmp/MD5.log smokinguns.trace
commit 093cf11c29fbb3db0ff8e390bf86ad29e61422a3
Author: Meng Mengmeng <mengmeng.meng@intel.com>
Date: Wed Jan 22 12:49:20 2014 +0000
md5: Add MD5 library.
From http://www.fourmilab.ch/md5/ .
commit 87f9b199a0f9c00e1541727d1f4c96099759c96b
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jan 22 12:11:23 2014 +0000
glretrace: Default to PROFILE_ES2 for EGL.
It should the most common profile for EGL.
Suggested Chad Versace, was quick workaround for issue #197.
commit c1e3971ca75a70fa1b9f77859bdb790e09042066
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jan 22 12:06:47 2014 +0000
glws_waffle: Support shared contexts.
commit 857bb392261392508364992771fb12cef60af5f7
Author: Scott Nations <dsn@xyzw.us>
Date: Tue Jan 21 14:35:54 2014 -0600
Update GL/glext.h which has a modified argument list for glClearNamedBufferSubDataEXT.
commit 35125daf6f6ea68c24140ca68ac60f74869d14a7
Author: Lawrence L Love <lawrencex.l.love@intel.com>
Date: Tue Jan 21 16:41:24 2014 -0800
qapitrace: ignore supporting files generated by qtcreator
When using qtcreator for build/debug, qtcreator creates miscellaneous
helper files that don't need to be seen by git.
Signed-off-by: Lawrence L Love <lawrencex.l.love@intel.com>
commit b3a965de28b5443e27a55aed0d8019266c569c7a
Author: Nigel Stewart <nigels@users.sourceforge.net>
Date: Tue Jan 21 16:20:29 2014 -0600
glretrace: Destroy Context only once via glXDestroyContext
Handling adapted from retrace_wglDeleteContext
commit 8f6e5678843907a281417f7226b934341df3da09
Author: Scott Nations <dsn@xyzw.us>
Date: Tue Jan 21 17:02:06 2014 -0600
gltrace: Add support for NV_framebuffer_blit.
Reply to: