* This allows more flexible construction of what params/resources need
to be saved with initial contents data, as well as allowing better
type safety where possible by using driver-specific types for the
stored data.
* Especially it tidies up the ugly 'all data that tags along must be
a written into a single allocated byte pointer'.
* The initial content struct is responsible for destroying itself and
freeing any data.
* 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.