* Most of the main entry points that can fail with relevant reasons now has a
way of specifying a message to return with it. This message can be displayed
to the user to give more information or context about an error.
* The 'no to all' option should always be present if there are multiple unsaved
captures across the connections, even if the current connection only has one
capture and so otherwise wouldn't have a 'no to all' option.
* The 'no to all' option will always discard all unsaved captures in all
connections when closing the window, if the user clicks no on the confirmation
of this, abort the close operation entirely and let them decide how to handle
it (e.g. discarding/saving captures in connections individually).
* For some reason using != on these QSet<QString> fails in release only on
github's CI only. I don't know what is broken on their runners but this
workaround fixes it.
* We entirely skip over any instructions that don't have a source mapping. These
are assumed to be filler instructions or others that don't correspond usefully
to anything in the source.
Depth stencil resolve attachments were not being serialized and exposed in the pipeline state view. This change serializes the attachment id for the depth-stencil resolve attachment so that it can show up in the pipeline state view.
Update name of depth/stencil in pipeline viewer
Fix clang formatting
Update struct type
* Newly written shaders and any updated shaders can now use pre-defined macros
to abstract away binding differences between APIs, so custom shaders will be
more portable in particular shaders written in HLSL for D3D or GLSL on OpenGL
won't break on vulkan because they refer to incorrect binds.
* This means if you're closing multiple connections and click 'no to all' when
prompting save of instead of discarding just the captures in that connection
then going on to prompt for the next, it discards all remaining captures.