DXMT: initialize async compile ready flags#757
Conversation
Initialize the atomic ready flags for shader and pipeline compile work items. The flags are queried before worker completion and waited on by callers, so leaving them default-uninitialized can make a new work item appear ready before a shader or pipeline state exists. Signed-off-by: Roberto Nibali <rnibali@gmail.com>
|
Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application. When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated. If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public. |
|
DXMT v0.80 audit update: Updating the vendored DXMT tree to v0.80 would not address this. DXMT v0.80 and current DXMT I opened the equivalent upstream DXMT issue and PR: |
|
Re-audit update: I withdrew the upstream DXMT issue/PR I had opened for this ( For VirtualBox, this PR should be evaluated only if the vendored/kBuild integration actually compiles this DXMT snapshot under older atomic initialization semantics or if there is a concrete VirtualBox-local crash/repro. It should not be presented as a current upstream DXMT fix. |
Summary
Initialize DXMT asynchronous shader and pipeline compile
ready_flags tofalse.The affected compile tasks publish a
std::atomic_bool ready_that callers use before consuming shader or pipeline state. A newly-created task should always begin as not-ready and only become ready when the worker has populated the result.Validation
git diff --checkkmk VBoxDxMton macOS/Arm using LLVM 15.0.7.Closes #755.
Signed-off-by: Roberto Nibali rnibali@gmail.com