-
5db09f40
by Jose Fonseca
at 2019-11-27T12:49:45+00:00
gltrace: Fix __glPathGetCodePointUTF8 logic.
Fixes https://github.com/apitrace/apitrace/issues/640
-
620399d3
by Mark Janes
at 2019-11-28T07:10:14+00:00
retrace: when looping on last frame, re-use Call objects
Call objects are unnecessarily parsed when looping on the last frame.
Parsing incurs significant CPU overhead, often limiting performance
and making Apitrace unusable for benchmarking.
https://github.com/apitrace/apitrace/issues/142
-
189a3b83
by Paul Cercueil
at 2019-12-07T07:20:37+00:00
dlsym: Fix build under uClibc
uClibc defines the __GLIBC__ macro too (I know, right?), so verify that
__UCLIBC__ is not defined before we can use glibc-specific internal
functions.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
-
d5861c63
by Andrii Simiklit
at 2019-12-07T07:29:21+00:00
gltrace: don't destroy GLMemoryShadow-s which are still in use
This fixes shared coherent buffers behavior
which causes a freeze in "Deus Ex: Mankind Divided".
Here is an example of the problem, for instance
we have two shared contexts `CA` and `CB` and we do something like:
1. Create buffer `BA` in `CB`
2. Map it in `CB`
3. Destroy `CB`
4. Use mapped `BA` memory <<< This step will cause the freeze
because on the step `3.` we destroyed `CB`..
Destruction of the `CB` leads to `GLMemoryShadow` destruction which destroys
the memory allocated for the `BA` and then it leads to the freeze in
`PageGuardExceptionHandler` with SIGSEGV/SEGV_MAPERR becuase
the client is trying to use the memory received from opengl
Here is a spec OpenGL 4.6 "5.1 Object Deletion Behavior":
"... If a shared object
is not explicitly deleted, then destruction of any individual context has no effect
on that object unless it is the only remaining context in the share list. Once the
last context on the share list is destroyed, all shared objects, and all other resources
allocated for that context or share list, will be deleted and reclaimed by the imple-
mentation as soon as possible."
So we shouldn't destroy resources shared
between several contexts until all of them are destroyed.
v2: fix Xcode compilation error
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
-
d359a24a
by Mark Janes
at 2020-01-16T10:48:27+00:00
glretrace: Support traces which use GL_ARB_program_interface_query
During retrace, the driver may choose a different uniform location
than was recorded at trace time. If the traced program looks up
uniforms by name with glGetUniformLocation or similar apis, Apitrace
correctly remaps locations at retrace time.
However, GL_ARB_program_interface_query allows programs to iterate
over program resources querying program names. This reverse-lookup is
not supported by glretrace, and any change to uniform bindings will
result in a crash.
Programs looking up names for each index will:
- iterate the resources attached to the program, calling
glGetProgramResourceName to record the name at each index.
- iterate the resources attached to the program, calling
glGetProgramResourceiv to get the uniform location for each index.
This patch tracks the name at each program index, and then call into
GL to determined current bindings for the named resource whenever
glGetProgramResourceiv is encountered.
Fixes GFXBench Aztec Ruins traces, which crashed when retraced on
various drivers. A trace made on Mesa would work on Intel and AMD
Linux platforms, but would crash on Windows
platforms (AMD/Intel/Nvidia).
-
ffb366c1
by Mark Janes
at 2020-01-16T10:48:27+00:00
glretrace: Support traces which query uniform block names by index
Apitrace supports titles which query the index for a given uniform
block name. Alternatively, titles may iterate active uniform block
indices and retrieve the name at each index.
To support this method of identifying uniform block bindings,
glGetActiveUniformBlockName must be checked against the return value
that was traced.
Enables retracing of Bioshock6, which queries names by index. Without
this patch, a trace made on Linux will not retrace on Windows.
-
725b69e1
by Rémi Verschelde
at 2020-01-19T13:20:21+00:00
Remove executable permission from .cpp files
It's not harmful per se but also not necessary, and triggers warnings
e.g. when building RPM packages.
-
2d31d49e
by Gleb Mazovetskiy
at 2020-01-20T12:11:28+00:00
Support libc that don't have RTLD_DEEPBIND
-
f207e43e
by Ruslan Kabatsayev
at 2020-01-20T12:13:21+00:00
Use unicode multiplication sign instead of Latin letter 'x'
-
039e4abc
by Ruslan Kabatsayev
at 2020-01-20T12:13:21+00:00
Show depth for textures that have depth>1
-
0f9eb793
by Jose Fonseca
at 2020-01-20T12:29:16+00:00
gui: Fix conditional with identical branches.
Fixes https://github.com/apitrace/apitrace/issues/647
-
88dd70de
by Jose Fonseca
at 2020-01-27T11:03:57+00:00
d3dretrace: Log adapter description for more methods.
-
433f99b4
by Jose Fonseca
at 2020-01-27T11:07:13+00:00
d3dretrace: Drop NvOptimusEnablement.
It doesn't seem to do what's documented. In particular,
NvOptimusEnablement = 0x00000000 seems to trigger NVIDIA no matter what,
overriding the default system setting.
-
ddb32e0d
by Jose Fonseca
at 2020-01-30T14:24:03+00:00
docs: Update requirements to mention Python 3.6 instead of 2.6.
As pointed out by Adam Mizerski.
-
ffe58eee
by Jose Fonseca
at 2020-01-30T14:26:37+00:00
gltrace: Fix `passing NULL to non-pointer argument` warning.
-
e4f17e99
by Jose Fonseca
at 2020-03-20T11:41:15+00:00
scripts: Fix bold off escape code.
-
6313c2cf
by Jose Fonseca
at 2020-03-20T11:41:15+00:00
d3dretrace: Ignore IDXGIDevice2::EnqueueSetEvent calls.
-
d1a98b6f
by Jose Fonseca
at 2020-04-07T16:02:59+01:00
gltrace: Match opengl32.dll export ordinals.
Some applications import DLL symbols by ordinal, so it's important the
wrapper DLL ordinals match the original Windows DLL ordinals.
Fixes https://github.com/apitrace/apitrace/issues/652
-
9e9afe71
by Jose Fonseca
at 2020-04-15T15:38:43+01:00
guids: Recognize IID_IDXGIOutput6.
-
b5ab54dc
by Jose Fonseca
at 2020-04-15T15:42:49+01:00
inject: Intercept CreateProcessWithTokenW and CreateProcessWithLogonW.
-
6b55ceff
by Jose Fonseca
at 2020-04-24T08:21:45+01:00
d3dretrace: Ignore incomplete SetClipPlane calls.
For a time, only one of the 4 components of the pPlane parameter were
recorded in the traces. Such traces still are in use, and currently we
end up using unrelated/random data for the missing coefficients.
With this change we use a zero plane equation, which allows the calls to
go through and reach the drivers, but guarantees the plane will never
clip anything, even when the respective plane is enabled in
D3DRS_CLIPPLANEENABLE, so one has reproducible rendering.
-
418fdee4
by Jose Fonseca
at 2020-04-29T19:48:15+01:00
dxgiretrace: Handle multiple outputs gracefully.
The same number of outputs that was present when recording might
not be present when replaying.
-
95ce617a
by Jose Fonseca
at 2020-04-29T19:49:21+01:00
d3dretrace: Handle GPU counter queries gracefully.
This are unlikely to exist across multiple systems.
-
54748eb7
by Convery
at 2020-05-08T09:22:51+01:00
mhook: Compilation-fix for VS 2019.
Windows assumes default alignment in their SDKs, so pacing needs to be done after `#include <windows.h>` or defining `WINDOWS_IGNORE_PACKING_MISMATCH`.
https://github.com/apriorit/mhook/commit/5ccb00a9c89280bfff7ce595873a9923415172a7
-
8aed3c34
by Jose Fonseca
at 2020-05-08T09:23:24+01:00
dxgitrace: Hack ability to hide away host D3D11.x features.
-
22bd1013
by Jose Fonseca
at 2020-05-08T09:31:56+01:00
appveyor: Upgrade to VS 2019.
-
d6aae921
by Jose Fonseca
at 2020-05-09T22:47:34+01:00
appveyor: Set shorter job names.
-
6e4caa54
by Jose Fonseca
at 2020-05-09T22:47:54+01:00
cmake: Get CPACK_PACKAGE_VERSION from git tag.
-
1b3c8337
by Jose Fonseca
at 2020-05-09T22:48:53+01:00
docs: Update build instructions for VS 2019.
-
c893b14d
by Robert Tarasov
at 2020-05-17T09:11:20+01:00
Add the new client application 'info'
The new 'info' client prints the provided trace file information. The
first version of the client shows the container version, api type and
the total amount of frames in the trace file. The information can be
printed in JSON format.
-
894d44d2
by Alex Smith
at 2020-05-17T09:15:11+01:00
glretrace: Show current frame number in window title
I find this can be useful to roughly identify which frames I want to be
looking at for a specific issue in a large trace, by replaying the trace
and looking at the current frame number when the issue occurs.
-
80e37c7f
by Martin Sherburn
at 2020-05-17T09:20:59+01:00
glretrace: Fixed issue where state could be dumped before the requested call had been executed in a multithreaded trace.
For example when getting state for a particular Draw call, the
framebuffer could contain the contents prior to the Draw call.
-
b9e4b73c
by Jose Fonseca
at 2020-05-17T09:39:02+01:00
glretrace: Exit early when state dumping is not possible.
-
29dd3d8a
by Danylo Piliaiev
at 2020-05-17T09:43:47+01:00
glws_glx: Allow pixel buffers in GlxDrawable::swapBuffers
Pixel buffers are allowed to be used in glXSwapBuffers.
glx 1.4 spec, 3.3.5 "Off Screen Rendering", "glXCreatePbuffer":
"The resulting pbuffer will contain color buffers and ancillary
buffers as specified by config. It is possible to create
a pbuffer with back buffers and to swap the front and back
buffers by calling glXSwapBuffers."
Fixes replaying of Blender traces.
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
-
1fd8b5ac
by Danylo Piliaiev
at 2020-05-17T09:44:43+01:00
gltrace: Commit all writes to coherent buffers before syncing them back
Otherwise these writes would be lost. Deus Ex: Mankind Divided renders
incorrectly without this.
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
-
4abdb4c7
by Jose Fonseca
at 2020-05-20T17:28:25+01:00
guids: Add a few missing GUIDs.
-
b3ea7e44
by Jose Fonseca
at 2020-05-21T09:14:59+01:00
specs: Port cxx2api script back to Python 2.
Unfortunately pygccxml seems abandoned and was never ported to Python3.
-
5d936aaf
by Jose Fonseca
at 2020-05-21T15:41:46+01:00
specs: Support DXGI 1.6.
-
a17c0bbc
by velorums
at 2020-05-24T14:07:21+01:00
gui: make PixelWidget pass keypresses through so they reach scrollbars
-
1904c56c
by velorums
at 2020-05-24T14:07:21+01:00
gui: fix PixelWidget hotkeys
-
2bfcc45a
by velorums
at 2020-05-24T14:10:12+01:00
gui: preserve main window size and layout between restarts
-
a28033af
by Jose Fonseca
at 2020-05-29T18:42:08+01:00
specs: Add DXGI interfaces added on Windows 10.0.18362 SDK.
-
380e0667
by Jose Fonseca
at 2020-05-29T18:42:08+01:00
d3dretrace: Partial implementation of igpu/dgpu selection for DXGI.
-
ae2bd556
by Jose Fonseca
at 2020-05-29T18:42:08+01:00
d3dretrace: More complete igpu/dgpu selection.
-
42fcc3fe
by Jose Fonseca
at 2020-06-03T18:50:41+01:00
specs: Better GL_ARB_shader_storage_buffer_object support.
-
16271a01
by Jose Fonseca
at 2020-06-04T16:30:12+01:00
d3dretrace: Cleanup.
-
935d10a4
by Jose Fonseca
at 2020-06-12T08:17:19+01:00
d3dretrace: Further cleanup the adapter logging.
-
a112ac39
by Jose Fonseca
at 2020-07-30T17:24:37+01:00
appveyor: Always use RelWithDebInfo configuration.
Now that we take nightly builds from AppVeyor, we shouldn't be using
MSVC debug runtime.
Fixes https://github.com/apitrace/apitrace/issues/677
-
dad6340a
by Biswapriyo Nath
at 2020-09-11T21:36:51+01:00
thirdparty/dxerr: cast xaudio2 error codes to HRESULT type
Changes:
* thirdparty/dxerr/dxerr.cpp: cast XAUDIO2_E_ defines to HRESULT
which is the result type of the parameter of both DXGetErrorStringA
and DXGetErrorDescriptionA function.
Otherwise, gcc shows error narrowing conversion from int to long.
This casting also matches with WinSDK xaudio2.h file.
-
f1779aa2
by Jose Fonseca
at 2020-09-14T16:34:53+01:00
inject: Improve GetProcAddress logging.
-
b979e41d
by Jose Fonseca
at 2020-09-14T16:34:53+01:00
cmake: Avoid MinGW ld segfault on Ubuntu 20.04.
-
88c8ce04
by Jose Fonseca
at 2020-09-18T14:11:07+01:00
ci: Improve Ubuntu 16.04 dockerfile.
-
1aa83915
by Jose Fonseca
at 2020-09-18T14:11:32+01:00
inject: Fix MinGW cross-compilation errors on Ubuntu 20.04.
-
5e3d434a
by Robert Tarasov
at 2020-11-19T20:31:03+00:00
cli_info: Dump per frame metrics for trace files
Added extra information to cli_info output which includes:
* container type (compression method)
* container size (the size of the data in the storage container)
* actual data size (the size of uncompressed data)
* per frame metrics which include the folowing information:
* first call_id
* last call_id
* the total amount of calls in a frame
* uncompressed frame size
Usage:
apitrace info --dump-frames /path/to/file.trace
An example output:
{
"FileName": "/path/to/file.trace",
"ContainerVersion": 6,
"ContainerType": "Snappy",
"API": "OpenGL + GLX/WGL/CGL",
"FramesCount": 1789,
"ActualDataSize": 5272672851,
"ContainerSize": 1547699157,
"Frames": [{
"FirstCallId": 0,
"LastCallId": 2231,
"TotalCalls": 2232,
"SizeInBytes": 1259924
}, {
"FirstCallId": 2232,
"LastCallId": 2251,
"TotalCalls": 20,
"SizeInBytes": 449
}, {
[...]
]}
}
This information could be useful to analyze the data distribution in a
trace file, find transition points menu/game/etc, choose better point
for a trace file trimming, and so on.
-
cd29d99a
by rdb
at 2020-11-19T20:37:34+00:00
glapi: Add glSpecializeShaderARB from GL_ARB_gl_spirv
-
c329547f
by Antonio Caggiano
at 2020-11-19T20:40:31+00:00
glretrace: Expose getCurrentTime
Add getCurrentTime declaration to `glretrace.hpp` so that it could be
reused by other parts of the program.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
-
0e3bea82
by Antonio Caggiano
at 2020-11-19T20:40:31+00:00
retrace: Add `--pframe-times` option
When replaying a trace, it could be useful to analyze how much time is
needed to render and present each frame. While developing a GPU driver,
for example, developers could graph the frame time series in order to
detect regressions or improvements of driver performance over time.
The `--pframe-times` option enables profiling for frame times, meaning
that replaying will output a timestamp when a frame has been presented.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
-
a4d9a4dc
by Danylo Piliaiev
at 2020-11-19T20:42:07+00:00
gltrace: Forward unhandled signals/exceptions to a next handler
Some applications have custom handler for signals/exceptions,
which is necessary for their working. Therefor we shall forward
all unhandled signals/exceptions down the road.
Also apitrace itself has custom logic for handling signals,
which failed to execute due to lack of signal forwarding in
GLMemoryShadow.
Fixes a crash when tracing rpcs3.
Fixes: 18ce32f949409d051c88aea62209818aec7d6aa5
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
-
54d50767
by Ruslan Kabatsayev
at 2020-11-19T20:55:51+00:00
Avoid exponential notation when showing binary data size
Also add a thin no-break space between the number and the unit, and use
a larger set of units, with explicitly-binary prefixes.
-
094520c9
by Balint Reczey
at 2020-11-19T20:56:57+00:00
trace: Move visitString template to the header file
Fixes compilation on Ubuntu 20.10 on s390x
-
6059173c
by Jose Fonseca
at 2020-11-21T09:25:41+00:00
docs: Update summary.
-
0b1a37ab
by Jose Fonseca
at 2020-11-21T12:06:05+00:00
inject: Fix duplicate _assert definitions on MinGW.
-
3abb5ff7
by Danylo Piliaiev
at 2020-11-21T12:20:22+00:00
retrace,gui: Add ability to disable specific calls
In retracer calls can be disabled with:
--ignore-calls=CALLSET ignore calls in CALLSET
In QApiTrace:
Call range can be disabled/enabled with "Toggle Calls" ctrl+/
All disabled calls could be enabled with "Enable All Calls"
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
-
9081a264
by Robert Tarasov
at 2020-11-21T13:00:51+00:00
glretrace: Added per frame delay options in replay
Added two extra options to control frame rendering duration in replaying
mode. --per-frame-delay option adds extra delay after each frame in usec.
--min-frame-duration option specifies the minimum frame duration time in usec.
-
15de8746
by Jose Fonseca
at 2020-11-21T13:35:54+00:00
snappy: Update config.h to match upstream.
Among other things, the WORDS_BIGENDIAN define was renamed to
SNAPPY_IS_BIG_ENDIAN.
Fixes https://github.com/apitrace/apitrace/issues/688
-
a9223f54
by Jose Fonseca
at 2020-11-21T14:10:30+00:00
snappy: Update to 1.1.8.
-
9370df07
by Jose Fonseca
at 2020-11-26T13:30:31+00:00
appveyor,travis: Ignore github* branches.
In anticipation of experimenting with GH Actions.
-
64220837
by Jose Fonseca
at 2020-11-26T13:41:04+00:00
dxgiretrace: Avoid self-inflicted QUERY_GETDATA_INVALID_DATASIZE errors.
-
4bb6d10b
by Jose Fonseca
at 2020-11-26T14:30:18+00:00
mhook: Silence debug messages.
-
cb67fe84
by Jose Fonseca
at 2020-11-26T16:09:26+00:00
docs: Mention Microsoft Detours.
-
d77e180d
by Jose Fonseca
at 2020-11-26T19:59:57+00:00
inject: Optimize GDI interception.
Our DLL injection was causing Windows 10 GDI ChoosePixelFormat to grind
to a halt.
This greatly speeds up apitrace's test suite.
-
010cd935
by Miklós Máté
at 2020-12-19T11:57:38+00:00
specs: decode more info about ATI_fragment_shader operations
Signed-off-by: Miklós Máté <mtmkls@gmail.com>
-
7e2dc4d2
by Antonio Caggiano
at 2020-12-19T12:00:26+00:00
retrace: Fix GPU Duration
Make sure GPU start value is valid before calculating GPU duration.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
-
4a2d21fe
by Danylo Piliaiev
at 2020-12-19T12:01:40+00:00
glstate: Fix out-of-bounds memset of image
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
-
1a1cafcd
by Gert Wollny
at 2021-01-04T17:03:19+00:00
Drop use of std::binary_function
It only provides some type defs, is not required as base
class, was deprecated with c++11 and removed with c++17.
-
ae47b0fb
by Gert Wollny
at 2021-01-04T17:08:16+00:00
cmake: Require C++17.
-
38f41531
by Jose Fonseca
at 2021-01-04T17:13:06+00:00
docs: Update requirements.
-
eaf43962
by Fabrice Fontaine
at 2021-01-04T17:17:13+00:00
CMakeLists.txt: respect BUILD_TESTING=OFF
Allow the user to disable unit tests through BUILD_TESTING=OFF:
https://cmake.org/cmake/help/latest/command/enable_testing.html
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-
5abaf7be
by Jose Fonseca
at 2021-01-04T19:23:53+00:00
cmake: Require no more than VS 2019 version 16.0.
Hopefully it's sufficient.
-
fa8b470a
by Jose Fonseca
at 2021-01-08T14:23:47+00:00
cli: Add explicit repack option for Snappy format; improve help.
Snappy is the default repack format, but it wasn't mentioned anywhere!
-
8c500916
by AnyOldName3
at 2021-01-20T12:53:48+00:00
Initialise application name
QSettings requires that the application and organisation names are
initialised before it can use an implicit settings location. When
QApiTrace uses QSettings, it doesn't set an explicit location, so
the implicit one must be valid.
Without this, the Recent Launches list remains empty, at least on
Windows. I've had it work on Ubuntu, though, so presumably something's
setting the names automatically there.
-
3c3e9621
by Sergii Romantsov
at 2021-01-20T15:30:08+00:00
gltrace: Calculate compressed textures size
Replaying Dota 2 trace resulted in a crash due to invalid memory access.
It was caused by incorrect size of the compressed texture's buffer.
imageSize passed by user doesn't take into account pixel storage
modes, however the amount data which should be copied depends these
modes.
Due to lack of tests (no tests in VK-GL-CTS and Piglit) it was tested
only on Dota 2, Civilization VI and "Gl_420_texture_pixel_store" from
jogl-samples, thus testing only glCompressedTexSubImage2D.
v2: fixed cases with skipping pixels and rows.
v3: return imageSize if storage modes aren't used.
handle GL_UNPACK_SKIP_IMAGES.
Signed-off-by: Sergii Romantsov <sergii.romantsov@globallogic.com>
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
-
fa5eaf9c
by Gert Wollny
at 2021-01-22T22:05:17+01:00
trace: Add a const version of the "arg" method
With this the class trace::Call can be used const-correct
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
35f10166
by Gert Wollny
at 2021-01-22T22:05:17+01:00
gltrim: Add a new sub-command to trim a gl trace to a replayable subset
The new command can be called via "apitrace gltrim" and it will trim
a trace so that the resulting trace consists of a setup frame that contains
the execution of the calls required to recreate the state at the beginning
of the (first) target frame so that its graphical output is the same like
the output of the corresponding frame in the original trace.
If this is not successful, one can force additional frames to be added to the
setup frame.
v2: - remove tests from main repository
- replace include protectores by pragma
- remove commented out code
- add hint about limitations of the tool when running it
- fix option indention
(all José Fonseca)
- update the description in the markdown file.
v3: - Add handling for queries
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
9a878dfa
by Gert Wollny
at 2021-01-22T22:05:17+01:00
Tie gltrim sub-program into apitrace tool
-
63fa6bde
by Gert Wollny
at 2021-01-22T22:05:17+01:00
gltrim: load test data from submodule and run conditionally
v2: switch to new test traces repository
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
6df2d0c9
by Jose Fonseca
at 2021-01-22T22:44:19+00:00
ci: Use GCC 7 on Ubuntu 16.04 dockerfile.
-
37c36e66
by Jose Fonseca
at 2021-01-23T10:31:25+00:00
cmake: Require GCC 7.
-
eeabf77d
by Alexander Stillich
at 2021-02-04T14:52:18+00:00
specs: Added glSpecializeShader to glapi.py.
-
c2835107
by Jose Fonseca
at 2021-02-04T14:52:23+00:00
Update spec generation scripts.
Remove support for old Khronos spec files.
-
fbbdb533
by Jose Fonseca
at 2021-02-04T14:54:32+00:00
specs: Add missing GL 4.6 entry-points.
-
9e1ff754
by Jose Fonseca
at 2021-02-04T15:01:53+00:00
Revert "gltrace: Calculate compressed textures size"
This reverts commit 3c3e9621f5d28df80b56495d4227f1cf8307b408.
-
e405c298
by werman
at 2021-02-04T15:02:15+00:00
gltrace: Consider unpack parameters when writing compressed texture
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
-
aaa28eab
by velorums
at 2021-02-04T15:39:16+00:00
gui: center texture in image viewer
-
c8b52061
by velorums
at 2021-02-04T15:39:16+00:00
gui: make hotkeys immediately work on ImageViewer open
-
2ca0ccc7
by velorums
at 2021-02-04T15:39:16+00:00
gui: spinbox with adaptive step
-
8d471da2
by velorums
at 2021-02-04T15:39:16+00:00
gui: fractional zoom in ImageWidget and zoom range increase
-
4ef9b8b6
by velorums
at 2021-02-04T15:39:16+00:00
gui: zoom to fit option for ImageViewer
-
508a4d8d
by Danylo Piliaiev
at 2021-02-04T15:41:50+00:00
glws_glx: Choose pbuffer's attribs according to visual info
Otherwise we may get a pbuffer with configuration incompatible
with a context.
Fixes replaying of traces of Substance Painter.
Found in: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3271
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
-
17ec8a58
by Vladislav Belov
at 2021-02-08T09:20:58+00:00
Makes MSVC version check earlier
-
bdbf6720
by Jose Fonseca
at 2021-02-08T17:01:15+00:00
wrappers: Implement Direct3D9SetMaximizedWindowedModeShim.
Should hopefully fix https://github.com/apitrace/apitrace/issues/704
-
1544abf5
by Sandro Mani
at 2021-02-09T12:32:21+00:00
Update bunded libbacktrace for dwarf-5 support
-
590f2bbf
by Sandro Mani
at 2021-02-09T12:32:21+00:00
Omit checking whether fd 3 and 6 are closed in btest.c
-
70e029b8
by Jose Fonseca
at 2021-02-11T16:12:54+00:00
guids: Update IID_ID3D11PartnerDevice.
-
cdd77096
by Jose Fonseca
at 2021-02-11T16:12:54+00:00
specs: Record/replay ID3D11VideoProcessorEnumerator1.
-
59a8d2fb
by Jose Fonseca
at 2021-02-11T16:12:54+00:00
specs: Don't replay ID3D11Device4::(Un)RegisterDeviceRemovedEvent.
-
e3876ef6
by Jose Fonseca
at 2021-02-11T16:12:54+00:00
specs: Fix D3D11_TEXTURExx_DESC1 flags.
-
9576fde7
by Jose Fonseca
at 2021-02-11T16:12:54+00:00
d3dretrace: Handle DXGI_PRESENT_DO_NOT_WAIT.
-
78d3e785
by Jose Fonseca
at 2021-02-11T16:12:54+00:00
d3dretrace: Handle CreateSwapChainForCompositionSurfaceHandle.
-
89809472
by Gert Wollny
at 2021-02-12T15:55:40+01:00
gltrim: Add support for glCreateBuffers
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
bce0045d
by Gert Wollny
at 2021-02-12T15:55:40+01:00
gltrim: Add support for glClipControl
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
4f60b5a3
by Gert Wollny
at 2021-02-12T15:55:40+01:00
gltrim: record glVertexAttrib(Binding|Format|Divisor) and glTextureBarrier
Closes: #707
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
17d95a63
by Gert Wollny
at 2021-02-12T15:55:40+01:00
gltrim: Handle pipelines as dependency when drawing
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
c731bc7c
by Gert Wollny
at 2021-02-12T15:55:40+01:00
gltrim: Add support for named buffer mapping
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
a0e9b4b4
by Gert Wollny
at 2021-02-12T15:55:40+01:00
gltrim: Add all bound buffers as dependency when drawing
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
e4f01c04
by Gert Wollny
at 2021-02-12T15:55:40+01:00
gltrim: Emit mapped buffer when memcpy is used on them while recording
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
b2bf3cd1
by Jose Fonseca
at 2021-02-13T11:17:13+00:00
libbacktrace: Fix build with old dwarf.h.
Older versions of dwarf.h, such as the one on Ubuntu 16.04 doesn't
include DWARF5 defines.
-
7e1c1590
by Jose Fonseca
at 2021-02-13T13:44:18+00:00
ci: Don't force interactive docker runs.
stdin is often redirected on CI systems.
-
910eaa59
by Jose Fonseca
at 2021-02-15T11:31:34+00:00
github: Use GitHub Actions.
To eventually replace Travis CI.
-
b6f0c4f9
by Jose Fonseca
at 2021-02-15T11:43:03+00:00
ci: Upgrade from CentOS 6 to 7.
CentOS 6 reached EOL on November 30th, 2020.
-
4a51cf36
by Jose Fonseca
at 2021-02-18T12:18:17+00:00
libbacktrace: Ignore 9 fd too.
https://github.com/apitrace/apitrace/runs/1926680198?check_suite_focus=true
-
d9b54c15
by Jose Fonseca
at 2021-02-18T13:28:35+00:00
d3dretrace: Call GetDeviceRemovedReason on IDXGISwapChain::Present.
-
01716fca
by Jose Fonseca
at 2021-02-18T13:58:20+00:00
d3dretrace: Use C++ overloading instead of opaque code gen.
-
48d694a0
by Jose Fonseca
at 2021-02-18T17:41:22+00:00
inject: Fix STARTUPINFOA initialization.
-
2a80f0a4
by Jose Fonseca
at 2021-02-21T08:37:16+00:00
github: Build with Qt on MSVC and macOS.
-
a2faf7ab
by Jose Fonseca
at 2021-02-21T08:37:32+00:00
github: Merge all build workflows into one.
-
9e9b8cf2
by Jose Fonseca
at 2021-02-21T08:37:40+00:00
github: Speed up MSVC build.
-
162106c7
by Jose Fonseca
at 2021-02-21T09:01:02+00:00
travis: Remove integration.
It is now completely superseded by GitHub Actions.
[skip ci]
-
3d7d6e16
by Gert Wollny
at 2021-02-21T09:05:22+00:00
retrace: take end of frame shapshots always from back buffer
When specifying "--snapshot=frame" it can be assumed that the user
is interested in the renderiung output that goes to the screen and
not to some framebuffer attachment that happens to be bound to be
bound to an active framebuffer and set to be the drawbuffer.
Consequently, override the frame capture logic in case the frame-end
call triggers the snapshot to get the backbuffer contents.
Closes: #699
v2: - rename endOfFrame to backBuffer (Jose)
- add parameter to D3D replay (Jose)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
1c270846
by Gert Wollny
at 2021-02-22T11:39:52+01:00
gltrim: Handle CopyBufferSubData and CopyNamedBufferSubData
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
29cb809a
by Gert Wollny
at 2021-02-22T11:39:52+01:00
gltrim: Handle indirect and instanced draw calls
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
2d766c00
by Jose Fonseca
at 2021-02-22T11:25:07+00:00
cmake: Require CMake version 2.8.12.
Support for less 2.8.12 is going away in future CMake versions, and we
don't really need 2.8.11 support.
-
4ec7eb5b
by Jose Fonseca
at 2021-02-22T11:26:03+00:00
cmake: Fix MSVC std option.
-
0db6d7f2
by Jose Fonseca
at 2021-02-22T15:34:01+00:00
specs: Remove D3D8 dead cruft.
-
83691e9f
by Jose Fonseca
at 2021-02-22T15:34:16+00:00
d3dretrace: Avoid crashes with D3D10_DRIVER_TYPE_(SOFTWARE|REFERENCE).
-
d2c2bba7
by Jose Fonseca
at 2021-02-23T13:51:08+00:00
cmake: Set PNG_ARM_NEON_OPT=0 on macOS.
Avoids M1 build failures according to krogovin.
https://github.com/apitrace/apitrace/issues/711
-
f1c0b056
by Jose Fonseca
at 2021-02-23T15:35:38+00:00
d3dretrace: Handle non-null pFullscreenDisplayMode parameters correctly.
-
2a5e2230
by Jose Fonseca
at 2021-02-23T15:36:18+00:00
ci: Use CMake 3 on centos-7 docker image.
So we can start assuming and requiring CMake 3 support everywhere.
-
a22dda1a
by Jose Fonseca
at 2021-02-23T15:39:10+00:00
cmake: Require version 3.
-
c7d4250f
by Emmanuel Gil Peyrot
at 2021-03-02T16:35:01+00:00
glretrace: Ignore eglGetPlatformDisplay*()
Avoids an “unsupported eglGetPlatformDisplayEXT call” warning when
replaying a gtk4-demo trace from Wayland.
Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
-
fbab3507
by Gert Wollny
at 2021-03-03T13:28:46+01:00
gltrim: allow unordered call IDs when copying calls out of a trace
It seems that call IDs in traces are not necessarily ordered,
so don't rely on an ascending order.
This fixes trimming a Tom Raider 2013 trace.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
57f8b848
by Gert Wollny
at 2021-03-03T15:29:01+00:00
retrace: Add an option to force using the back buffer as snapshot source
Defaulting to reading from the back buffer when snapshots are taken at
frame frequency broke some test that only use FBOs and not always
clear the back buffer properly so that garbage was read back.
Add an option that the caller can force reading from the backbuffer,
but default to the old behaviour of reading back from the currently
bound draw buffer.
Fixes: 3d7d6e16606542e3255e03d8e99335aece7e5cdf
retrace: take end of frame shapshots always from back buffer
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
64481008
by Jose Fonseca
at 2021-03-09T18:32:42+00:00
cli: Remove unused var.
-
4b016517
by Jose Fonseca
at 2021-03-09T18:32:42+00:00
ci: Use newer CMake on Ubuntu 16.04 docker image.
-
e1d0f2b5
by Jose Fonseca
at 2021-03-09T18:32:42+00:00
cmake: Use CMake C/C++ standard variables.
-
3dd245e0
by Jose Fonseca
at 2021-03-10T15:23:56+00:00
gitignore: Ignore gltrim.
-
a01873e5
by Jose Fonseca
at 2021-03-10T17:51:48+00:00
github-actions: Cache Qt downloads.
-
b21e641f
by Gert Wollny
at 2021-03-11T17:21:41+01:00
gltrim: ignore non-existing objects when calling delete or destroy
In OpenGL deleting a non-existing object is siletly ignored, so
check if the object exists before attaching the delete call to it.
Closes: #714
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
c6d9be53
by Jose Fonseca
at 2021-03-14T06:40:50+00:00
ci: Fix build-msvc.ps1 parameter handling.
-
bcef8ec3
by Jose Fonseca
at 2021-03-14T07:22:34+00:00
github-actions: Retain Ubuntu 16.04 artifacts.
-
2674a24d
by Gert Wollny
at 2021-03-14T08:52:53+00:00
replay: Add option to execute and check queries
By default reading back query results is skipped, this commit adds
the option to actually read back the query result and then either
ignore it (useful for performance analysis, because reading back
the result may trigger some synchronization, e.g. with the virgl
driver), or check the result against the previously recorded
one. In order for this to make sense, we have to spin on
GL_QUERY_RESULT_AVAILABLE if the expected result is one.
v2: fix query result check logic
Closes: #715
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
34ac9a81
by Jose Fonseca
at 2021-03-14T17:03:15+00:00
github-actions: Try caching docker images through GPR.
-
8f6a88b6
by Jose Fonseca
at 2021-03-14T17:03:44+00:00
github-actions: Use debug builds ordinarilly.
-
1a90557f
by Chris Djali
at 2021-03-18T13:09:28+00:00
Increase precision of image range spinners
-
5e712278
by Jose Fonseca
at 2021-03-18T13:28:03+00:00
gihub-actions: Better symbol versions.
-
8aaf905c
by Jose Fonseca
at 2021-03-18T13:28:03+00:00
github-actions: Simplify docker build scripts.'
-
a6ce8c17
by Jose Fonseca
at 2021-03-18T13:28:03+00:00
d3dretrace: Fix integrated GPU selection on recent Windows.
Magic value 2 no longer works for me, but 3 still does.
-
993000c3
by Jose Fonseca
at 2021-03-18T13:37:42+00:00
libbacktrace: Hack around Ctest leaked fds differently.
fd numbers seem to vary. This should avoid the issue, while providing
more meaningful testing.
-
c74ff47e
by Gert Wollny
at 2021-03-27T12:39:54+00:00
retrace: Add option to pass a query result check threshold
In order to reduce the noise when comparing recorded query values
to evaluated ones while retracing add an option to be able to
specify a threshold for the result difference.
With a threshold > 0 " --query-handling check" will be enabled too.
Related: #715
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
424f69ab
by Gert Wollny
at 2021-03-27T12:39:54+00:00
qapitrace: Add query handling options to trace execution dialog
v2; remove placeholder value for combo box
Related: #715
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
-
cf881030
by Jose Fonseca
at 2021-04-04T09:44:03+01:00
inject: Better describe GDI behavior.
Fixes d77e180d117f4667c18d2dad1109c7a04ae8f04f.
Thanks to Jesse Natalie for helping me to better understand what's going
on.
-
886e562d
by Jose Fonseca
at 2021-04-04T09:44:03+01:00
ci: Flatten docker directory.
-
e028a737
by Jose Fonseca
at 2021-04-04T13:07:53+01:00
github-actions: Disable ubuntu32.
Build got broken somehow, probably due to some change in GitHub's
ubuntu-latest base image. Disable for now.
-
ce09f473
by Jose Fonseca
at 2021-04-04T13:36:00+01:00
cmake: Replace unnofficial -H option with official -S option.
-
21a2e789
by Jose Fonseca
at 2021-04-04T17:33:07+01:00
ci: Fix cmake parallelism when using docker without ninja.
-
03294478
by Jose Fonseca
at 2021-04-04T19:54:13+01:00
github-actions: Fix ubuntu32 job.
-
5c192f47
by Jose Fonseca
at 2021-04-07T19:43:23+01:00
ci: Update to Ubuntu 18.04.
Ubuntu 16.04 reaches end of standard support this month.
-
5401894d
by Jose Fonseca
at 2021-04-07T20:08:26+01:00
ci: Use GCC 8 on older distros.
-
e3112a3d
by Jose Fonseca
at 2021-04-07T20:26:07+01:00
ci: Use Ninja for CentOS too.
-
03e4e9d2
by Jose Fonseca
at 2021-04-08T16:26:46+01:00
libbacktrace: Explictly set HAVE_STDINT_H.
Fixes https://github.com/apitrace/apitrace/issues/727