🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

OpenGL 4.x now supports double precision but...

Started by
3 comments, last by cgrant 3 years, 9 months ago

I now learned that OpenGL 4.x is now supporting double precision for GLSL programming but…

I googled some facts about GPU double precision and learned that GPU vendors do not implement double precision operations in hardware level. I am concerning about double precision is still in software emulation (1 / 32 FP32 performance). Would latest consumer video cards support FP64 hardware as ½ FP32 performance? RTX 30x0 and Big Navi cards?

I googled and now learned that people are asking for FP64 support through OpenGL and GPU cards for many years. OpenGL finally now supports FP64 operations but GPU hardware vendors never support that. FP64 hardware implementation eliminates jittery issues due to limited 7 digit accuracy when simulating large world like space flight simulators, etc.

Does anyone have any information about FP64 hardware support for consumer video cards?

Advertisement

They seem to intentionally limit this to mostly the workstation/server cards. 3080 specs appear to follow this trend.

Most games I believe get around this by doing everything relative a point near the player/camera, rather than using some universal coordinate system directly. I believe even often for physics calculations not just graphics (e.g. Kerbal Space Program).

In the geometry shader, one can implement the Marching Cubes algorithm. If you don’t sort the vertices before they are run through the algorithm, there will be cracks in the mesh. With doubles, the cracks do not appear at all, sorted vertices or not.

It can make a difference.

My first question to you is where exactly are you getting this information? If this is second hand information not supported by concrete documentation for the GPU vendor then its just opinion. I would consult the documentation for the specific GPU you are interested in supporting and decide for yourself. If the concern you have in regards to use double-precision float is precision, then there is multiple ways you can mitigate the issues with precision without resorting to using fp64 in your shaders. There are plenty of examples of games with massive world that probably could serve as examples for whatever you are trying to achieve. Maybe ping their developers or check their dev blog if available to see if they hint at certain implementation.

I googled deeper and deeper… I learned that all GPU hardware vendors nerfed FP64 hardware for performance by reducing to 1:32 or 1:64 FP32 performance but there are FP64 support on professional GPU cards. That sounds like market segmentation (dividing consumer and professional markets) comparing like segregation in earlier 1900s. In the future, they should not nerf FP64 hardware but must improve them for consumer GPU cards because some games need FP64 calculations for rendering large worlds, etc. Example, about “Just Cause 2” and “Kerbal Space Program” according to google searches.

For working-around solution, using RTE methods with applying high and low of vertices and camera through GPU processing. "3D Engine Design for Virtual Globes" book provides some methods by eliminating jittery. Also multiply view and model matrix through double precision first before handing it to GPU also.

This topic is closed to new replies.

Advertisement