* We also make the frame counting consistent: Frame 0 is the frame from
device initialisation to first present, Frame 1 is from first present
to second, and so on after that.
* APP_CMD_INIT_WINDOW can be called when the application hasn't fully
shutdown, and the thread is still running. Hold a lock while we're
inside renderdoccmd() so that we know if the thread has exited or not.
* This would be easier if android had pthread_tryjoin_np()...
* In some cases there was an unpredictable crash when starting a replay
loop, doing a full frame replay immediately after a previous replay.
There were no debug messages, and the debug layer fixed it - as did
enabling single flush validate. It seems to me some timing/overloading
issue, and doing this sync should be relatively harmless so we use
this to avoid the crash.
* Initially add support for spirv-cross and spirv-dis.
* When possible we'll auto-detect the tools in path or in the build's
plugins folder. Otherwise the user can add it and add their
executable path.
* We still use the first disassembler for editing - in future it would
be good to allow selecting the disassembler at edit time (as well
as allowing multiple compilers).
* This means that if the driver or some other layer reports messages,
we will save them in the capture for disable - even if the validation
layers aren't enabled.
* Includes GL 4.6.
* This fixes#842 due to previous GL headers having the incorrect
signature for glClearNamedFramebufferfi. This may also explain the
vendor check VendorCheck_NV_ClearNamedFramebufferfiBugs.
* On windows, the change in a global GIT_COMMIT_HASH define in each
project needing it meant a full rebuild every time the commit changed.
* Ideally we'd set the define only on one file in each project, but
MSBuild doesn't seem to support that. Instead we make a new tiny
project that compiles a single cpp exporting a global var, and
reference that global var in each other project.