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
For texture data the maximum number of components to store comes from the format
For non-texture data the maximum number of components is four which is then clamped to stop buffer overrun (by data size or offset)
This keeps the UI display in sync with the code internal settings for camera choice i.e. FlyCam/ArcBall. During the constructor, the UI setup for the different axis mappings will call on_resetCamera_clicked() and that can change the controlType current index value to be different from the expected/desired default value of 0.
Closes#3509
Previously "Restart Idx" was hardcoded to 0xFFFFFFFF
Show "Disabled" if the indexStripCutValue is D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED (0)
Similar UI behaviour to the GL pipeline state viewer
Closes#3508
Use the allocation size of the pointer argument not the allocation size of the memory backing variable (stack or global)
For Atomic* operations:
* use the pointer argument as the variable input instead of the memory backing variable (static or global)
* copy just the res value into the result variable instead of the whole res variable
* use the pointer argument variable as the source pointer argument instead of the memory backing variable
* record changes to the pointer argument variable as well as to the memory backing variable