- Not from the current action
- This makes Prev/Next button behaviour consistent when a marker is selected
- For Next if the action has children go to the first child, otherwise the action's nextAction
- For Prev if the action has children go to the previousAction of the first child, otherwise the action's previousAction
- Change asserts to if's and errors to prevent crashes in GetGroupsharedSrc(), SetGroupsharedSrc()
- for gsm check for valid memory access using dataOffset and dataSize
- the existing check for elemIdx >= numElems is not enough i.e. 2D arrays
- it had become incorrect over time
- disable DXIL debugger when DXC_COMPATIBLE_DISASM is enabled
- don't show RD Disassembly string when DXC_COMPATIBLE_DISASM is enabled
- previously only the resource used in the CalculateSampleGather operation would support arrays
- now includes array of Samplers, array of UAVs, array of SRVs which does not use CalculateSampleGather
- simulation support for arrays of Samplers (bounded and unbounded)
- simulation support for arrays of cbuffers (bounded and unbounded)
- add arrayed SRVs, UAVs, Samplers, cbuffers to the global state and UI
GL resource arrays are expanded in the GL reflection i.e. texture[0], texture[1] but they are collapsed in the SPIRV reflection.
For SPIRV resource arrays if matching the full name fails then try to match by the expanded name i.e. texture[<ARRAY_ELEMENT>]
* Linux doesn't support rebinding contexts between EGL (Android binding API) and
GLX (linux) even if no context is bound, so if one platform is used then the
other we can't bind our child contexts in order to delete objects when a
context is destroyed.
* We will have to do the same as we do if a different context is bound, and hope
that the driver tidies this stuff up for us when the context is deleted.
Keep the argument tuple owned by varfunc for its full per-call lifetime.
ConvertFunc destroys varfunc before ScopedFuncCall, so the tuple is released
exactly once while the GIL is still held, including failed callbacks.
Clear the argument tuple after calling a Python callback so varfunc's
destructor cannot decrement it a second time. This prevents repeated
zero-argument callbacks from losing references to the shared empty tuple.
Skip callback reference cleanup after Python has shut down, since Qt can
destroy pending callback closures during QApplication teardown.
Validation:
- Regression harness using this header and bundled Python 3.6.4: 20,000
callbacks with balanced references, nonempty arguments, exception paths,
deferred release, and callback destruction after Py_Finalize.
- Windows x64 Release build: no warnings or errors.
- MI 8 remote replay: 1.rdc -> 2.rdc -> 1.rdc -> 2.rdc; normal exit with
a pending callback, exit code 0.
Build and device checks used the existing development checkout, which also
contains separate local changes excluded from this commit.
* In some cases for resources that are declared in the entry point they will be
in reflected but it is possible that they are not statically used. For these,
it is allowed for them to not be present in the descriptor set at which point
we need to ignore them.
* Normally we require this for display, but we can't display these formats. On
many drivers sampling is not supported so this would force the whole format to
be unsupported, but due to shaderImageInt64Atomics we can't do that.
- Access queryTests, queryTestsMS element one instead of zero
- add tests for texBuffers, storeTexBuffers
- initialize arrayed resources descriptors to bad values
- set the accessed array indices to good values