Some vertex format logic fixes and streamlining #542
Merged
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.
Android (and maybe web, etc.) doesn't use vertex array objects, due from what I recall to some non-conforming devices. This has frustrated some of the logic behind changing vertex formats, including when to dirty them. And these are the fixes.
The implementation was admittedly a bit gnarly, and I noticed some of it also didn't benefit from living in command land, so where possible I moved logic back into
Rtt_Renderer::Insert()
and friends. I was also able to eliminate two commands entirely, as well as some state that was held between commands.I'll try to do some further sanity tests tonight, but these now seem to work well both on the Android emulator and my phone:
Solar2D4.zip,
Solar2D5.zip
--
I was told that the "don't cull / hit test" flags these depend on could impact performance (although under much heavier load), so will see about doing a little restructuring, and if successful piggyback the results in another PR I have planned.
Also, Solar by default is not loading a depth buffer (confusingly, some Android drivers will anyway). I loaded one (not included in the PR) to verify these tests, but will try to set up an opt-in approach through
config.lua
and submit that as well.