- Jul 05, 2017
-
-
Christopher Cooper authored
-
Christopher Cooper authored
Audio
-
Michal Štrba authored
add libasound2-dev travis dependency
-
aerth authored
-
faiface authored
-
faiface authored
-
- Jul 03, 2017
- Jul 02, 2017
- Jun 15, 2017
-
-
Michal Štrba authored
Use travis-ci
-
aerth authored
-
aerth authored
-
aerth authored
-
- Jun 11, 2017
- Jun 10, 2017
-
-
faiface authored
-
faiface authored
-
faiface authored
-
Michal Štrba authored
more performance tweaks
-
Seebs authored
Because that's expensive, even in the case where the conversion is trivial. Use type assertion first. Reduces runtime cost of imdraw.Push from ~15.3% to 8.4%, so not-quite-50% of runtime cost of pushing points. If you were setting imd.Color to Color objects that aren't RGBA every single point, not much help. But if you set it and then draw a bunch of points, this will be a big win.
-
Seebs authored
Soooo. It turns out that the bunch of smallish (~4-5% of runtime) loads associated with Len(), Unit(), Rotated(), and so on... Were actually more like 15% or more of computational effort. I first figured this out by creating: func (u Vec) Normal(v Vec) Vec which gives you a vector normal to u->v. That consumed a lot of CPU time, and was followed by .Unit().Scaled(imd.thickness / 2), which consumed a bit more CPU time. After some poking, and in the interests of avoiding UI cruft, the final selection is func (u Vec) Normal() Vec This returns the vector rotated 90 degrees, which turns out to be the most common problem.
-
Seebs authored
We never actually need the "normal" value; it's an extra calculation we didn't need, because ijNormal is the same value early on. It's totally possible that we could further simplify this; there's a lot of time going into the normal computations.
-
Seebs authored
updateData()'s loops checking gt.Len() turns out to have been costing significant computation, not least because each call then in turn called gt.vs.Stride().
-
faiface authored
-
- Jun 09, 2017
-
-
faiface authored
-
faiface authored
-
faiface authored
-
Michal Štrba authored
revised performance tuning pull request
-
Seebs authored
The computation including a call to Stride() can't be optimized away safely because the compiler can't tell that Stride() is effectively constant, but we know it won't change so we can make a slice pointing at that part of the array. CPU time for updateData goes from 26.35% to 18.65% in my test case.
-
Seebs authored
A slice of points means copying every point into the slice, then copying every point's data from the slice to TrianglesData. An array of indicies lets the compiler make better choices.
-