Skip to content

DXMT: initialize async compile ready flags#757

Open
moreaki wants to merge 1 commit into
VirtualBox:mainfrom
moreaki:agent/dxmt-init-ready-flags
Open

DXMT: initialize async compile ready flags#757
moreaki wants to merge 1 commit into
VirtualBox:mainfrom
moreaki:agent/dxmt-init-ready-flags

Conversation

@moreaki

@moreaki moreaki commented Jul 8, 2026

Copy link
Copy Markdown

Summary

Initialize DXMT asynchronous shader and pipeline compile ready_ flags to false.

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

Closes #755.

Signed-off-by: Roberto Nibali rnibali@gmail.com

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>
@oracle-contributor-agreement

Copy link
Copy Markdown

Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
The following contributors of this PR have not signed the 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.

@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. label Jul 8, 2026
@moreaki

moreaki commented Jul 9, 2026

Copy link
Copy Markdown
Author

DXMT v0.80 audit update:

Updating the vendored DXMT tree to v0.80 would not address this. DXMT v0.80 and current DXMT main still declare these async compile std::atomic_bool ready_ members without constructor initialization in the shader/pipeline task objects.

I opened the equivalent upstream DXMT issue and PR:

@moreaki

moreaki commented Jul 9, 2026

Copy link
Copy Markdown
Author

Re-audit update:

I withdrew the upstream DXMT issue/PR I had opened for this (3Shain/dxmt#186 / 3Shain/dxmt#187). DXMT upstream declares cpp_std=c++20, and under that build mode default-constructed std::atomic_bool is initialized to false. So this is not a well-supported upstream DXMT defect as submitted.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Required At least one contributor does not have an approved Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DXMT: initialize async compile ready flags

1 participant