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

Experiment with using the async compute queue #276

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

moosichu
Copy link
Contributor

This branch and PR are for allowing people to expriment with moving compute tasks to the async compute queue. We will need to properly profile the branch to analyze what the performance gains are (if any). If all goes well these things will eventually be merged into master.

@moosichu
Copy link
Contributor Author

Reading the Unity documentation, we don't need to check if async compute queues are supported because:
https://docs.unity3d.com/ScriptReference/Graphics.ExecuteCommandBufferAsync.html

If the target platform does not support async compute queues then the work is dispatched on the graphics queue.

However, apparently:
https://docs.unity3d.com/ScriptReference/SystemInfo-supportsAsyncCompute.html

Note that asynchronous compute queues are only supported on PS4.

This may be out of date, but we will need to do some more investigation, if this is true the benefits of async compute queues are likely to be limited.

@moosichu
Copy link
Contributor Author

Yes, so it turns out that the Unity documentation is out of date, reading this here:
https://forum.unity.com/threads/async-compute-support-for-more-platforms.583540/
However, it is only supported on DX 12:

 It definitely is DX12 only though. You can call the async APIs on DX11, but they'll fall back to just using the graphics queue. 

DX12 support is still classed as experimental in Unity 2019.1, cannot find information on it becoming stable in a given Unity release yet.

@moosichu
Copy link
Contributor Author

moosichu commented Jun 23, 2019

SystemInfo.supportsAsyncCompute returns false for me in DX12 and Vulkan in Unity on Windows, but then, sighs I get other log messages telling me that things are running asynchronously seperately. So, who knows what is going on there.

Found https://docs.google.com/document/d/1lMk6myULfwnMlxgb_V1FHA8zpQd_NIqe9ItbQRBw6GA/mobilebasic

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

Successfully merging this pull request may close these issues.

1 participant