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

Convert Graphic Updating Functions to use Ascynio #17

Open
TheJoeSmo opened this issue Jan 11, 2021 · 0 comments
Open

Convert Graphic Updating Functions to use Ascynio #17

TheJoeSmo opened this issue Jan 11, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@TheJoeSmo
Copy link
Owner

Is your feature request related to a problem? Please describe.
Foundry lags whenever it reloads level creating choppy movement. A large part of the issue is the massive draw calls that we are forced to run in a single thread to the GIL.

Describe the solution you'd like
We slowly update the graphics code to run using Ascynio in order to stop the program from hanging. This would allow for the program to slowly update the level editor and other components in partitions. Dividing the program into small async partitions would allow us to distribute the load of complex and taxing draw commands.

Describe alternatives you've considered
It would be possible to use threading. This attempts to tackle the problem by throwing more cpu cycles at the problem. I argue that this is simply a temporary solution. Eventually, even with threading, we would run out of cpu cycles and would hang the problem. With asyncio, threading can still be applied, but with the addition that it can still be distributed over time. Furthermore, threading is hard to test and would likely lead to many bugs down the line.

@TheJoeSmo TheJoeSmo added the enhancement New feature or request label Jan 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant