Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a way to enable mixed-source WaitAny support #505

Open
kainino0x opened this issue Jan 25, 2025 · 0 comments
Open

Add a way to enable mixed-source WaitAny support #505

kainino0x opened this issue Jan 25, 2025 · 0 comments
Assignees
Labels
async Asynchronous operations and callbacks non-breaking Does not require a breaking change (that would block V1.0)

Comments

@kainino0x
Copy link
Collaborator

Some backends (at least Metal, D3D12, and Vulkan with some extensions) support getting OS event handles for GPU queue events, which allows mixing their queue events in with CPU events. There should be a way for adapters to say they have support for this, probably simply as a WGPUFeatureName that can be enabled in RequestDevice. This was alluded to in the old design doc https://docs.google.com/document/d/1qJRTJRY318ZEqhK6ryw4P-91FumYQfOnNP6LpANYy6A/edit?usp=sharing but I think I forgot to actually write anything out about it:

A timeout was used, and there were two uncompleted futures from different sources (CPU, device1 queue, device2 queue), but the corresponding feature wasn't enabled on those futures' device.

OnSubmittedWorkDone and MapAsync by default return futures which can’t be mixed with futures of other types or futures from other devices. See also WGPUWaitStatus_UnsupportedMixedSourcesWithTimeout.

@kainino0x kainino0x added !discuss Needs discussion (at meeting or online) async Asynchronous operations and callbacks labels Jan 25, 2025
@kainino0x kainino0x self-assigned this Jan 25, 2025
@kainino0x kainino0x added non-breaking Does not require a breaking change (that would block V1.0) and removed !discuss Needs discussion (at meeting or online) labels Jan 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
async Asynchronous operations and callbacks non-breaking Does not require a breaking change (that would block V1.0)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant