* VK_EXT_astc_decode_mode
* VK_EXT_swapchain_colorspace - this will cause slight artifacts as we won't
interpret pixels in the right color space, but it's minor.
* VK_EXT_validation_cache - we don't serialise this but we do allow it during
capture and pass-through straight. We don't wrap the VkValidationCacheEXT
object at all which makes support simpler.
* VK_EXT_external_memory_dma_buf - this is just a new memory type for external
memory, we don't need to do anything special to handle it.
* VK_AMD_mixed_attachment_samples & VK_AMD_shader_core_properties - these are
no-op once enabled
* Many shader-only extensions:
- VK_AMD_gpu_shader_int16
- VK_AMD_shader_fragment_mask
- VK_AMD_image_load_store_lod
- VK_AMD_texture_gather_bias_lod
- VK_NV_compute_shader_derivatives
- VK_NV_fragment_shader_barycentric
- VK_NV_geometry_shader_passthrough
- VK_NV_sample_mask_override_coverage
- VK_NV_shader_image_footprint
- VK_NV_shader_subgroup_partitioned
- VK_NV_viewport_array2
* This reads the argument once during load exactly when the draw itself
executes. We read just before the draw in case the draw itself would modify
the params (which is likely invalid, but something we should avoid).
* Even if marker drawcalls aren't themselves in the linked list, it's very
convenient to have their previous/next link to the next node on the list
itself, so that if you search and find one from the list of drawcalls you'll
still be able to iterate normally.
* Using the row index is not accurate when some input attributes are disabled,
because they won't match up to the original index in the attributes list.
A new button is added to the UI so that we can cycle the currently active window when there are more windows to capture. It's like pressing the F11 button but it works on Android too.
* In particular, when tracking a secondary command buffer we don't want to
accidentally track state changes to the primary command buffer that may have
happened after the secondary was recorded and should not override its state.
* On linux sometimes you can't invoke a GUI application as root. To work around
this, we use renderdoccmd to register the layer if it's available, or fail if
it isn't.