* We buffer output to avoid spamming huge numbers of signals especially when
single lines can be many write calls. This means if an exception is processed
immediately after a print the output from the print may come after the
extension.
* This is not the default python layout but is convenient for sharing the
standard library .zip and include folder with separate binary folders per-
platform. The layout mirrors what we include in the repository.
* This is expected to be in a pyside\ subfolder, with an organisation matching
our default setup.
* We also now copy the shiboken2 python module (if it exists) as required by new
pyside2 versions.
* We create both a stubs folder for each specific version, and a 'latest' that
is updated by newer RD versions.
* For development, the stubs will be regenerated any time the git commit hash
changes for development builds.
* Debug info could theoretically contain names which include path like
characters including '.' or '[]' even though these wouldn't be valid
identifier names. We assume this will not happen with names that are part of
structures/arrays themselves but instead only happen if there's a single
matching path.
* If there is no set/space and no array index, a single number is unclear of
what it actually means (when there is no sampler object, we don't have
anything to refer to except the binding).
* Because Qt is awful at customising controls, the functions used to fetch the
index of sections are not virtual so the internal QHeaderView version doesn't
get the right sections when we have column grouping enabled.
Separate the arguments instead of a single argument
Use a different execute command line parameter for different terminal tools
-e : default
-x : for gnome-terminal
* On D3D11 the runtime handled this for us via query of the DESC struct, but on
D3D12 we'd get whatever the user provided. To make things more clear we
display only the active blend state slot and label it 'all' instead of 0 on
both D3D11 and D3D12.