* We need to make sure we track these transitions, both during capture
(so we have the right initial image states at frame begin), and during
replay.
* Likewise when repurposing a renderpass for isolating a drawcall, we
need to make sure the image layouts aren't transitioned - especially
from UNDEFINED - otherwise we'd end up with garbage data.
* The exact contents depend on the API - on D3D11 this is the bytecode
blob, on Vulkan it's the SPIR-V. On OpenGL it is just a concatenation
of all the source files passed in sequence.
* If there's no replay context we can still use the live connection to
copy and delete captures remotely. Try to use that whenever possible
and warn the user when it's not possible (i.e if the program has been
closed and there's no replay context, we have no way to access the
files anymore).
* If the user tries to open a remote log without a replay context,
prompt them either to swithc to a replay context on that host or to
save the log locally.
* This can happen if the program is closed, and no remote replay context
is active. Unlikely locally, the UI cannot natively save or delete
temporary captures.
* In GL although the ARB_dsa extension allows binding of cubemap faces
as if they were a 2D array (you know, the sane way), it doesn't let
the queries return the cubemap face to the LAYER query. Instead it
needs a separate query of CUBE_MAP_FACE.
* This is similar to the button on the capture dialog of the windows UI,
except on linux the situation is a bit more complex as layers can be
registered in two different system locations (one for distro packages
and one for non-distro stuff), as well as in $HOME.
* On linux we make sure the json always contains an absolute path so we
can tell from any given build whether or not a json is our own or not.
* By default we now install the json to /etc since /usr is reserved for
proper distro packages, and shouldn't be written to by 'make install'.
There's a CMake variable for overriding this for anyone who wants to
make install into a custom folder (maybe for packaging).