I'm running out of vram for geometry which results in heavy streaming via PCI Express, slowing each frame with 10ms on average.
So I changed the vertex position and normal format to Vector3h. While it improves the streaming issue, it also introduces unexpectedly high errors.
I'm generating them with new Vector3h(oldVector3), and after that accordingly changing the sizes for making the VBOs and Atrribute Bindings.
The shaders have
in vec3 at all times regardless of atributes precision( dont know if this has any effect)
On the pic, the 1st torus is with full precision for both normals and positions, the second one is with half for both normals and positions, and the third is half for normals, full for position.
The torus itself has an 8 unit radius.
Halfs are not supposed to have precision loss higher than 1 unit until their value is higher than 256.0 or so.