VulkanEventNode contains all data for an Event during loading: APIEvent, ActionDescription, resource usage, debugMessages, annotations.
Action ID, Event ID is not computed whilst loading is happening.
At the end of Loading when the VulkanEventNode's have been flattened into linear submission order then the VulkanEventNode's are baked into RenderDoc replay APIEvents and Actions. Event IDs and Action IDs are assigned as part of the baking process
- loose event annotation
- a barrier at end of command buffer
- at end of command buffer attached to vkEndCommandBuffer
- command buffer with no actions, just set marker
- annotations before/during/after vkCmdDrawIndirectCount calls
Separate the arguments instead of a single argument
Use a different execute command line parameter for different terminal tools
-e : default
-x : for gnome-terminal
Applications that use these extensions have shaders with new
instructions. The driver should receive the features struct
via a vkCreateDevice pNext chain to enable the feature. This
change simply adds this extension as a supported extension,
and adds the pNext structs to the supported structs.
* This isn't necessary if only one main queue is in use as FlushQ() syncs our
main queue, but if the submission is on a separate compute family for example
we need to sync it before processing any indirect readbacks.
* These are identical to the old versions but with a return value, so we can
share the implementation and have a common path just with a bool, and discard
the return value as needed.
* In the new path, only successful writes will be serialised.
* Slang seems to sometimes output dummy switches which aren't needed and confuse
the disassembly. In cases they are needed we need to identify when a break to
them short-circuits other control flow and close them.
* If the merge block is the main body of the if that implies there is fall-
through to the else case, it is more confusing but equivalent to putting the
merge block as the else case as the merge block doesn't have to be after the if.
* These are treated as read-only, we replay checkpoints but they are for
aftermath so don't mean anything.
* This allows applications to leave aftermath on, normally this could be
silently allowed but aftermath affects shader compilation when enabled.