CR-1172341 XRT Test Code fails with 202320.2.16.175 packages #7667
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem solved by the commit
Move caching of command header to the very first start() of a run object.
Bug / issue (if any) fixed, which PR introduced the bug, how it was discovered
In #7608 the internally initialized ert command header is cached as part of a run object. The caching is done for repeated invocation of same run object to reset the header to a known good initial state. However, caching during construction of the run object is to early for some use cases where the header is changed in the host code to support legacy command opcodes.
How problem was solved, alternative solutions (if any) and why they were rejected
This PR fixes the problem by delaying caching until the very first invocation of xrt::run::start(). This allows for host code to manipulate the underlying command packet, which is necessary for support of legacy ERT_EXEC_WRITE.
Risks (if any) associated the changes in the commit
No risk, affects only existing failing use cases where command packet is manipulated in host code prior to first xrt::run invocation. Repeated use of same xrt::run object must not change the command header after first invocation.