* With VK_EXT_descriptor_indexing descriptor sets can be updated while a
submission is going on, leading to potentially parallel access to the
references.
* With VK_EXT_descriptor_indexing, the contents of descriptor sets at bind times
are (conservatively) meaningless as they may be updated/changed right up until
submit time with the right feature flags enabled. So instead of marking
resources conservatively dirty at bind time, we do it at submit time. It's
invalid for an application to except multiple versions of a descriptor set to
get applied, so sampling once at submit time is sufficient.
* The extension is not yet whitelisted as there is no solution currently for
feedback on used bindings or handling of pointers in data structures within
the UI or shader reflection.
* Setting it to empty is invalid for derived pipelines - since we don't want the
index to be 0 we want to use basePipelineHandle. We patched it to -1 before
serialising so the value is safe.
* In theory we should check everywhere on every function otherwise we crash with
a NULL pointer, but figuring out which functions to check is non-trivial in
some cases and there's the risk of false positives with fallbacks available
etc in cases where there are several possible alternatives for a given
function.
* These checks have been sprinkled around in places where it's safe because
there's only one implementation of a function that never made it to core, as
well as the most common problems - glFramebufferTexture2DMultisampleEXT and
glFramebufferTextureMultiviewOVR/glFramebufferTextureMultisampleMultiviewOVR
which comes from users mistakenly replaying a mobile capture on desktop. This
is not expected to work but it shouldn't crash.
* glRenderbufferStorageMultisample and glRenderbufferStorageMultisampleEXT
should be interchangeable, with the only difference being the EXT version
specifies that tile resolves may happen and MSAA data won't be preserved.
* When aliasing the functions RenderDoc will call the core version if available
even if the application called into the EXT, assuming them to be
interchangeable (and in this case the core function is a superset of
functionality). Unfortunately on ARM's driver attachments of different types
are not handled properly and FBOs can fail to create.
* The only available workaround for this is to copy-paste the function
implementation and keep them separate, and assume that the application does
the right thing and ends up with compatible attachments. The app could easily
break in the same way, but at least then RenderDoc is not forcing a bug to be
hit.
* Most cases don't have other text together with a ResourceId, so handle an
isolated ResourceId specially and manually render it.
* Further work - we could cache the name the same way as the RichResourceText
does. So far it doesn't seem to appear on profiling.
* Running 'adb root' will cause the device to disconnect, so doing it late when
we're selecting an app to debug and want to see if we have debug access means
we'll kill our server connection the first time. Instead doing it at enumerate
time means the device will already be in root mode.
Renames the "cont.d" column in the Pipeline State window to
"Additional". This is a less confusing title then the contraction.
Adds a "(VK_WHOLE_SIZE)" annotation after the range if VK_WHOLE_SIZE
was used, and an "(empty view)" annotation if the range is empty.
These annotations are intended to help diagnose incorrectly filled
buffer descriptors.
When selecting a draw with a tessellation evaluation shader using
layout(quads), RenderDoc would emit an "Unexpected output topology"
error.
Additional changes:
* Fixes a typo in the VK_EXT_transform_feedback name in various debug
prints.
* Renames the "GS Out" 3D View tab in the Mesh Viewer to "GS/DS Out",
to match the corresponding table. This affects all APIs.