Holy shit finally got frustum culling added, doesn't do much on my demo scene (Fluctuates between a loss of 5 frames to a gain of 5 frames) but that is expected, where it really shined was when I hammered as much as possible into the scene;
So I changed my spinning cube demo from 16 cubes (500fps at 720p) to 2048 cubes (18fps at 720p).
Keeping in mind that the cubes themselves are still unoptimised (I really need to get round to doing that).
When frustum culling is enabled, every time 75% of the cubes swing off-screen the frame-rate jumps from 18fps to 200fps, woo-hoo it works!
So with this I can construct the detailed geometry that is needed for the commercial project that this engine is being used in, my one concern was that we'd have all this off-screen geometry on mobile phones dragging the performance down.
So that's the result of 2 days of studying geometry maths X_X
On top of that, the Android codebase for this project no longer crashes, I re-wrote it this time studying the threads that Android dumps apps onto so I could grab the rendering thread and put everything native onto that, it's made the code more stable however there is an annoying problem with clean-up, there's no onShutDown event for Android's GLSurfaceView class so I had to make my own version that adds the shutdown command onto the GL thread, but by the time it's called the context is already trashed so GPUs spit out a warning for attempting GL calls on an invalid context, luckily everything works fine and it's just GL wind-down calls that are being attempted, using that moment to destroy my rendering engine works fine (And is fast).
Being able to rotate and close the app without it crashing feels great.