Limit amount of time taken by texture loading per frame #4192
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Previously (#3148) we thought that it was file I/O that lead to stalls during texture loading. It appears that it is I/O, but not a file one. Instead it's the calls to
glTexImage2D
that have to happen in the main thread, and that are done on first successfulStelTexture::bind
call. This PR reduces total time per frame taken by such texture uploads, deferring them to subsequent frames when this time is used up.This lets us have smoother performance while not even having to limit the amount of threads that load and decode texture data. This PR also lifts this limitation on the number of threads (leaving the pool size still equal to the "ideal thread count").
Please keep the commits separated, just in case a need to revert one of them arises.
Type of change
How Has This Been Tested?
Test Configuration:
Checklist: