----- Matthieu Fertré <matthieu.fer...@free.fr> a écrit : > Maybe with some optimizations we can have about 20/25 fps.
btw, here's the oprofile report for a x86 target (oprofile unavailable on a real arm target): 2578 11.3189 wormux Surface::MergeSurface(Surface&, Vector2<int> const&) 2057 9.0314 wormux PhysicalObj::GetYDouble() const 1782 7.8240 wormux PhysicalObj::GetXDouble() const 1153 5.0623 wormux PhysicalObj::GetX() const 1107 4.8604 wormux PhysicalObj::GetY() const 1035 4.5443 wormux Member::ApplyMovement(member_mvt const&, std::vector<c_junction*, std::allocator<c_junction*> >&) 915 4.0174 wormux GetObjectAt(Vector2<int> const&) 867 3.8066 wormux Tile::GetAlpha(Vector2<int> const&) const 821 3.6047 wormux PhysicalObj::CollidedObjectXY(Vector2<int> const&) const 751 3.2973 wormux fixedpoint::fixsqrt16(long long) Another run after changing PIXEL_PER_METER to int32_t: 7906 23.1400 wormux Surface::MergeSurface(Surface&, Vector2<int> const&) 2786 8.1543 wormux PhysicalObj::GetYDouble() const 2255 6.6001 wormux PhysicalObj::GetXDouble() const 1436 4.2030 wormux PhysicalObj::GetX() const 1390 4.0684 wormux PhysicalObj::GetY() const 1168 3.4186 wormux Member::ApplyMovement(member_mvt const&, std::vector<c_junction*, std::allocator<c_junction*> >&) 1131 3.3103 wormux Tile::GetAlpha(Vector2<int> const&) const 1092 3.1962 wormux PhysicalObj::CollidedObjectXY(Vector2<int> const&) const 1065 3.1171 wormux GetObjectAt(Vector2<int> const&) 916 2.6810 wormux fixedpoint::fixsqrt16(long long) It doesn't seem the special alpha case occurs that often (very obvious optimization: use only integer math scaled by say 1<<8 or 1<<16). I can't get proper annotation for it, so I don't know exactly how this time is wasted. It doesn't seem to be the lock. Best regards, Christophe _______________________________________________ Wormux-dev mailing list Wormux-dev@gna.org https://mail.gna.org/listinfo/wormux-dev