Previously this data was a reference to the current pipeline state, so
when the selected event changed, the ShaderViewer's bindpoint mappings
would be inaccurate.
When a resource is accessed, it is now tracked by the debug step. The
shader viewer has a new panel to display resources accessed up to the
current step, with context menus to go to previous/next access of a
specific resource.
* If we have a given view length that fits in the buffer, we shouldn't apply the
offset before clamping. Instead we apply the offset on the buffer length if
that's what we're using as our size.
* Some will have to be supported because they're not optional, some more are
planned but are currently behind unsupported capabilities, and some are
extensions that will probably never be implemented.
Also:
- support for choosing mip level and slice
- tests for secondary command buffers
- adds a callback around vkCmdExecuteCommands
- refactors pixel history occlusion callback into its own
callback. Allows processing fewer events later on, and getting colour
information separately.
- keep track of subpassContents for vkCmdBeginRenderPass (inline or
secondary)
* Although device-local memory would be faster for the allocations we need it
for, it's also a limited resource and we may run out of memory trying to hold
both the capture's allocations and our own. Only allocations that *must* be in
device-local memory should be placed there.
* While convenient, passing uv parameters that will probably be different every
time via spec constants is not the best idea and will lead to many redundant
pipelines. Instead we keep things that must be constant as spec constants as
well as a few rarely varying things (texture dimension, operation) while
moving more varying things to uniforms passed in a constant buffer.
* This means we require the imageGatherExtended feature to promote constant
offsets to dynamic offsets, but this is a reasonable requirement.