* It's possible to replay with descriptor set slots (and updates)
referring to resources that don't exist at replay time, if those sets
are never actually used in a queue that's submitted and the resource
isn't referenced otherwise. For this reason we need to be able to
skip initial contents or descriptor updates that refer to these
unused resources.
* The main improvement is that instead of just callstack resolving DB
and frame capture data, some arbtirary number of sections can be
included, for e.g. adding notes or saving the bookmarks or whatever
use the user wants.
* Sections (namely the frame capture data) can now be (de)compressed on
I/O, which leads to much smaller file sizes.
* Also the default internal alignment has changed from 16 to 64 to be
more future proof (I decided not to go with completely arbitrary
alignment).
* A path for loading previous version logs remains and will be removed
at some point in the future, maybe a version or two down the line.
* Note at the time of committing there are still some warnings in MS
headers that you might need to suppress in a couple of files.
* 3rd party code just has the warnings suppressed for ease of merging.
* The majority of warning fixes were for local variables shadowing
other locals, function parameters, or members. In most cases they
weren't a problem, but in some cases it was potentially dangerous!
* The real implementation can do more if it wants, and align to a larger
alignment, but we just return 64 to the program and align to that, which
satisfies the extension minimum requirements (and chances are no program
takes advantage of wider alignment anyway).
* This means that all APIs pass byte string types. ALL strings everywhere
in the entire codebase must be assumed to be and treated as UTF-8 content
not ASCII.
* Gets rid of all the horrible %hs specifiers that caused warnings on
linux! Hooray.
* We convert to wide strings, or use wide characters, only when necessary
to use the Win32 API. Some windows specific code will stay in wide chars
just for convenience.
* Files are already serialised as UTF-8 strings for linux/windows binary
compatibility, so this change doesn't break backwards compatibility.
* It's a little messier as it's easier for the os-specific header to not
define it and get confusing errors, but that's a one-time problem and
having an extra function in a callstack and not showing source at the
point of the RDCBREAK is annoying every time.
This commit changes WrappingPool::IsAlloc to take a const pointer as argument
as pointer isnt modified. ItemPool::IsAlloc is changed to a const function
taking a const poiner as argument.