* We're somewhat trying to match Qt's behaviour here, as we want to ensure that
the items are always sized as if they have space for an icon when
ignoreIconSize() is true. In this case there's a +2 added "to avoid icons
overlapping" but only after the decorationsize is max'd with the font size. In
cases where the font is bigger than the icon, this is important.
* Fake markers now need a real event ID. We don't want to have to remap all
events in a capture between UI and replay driver, so instead we assign non-
contiguous events above the normal range and expect the UI to handle it.
* All drawcalls now contain events, even markers. We no longer add virtual "API
Events", it gets added to the marker pop or command buffer close.
* Note that we will still default filter out marker pops, meaning this is a
slight behaviour change as API events will no longer be easily selectable.
However we're adding the ability to show all events which will be preferred.
* We don't generally support multi-gpu, but forcing NodeMask to be 0 on replay
for all cases may let some captures open when they couldn't otherwise. It may
not produce meaningful or correct results.
* Some drivers struggle with one command buffer per resource and that's
certainly inefficient, so batching work together (without going too far) keeps
things working better.
* If an object has enoug children, the lazy generator can take multiple seconds
on e.g. android to fully populate. This is a long enough stall to cause the
host side to timeout while waiting for the next piece of data. Instead of
populating everything up front before starting serialising, we now populate as
we go for each child, so that there's a steadier stream of data and avoid any
timeouts.
* On all APIs when depth is disabled the writes are skipped as well. Explicitly
set the function and write state to say that they are disabled.
* This also papers over a weirdness on D3D11 which has confused a couple of
people, where the retrieved desc with GetDesc() on a state object can be
different to the one it was created with when you set ignored parameters -
like the depth function with depth disabled.