* In-application API is bumped to 1.1.0 as a new function pointer is
added to the end of the structure.
* This comes with some caveats - capturing a frame is fairly heavy
weight, so capturing a frame might throw off timing-related bugs you
are trying to capture in subsequent frames. If you know your bug is
every other frame though, capturing two can be a quick way to ensure
you get it.
* This is potentially slightly less optimal as it means the initial
states aren't in GPU memory for a faster copy, but it means we're much
less likely to hit OOM due to way more GPU allocs, and it's still
pretty fast.
* Further optimisation is possible by reducing the number of images that
actually either need initial states at all (detect when images are
first used to clear via a renderpass), or by detecting images that are
frame invariant and we only have initial states for immutable contents
and avoid copying them more than once.
* This lets the usage actually have the right descriptor sets to check
against.
* It was lost as a result of a bad fix after copy-pasting removed the
previous read-time tracking.
* Sort of confused false positive - some pipeline SPIR-V blobs were
leaking but it was because they weren't being cached when they should
have, not because saving the shader cache doesn't destroy its blobs.
* These are some leaks, some mismatched new/deletes and some uninit'd
values. Mostly the leaks are what we care about so that the replay
host can be kept alive for a long time rather than needing to be
constantly restarted.
* Also added a valgrind suppression file to suppress some of the false
positives I ran into while testing.
* No need to base readback buffer on image memory requirements which
could be packed tighter than our requirements for readback (e.g. depth
and stencil combined formats)