For compute quad derivatives tests use specific derivative i.e. fine or coarse.
It isn't specified which derivative mode is used, drivers differ on behaviour.
With descriptor buffers more resource types were added as forced references and this ended up marking more memory as referenced than should be including potentially using uninitialised data for memOffset and memSize.
* The default dxc emulation does not work when running in MSAA as our shader
runs at sample rate and SV_Coverage can be non-zero even for helper lanes.
* EIDs can change after initial recording of a command buffer, due to resizing
indirect executes, causing loading and active replaying to disagree on the
relative EID of a build. Chunk offsets are always fixed and we only need a
unique incrementing counter.
Called when loading captures in Iter_Test and Repeat_Load
Checks the consistency of EventIds:
Walk the actions to find all the referenced EventId's:
- Error if any EventId is duplicated
- Error if the EventId's are not contiguous (with no gaps)
- Bind the same resource as the Indirect Buffer and the Index Buffer
- Defines the resource usage when an indirect command binds the same resource for multiple usags i.e. Indirect + Index Buffer
- Descriptor buffer contents set by earlier command buffer than usage in a single submit
- Verifies the resource usage submit replay is correct (one command buffer at a time)
Execute multiple secondary command buffers at once
Test loose events (barriers) on nested secondary command buffer, secondary command buffer which is submitted multiple times and a command buffer which is submitted multiple times
Submit the same command buffer multiple times
Apply to loose events i.e. Barriers and resource usage in the current command buffer info
Fixes incorrect event ID in UI and resource usage for non-Action events at the end of a command buffer which contained IndirectDraw*Count calls
* We normally deduplicate during capture, but replay can introduce new
duplication against internal objects. Using ReplaceResource() would fix this
but updating the wrapper map is necessary for D3D11 to query current state
properly.
* Without this then buffers over 32-bit range which are treated as a 1D resource
could fail. Note that most APIs don't actually behave well with >=4GB buffers.