Peter Lohrmann [Mon, 17 Jun 2013 20:20:04 +0000 (16:20 -0400)]
trace: Better fallback of glGetDebugMessageLog*
If glGetDebugMessageLog* is not exposed by the underlying driver during
tracing, the function should return a value of 0 (meaning that no
strings were in the log) instead of aborting.
Peter Lohrmann [Mon, 3 Jun 2013 21:58:41 +0000 (14:58 -0700)]
trace: Additional support for GL_KHR_debug, GL_ARB_debug_output, and GL_AMD_debug_output.
* Mark some of the entrypoints as having sideeffects so that they will
be replayed and can be seen in other 3rd party tools.
* Add the three additional extensions to the supported extensions list.
* Create new list of debug_entrypoints which may be implemented by a
driver. These entrypoints need to be handled differently from the
marker_entrypoints in that debug_entrypoints may be exposed by the
driver via wglGetProcAddress and apitrace should pass the calls along
if they are available. The marker_extensions are not expected to be
implemented by the driver, so wglGetProcAddress(..) does not need to
be called on them.
Note that even though this causes apitrace to return the extension
strings, the full extension implementation has not been completed, but
the entrypoints are exposed for the application to call.
José Fonseca [Fri, 20 Sep 2013 09:50:45 +0000 (10:50 +0100)]
backtrace: Allow to build without libbacktrace.
For apitrace integrated into Regal they want to opt-out of backtrace
support, for now. One reason is that it's fairly platform-specific.
Another concern is potential build issue across various Linux flavors.
gui: show the original pixel values in the surface viewer
Image viewer now holds the original image surface which means
that even though it has to display the flattened version it
can correctly report the exact pixel value on every surface.
Adds support for showing individual pixels and zooming in on the
image itself. All ready to be used for showing the actual original
pixel values, rather than the fake qimage pixels which it shows
right now.
Min-Yu Huang [Mon, 19 Aug 2013 14:41:52 +0000 (15:41 +0100)]
Take GL_SAMPLER_BINDING in consideration.
Fixed the issue that GL_SAMPLER_BINDING is only shown globally under
'Parameters' for the last activated texture unit. We should show
GL_SAMPLER_BINDING for each texture unit.
In this change, we also introduce GL_SAMPLER under each texture unit if
the sampler is bound.
Nigel Stewart [Fri, 12 Jul 2013 14:30:41 +0000 (09:30 -0500)]
glretrace: GLX and WGL support for ES2/EGL traces.
I was able to glretrace Gears for Android on x86 Linux with
NVIDIA (non-DRI supporting) driver by enabling
GLX_CONTEXT_ES2_PROFILE_BIT_EXT for the
glXCreateContextAttribsARB path.
Unfortunately eglretrace via Mesa es2/egl doesn't seem
to be compatible the NVIDIA desktop driver.
Improvements in AttribArray / attrib/list code generation.
- Treat unknown keys the same way while counting elements and while
processing them (they are assumed to be followed by an int value).
- Support custom terminators.
- Serialize the terminator.
- Reduce the line count of generated code a bit.
- Add forgotten begin/endElement() around writing the keys.
- Improve comment wording.
Peter Lohrmann [Mon, 8 Jul 2013 12:20:31 +0000 (13:20 +0100)]
Delete the file object if the trace file could not be loaded due to being an unsupported (newer) version.
Fix small memory leak / assert if a trace file can't be loaded due to
being recorded with a newer version number than qapitrace. In this
scenario, there is no error message that gets shown in the UI, but the
title bar is updated with the trace file name, so the situation is very
confusing.
Introduce AttribArray, a code generator for pseudo-type attrib_list.
Also use it for glXCreateConfigAttribsARB, which gives the expected
correct dumps in qapitrace and glretrace dump.
Nothing needs to change in dump code because it just reads whatever
types were written during tracing. Writing different types into
different array elements is allowed by the format, and it turns out
that even older versions of apitrace will correctly display dumps
created with this patch.
Nigel Stewart [Mon, 24 Jun 2013 20:40:44 +0000 (15:40 -0500)]
common: Add platform #ifdefs for non-cmake build convenience.
The cmake CMakeLists.txt file has logic for including or excluding certain
compilation units based on the platform: Windows, Linux or Mac OS X.
Other build systems are not as clever, it is convenient to also wrap
platform-specifics with #ifdef _WIN32 ... #endif to keep things simple on
the build side.
Nigel Stewart [Tue, 2 Jul 2013 22:34:00 +0000 (23:34 +0100)]
Resolve some MS compiler warnings (in picky mode)
warning C4267: 'argument' : conversion from 'size_t' to 'DWORD', possible loss of data
warning C4244: 'return' : conversion from 'double' to 'int', possible loss of data