Problem
Several asynchronous DXMT shader and pipeline compile work items expose a ready_ flag, but the std::atomic_bool member is not explicitly initialized in their constructors.
Callers use the flag to decide whether the compiled shader or pipeline state can be consumed. A newly-created task must start as not-ready until the worker has populated the result and explicitly stores true.
Proposed fix
Initialize the affected ready_ fields to false in the relevant constructors:
- shader compile task
- graphics pipeline compile task
- geometry shader pipeline compile task
- tessellation pipeline compile task
Validation
Signed-off-by: Roberto Nibali rnibali@gmail.com
Problem
Several asynchronous DXMT shader and pipeline compile work items expose a
ready_flag, but thestd::atomic_boolmember is not explicitly initialized in their constructors.Callers use the flag to decide whether the compiled shader or pipeline state can be consumed. A newly-created task must start as not-ready until the worker has populated the result and explicitly stores
true.Proposed fix
Initialize the affected
ready_fields tofalsein the relevant constructors:Validation
git diff --checkpassed.kmk VBoxDxMtcompleted successfully on macOS/Arm with LLVM 15.0.7.Signed-off-by: Roberto Nibali rnibali@gmail.com