* MS has deleted vbscript because breaking things is fun, so we use jscript
instead to do the weird replace of '#' so that numbers read from the registry
can be compared to numbers
* On a new enough dxc we can pass a flag to tell it to ignore dxil.dll
* This allows the tests to run on the test machine with an old windows SDK
(where the demos project copies the dxcompiler.dll + dxil.dll from) but still
pull in a new dxcompiler.dll without having it break on an old dxil.dll
* This would happen if a #line referenced the file it was already in - we would
only start outputting lines starting from the first one. Normally in this case
there's a #line before any text, but that's not guaranteed.
* This allows us to better return a valid mapped resource for an address even in
the case of overlaps/aliasing which might otherwise 'hide' a larger buffer.
Renamed some containers to distinguish between real memory allocations and pointers to within an existing memory allocation
Replace some asserts with if's as part of defensive coding
Resolve debug scopes in a separate pass before callstacks
Walk callstacks using DILocation (DebugLocation) data (dwarf scopes and inlinedAt data)
For each DILocation
Walk scope upwards to fill in the callstack (always a dwarf scope)
Make new DILocation from inlinedAt and walk that DILocation
This prevents the user from needing to click through a permission
granting screen on their device before the agent is able to run on the
device, but only does so if the API level is >= 30 (where this
permission has effect at all [0]) and if a particular property is set on
the device (`debug.renderdoc.autograntpermissions`) so as to avoid
potential pitfalls on unusual Android devices.
[0] https://developer.android.com/reference/android/Manifest.permission#MANAGE_EXTERNAL_STORAGE
* In some cases we were only syncing one queue when we needed to flush and sync
the whole GPU. Rename functions to be more clear about what is being synced,
and only sync one queue/our internal queue when we know that's the only work
we need to wait on.
Stop ignoring DXIL global variables which start with "dx.nothing."
Do not process constants from instructions which are counted as a nop by the simulation