* We already link to the chunk index and the chunk metadata contains the
callstack, there's no need for a duplicate copy when there may be many
APIEvents in a capture
* On some drivers like older NV hardware, there are memory types which can only
be bound to images and never to buffers, so ensure we don't try to create a
memory-spanning buffer for such allocations and avoid marking memory behind
images as written or it will become dirty in subsequent captures.
* The shader feedback itself will potentially trigger a replay. If this happens
after the overlay is processed when fetching the pipeline state it will undo
the clear-before. To workaround this without a huge and unnecessary refactor,
we just triggere the shader feedback cache before doing a clear-before
overlay. The amount of work is the same it just happens in a different place.
* This was broken in fa674a59b6 where the style
overrode the widget's foreground role. Changed to only use the custom
light/dark role when the desired role is Text (or WindowText).
* Add CATCH_CONFIG_FORCE_FALLBACK_STRINGIFIER to force use of ToStr in
all cases. We can handle ints, etc, we don't need ostringstream, and
this allows us to handle enums that would otherwise just be printed as
their integer value.
* Add CATCH_CONFIG_INLINE_DEBUG_BREAK which restores the Catch 1.0
behaviour of debugbreaks happening in macros and so in-line at the
actual site failure. So the debugger stops on the CHECK() or REQUIRE()
call instead of inside AssertionHandler::complete()
Cherry pick from https://github.com/baldurk/renderdoc/commit/4232736fc21fc6a13a4de6997a5ae106598b225f
* For the most part we implement this as a thin pass-through layer. Where we
care about things (image barriers for layout transitions and queue
submissions) we do two different things:
- For image barriers, we "downcast" to plain VkImageMemoryBarrier. Currently
the only thing that's unique to VkImageMemoryBarrier2KHR is extra access
flags and pipeline stages, which we don't care about. This keeps a lot of
code from having to either handle two paths or handle the new path and then
do lots of conversions back to VkImageMemoryBarrier when running on older
drivers.
- For queue submissions we do the opposite. We promote old VkSubmitInfo to
VkSubmitInfo2KHR and process that in a common function, then if necessary
we decay back to VkSubmitInfo before sending to the driver.