One possible tweak that could be made to that is something that could be either a Sprite creation option or an environment flag -- to have either int or float arrays created by default, by way of swapping in one function vs. another. The latter way, you'd only need to do one check at __init__ time for the whole library; the former way could probably be optimized to a high degree in a similar fashion.
On Monday, March 28, 2016 at 1:02:01 AM UTC-4, Benjamin Moran wrote: > > Hi guys, > > I did a minor performance tweak to the Sprite class's _update_position > method a while ago, and thought I'd share it. You can see it in my > "sprite_optimization" branch here: > > https://bitbucket.org/treehousegames/pyglet/src/124e1fe4c0016cf9effcf3c1706c0124aa99712e/pyglet/sprite.py?at=sprite_optimization&fileviewer=file-view-default > Basically it's just cutting out the temporary vertex list creation, and > removing a if/else few checks. I've tested it with a few thousand sprites, > and this nets a few extra FPS. Not a major improvement, but it's also a bit > easier to read the method in my opinion. > > The only drawback to this tweak is that Sprite vertex_lists are always > created as float arrays, even if sprite subpixel is not used. This is to > avoid one of the if/else checks in the method. It is my understanding that > on modern GPUs (last 10 years), floats are used internally anyway, so this > shouldn't hurt performance any. > > Would this make sense to try to get merged in, or is there some glaring > issue that I'm missing? > > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.
