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

Use of pre-recorded command buffers per frame #335

Closed
kvark opened this issue Apr 9, 2020 · 1 comment
Closed

Use of pre-recorded command buffers per frame #335

kvark opened this issue Apr 9, 2020 · 1 comment

Comments

@kvark
Copy link

kvark commented Apr 9, 2020

Your system information

We are trying to run Dota2/Vulkan on macOS via the new swapchain implementation of gfx-portability - gfx-rs/portability#210

Please describe your issue in as much detail as possible:

Our new approach has a limitation that any swapchain related work needs to be recorded only in ONE_TIME_SUBMIT command buffers, and the record-submit should be fully enclosed between acquiring a frame and presenting it.

Most applications we tested on work within this constraint, and we are very happy about the results. A few applications though are not compatible, and Dota2 appears to be one of them.

My question is basically: what are the command buffers you have that are re-usable and render to swapchain images? Understanding this would be helpful to us.

From technical perspective, at least on Metal, there aren't really any re-usable command buffers, and there aren't really any swapchain images outside of acquire/present time frame, so all of the non-trivial KHR_Swapchain use cases have to be worked around by a Vulkan Portability implementation.

@kvark
Copy link
Author

kvark commented Sep 8, 2020

It turned out that you just have more than one frame in flight. This is still compatible with gfx-portability 🎉
See gfx-rs/portability#220

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

No branches or pull requests

1 participant