* This is only relevant when using a custom shader since otherwise nothing is
'updated', though could also affect overlays potentially. If we don't then the
custom shader texture may not have been re-rendered before we fetch the
histogram data and we'll get stale information.
Errors related to collecting NVIDIA hardware counters are now shown in the
"Errors and Warnings" window of the Renderdoc UI. Previously, these errors were
only visible in stderr. This includes errors for device compatibility, resource
availability, and insufficient privileges.
* These were previously hidden by default since they generate a fair amount of
noise in the disassembly which is not neccessarily directly useful.
* The problem is that DebugValues are steppable and so will generate an
instruction in the debugging, but without a disassembly line you can have two
different 'instructions' on the same disassembly line but with different
source lines:
> DebugLine 100
> DebugValue ...
> DebugLine 101
> OpSomething ...
In this case the DebugValue and OpSomething will both have the same disassembly line, but different source lines. This means it is impossible to reliably place a disassembly breakpoint and know which instruction to stop on, and produces some odd effects when stepping in asm (it will step to the DebugValue then the OpSomething and not visibly move).
* Overall the reduction in readability is worth this fix, especially considering
that when debug info is present is exactly when people are least likely to be
using the disassembly at all.
If some stream subobjects are missing, PSO creation will use the
defaults for those elements. For primitive topology, this is
triangle rather than undefined, and for depth stencil, it defaults
to depth disabled until either depth stencil state is encountered
or a DSVFormat is specified.
* These are not required to be supported and some drivers may not handle them,
but on implementations where they are supported we need to support debugging
them.
* This won't catch all cases as it won't be able to detect reads via plain
descriptor, those will still break if this kind of feedback loop is in place.
* With graphics pipeline libraries there can be a different pipeline bound to
the state as the one used to specialise a shader. Since this is a many:1
relationship (per shader object) we can express it with a simple map lookup to
redirect the specialised pipeline.
* This removes a potential narrow race where a capturer is removed or added on
one thread while another thread is iterating the list of capturers for target
control communication.
Changes to Metal protocols to support MacOS SDK 13.1
Removed #if __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_12_0 guards now the CI can compile MacOS SDK12.0
* When debugging a pixel or doing quad overdraw we replace the pixel shader and
patch in our own UAV. Previously we were moving other UAVs out of the way that
were visible to the pixel shader, but this fails if a UAV is visible to all
stages and used in a vertex stage.
* Now instead for pixel shader inputs we pick a free space and use it. For quad
overdraw we pick an arbitrary high space to hopefully use the precompiled
shader, and if it's somehow not free we recompile the shader with a free
space.