* This allows it to tick faster when e.g. loading a capture that takes a while
without any pings. It also allows it to continue going for a short while after
the remote server shuts down to capture any crashdump messages.
* This invokes run_tests.py with any arguments but specifies the renderdoc
module and python module paths automatically. Only works if built within the
project repo itself as otherwise it won't locate the test script
* Previously it would be swallowed and processed as the argument to the test
command itself. We need to do a little manual parsing and stop cmdline from
doing too much work.
* We also fix a number of issues that could cause incorrect formats to be
generated.
* Test cases added for D3D11/GL/Vulkan to test different struct types. These
aren't automated at the moment because most of the code they're testing is in
the UI itself.
* On replay on macOS we use NSOpenGLContext so we can render to windows.
* We have two windowing systems on mac - one for Metal compatible outputs and
one for OpenGL compatible outputs.
* Fortunately the extension doesn't add any functionality that can't be achieved
through the old bindings, it's just better decoupled.
* What we do is set up our own VAO attrib/binding tracking, and translate all
the functions (old and new style) into the equivalent modifications of that
state, then each time a change happens we flush out the attribs and bindings
using the old attrib functions.
* We also intercept the queries to the new bindings and return the right values,
so even if loading a capture that uses ARB_vertex_attrib_binding would work as
expected (as all the translation to old bindings happens under the emulation
layer).
* Split up old uber-cbuffers used for unrelated shaders into shader-specific
cbuffers (DebugPixelCBufferData -> TexDisplayPSCBuffer / CheckerboardCBuffer /
MeshPixelCBuffer).
* Split up HLSL files so not everything is lumped into 'debugdisplay.hlsl' but
has separate files as appropriate.
* Use #include in GLSL and HLSL to better organise shader code together rather
than relying on lumping files together on the C++ side.
* Renamed files like 'debugcbuffers.h' to 'hlsl_cbuffers.h'.
* Trimmed out some extensions/cruft that isn't needed in the GLSL side since we
no longer use separable shaders.
* Combine some shaders like Outline/Checkerboard that were similar into central
place.