* The idea is tha this style won't change the palette and will just do
some minimal additions/changes to whatever the native style is, to
work around some rough spots.
* This is updated whenever the OM bindings change, or viewport/scissors
change. Much lower frequency than per-draw where we were calculating
this information during capture.
* Note this also means we can't mark resources clean when clearing them
since you could bind -> clear -> draw and the resource wouldn't be
re-marked dirty. This isn't much of a loss in precision though since
usually any resource that's cleared is going to be dirty again in
short order, so there's no point trying to track it in the hopes that
it might stay clean.
* For the most part the code was doing this, but there were a couple of
inconsistencies along the way.
* This avoids having to go throug the pool checking when we know
concretely what type we're looking up, we just need to cast to the
wrapped type and fetch it.
* Where available or allowed, we replay the captured user markers.
* When we're doing partial replay and we only push some of the markers
then stop, we keep track of how many were pushed so we can pop them
again and keep things balanced.
* Also for renderdoc internal book-keeping around the frame replay
itself we explicitly annotate the renderdoc internals
* On vulkan since there are no queue-level markers, we fire single-shot
command buffers that do nothing but push/pop/insert a marker.
* Instead of hardcoding which extension functions we fetch on replay,
we do the same as on capture and fetch all functions for the
extensions that are actually enabled.
* Unverified as yet, but the former is relatively straightforward and
not serialised, and the latter is quite similar to the NV dedicated
allocation extension.
* Drop support for now deprecated KHX sharing extensions:
- VK_KHX_external_memory
- VK_KHX_external_memory_capabilities
- VK_KHX_external_memory_win32
- VK_KHX_external_memory_fd
- VK_KHX_external_semaphore
- VK_KHX_external_semaphore_capabilities
- VK_KHX_external_semaphore_win32
- VK_KHX_external_semaphore_fd
- VK_KHX_win32_keyed_mutex
* And add support for the KHR promoted versions (which are almost the
same, with some minor changes).
After selecting an application to launch on Android, inspect it to see if
it contains the RenderDoc layer and required permissions. If it does not,
display a warning similar to desktop. When clicked, if only the layer was
missing, offer to patch the APK, uninstall, and reinstall, with the
warning that it doesn't work for all applications (or at all for GLES).
Also provides pointers to how to package the layer yourself.
The process works by using the host temp directory to pull the APK and
modify it. If the steps fail for any reason, the log is populated and
patching is halted.