* The validation layers break this, although that's a very worrying
trend if KHR and core-promoted functions are allowed to be different
and potentially have different implementations.
* When checking for validity, some array elements might be valid while
others might not be. This is still OK if the application knew that
only certain elements would be accessed by the given shaders - so we
should still update the others.
* For Clear*View and OMSetRenderTargetViews, the CPU descriptor handles
used are read immediately, the heap can be modified or even deleted
after the call.
* So we save the contents of the descriptor, ignore the heap, and then
fill a temporary heap with the descriptor whenever it's needed.
* glslang's HLSL support now requires spirv-opt for correct functioning
and may need more in future, so it's disabled. The compilation was not
externally exposed, and in future this will be handled via
out-of-process execution of compilers.
* The update to SPIR-V headers also had the knock-on effect of allowing
SPIR-V 1.3. Closes#976
* The GUIInvoke object takes a QObject, and uses QPointer to check that
it hasn't been deleted when the callback fires. This prevents delayed
callbacks from executing after the object has been deleted and
crashing.
* In most cases the pointer is just 'this'.
* 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()