With SM 5.1, instructions specify a resource by a logical identifier,
but root signatures specify them with a base register and register
space. Find the appropriate declaration and retrieve the data needed
for resource lookup.
* This is needed so that the functional tests can elevate and run renderdoccmd
to register the vulkan layer, if needed.
* At the same time remove the old spammy message and ignore flag - this dates
back to before the UI existed, and that should be the way users run RenderDoc
generally and it has a good UI for walking through layer registration if
needed.
* The command is always available, but will only show up in help if attention is
needed.
* Also fix registering installs on shared drives.
Instead of fixed arrays, the global state stores a map of UAVs and
SRVs, with the key being a pair of the shader register and register
space. Switched D3D12 sampler/gather to use SM5.1 and handle register
spaces.
Depending on OS and compiler, certain types may not be included
transitively by headers that were included previously. This commit
produces a clean build on the latest trunk versions of GCC, Clang,
and QT.
With large bindless descriptor tables, traversing all entries to
fill the boundDescs vector was a perf bottleneck. By switching to
storing the first descriptor pointer and a count, the bottleneck is
eliminated. Traversal during queue submit is slightly more complicated
but the same number of descriptors are visited.
- Add an outline of another callback used to detect which tests
failed.
- Refactor to make it easier to add additional callbacks: add shader
cache to keep track of created shaders and share them between
callbacks.
For Vulkan pixel history vkCmdEndRenderPass and vkCmdNextSubpass
can represent a modification, since it might be doing an implicit
image resolve. Pixel history is using drawcall callbacks to figure
out values pre- post- events, and vkCmdEndRenderPass and
vkCmdNextSubpass might be such events.
Also adds clear image usage to vkCmdBeginRenderPass(2) for images that
have VK_ATTACHMENT_LOAD_OP_CLEAR.
* We need to always do this when submitting possibly split depth/stencil
implicit transitions, in case the split transitions were actually from the
same layout and use a combined depth/stencil layout.
* Rather than forcing image states to completely split then completely merge
again when the barriers are the same but recorded per-subresource due to
previous splitting.