SIMD Support

From FlightGear wiki
Jump to: navigation, search
WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.
This article is a stub. You can help the wiki by expanding it.

SSE2 was introduced in 2001. If you have a CPU which doesn't support it you will have to compile FlightGear with -DENABLE_SIMD=OFF. But thore are extremely rare these days and running FlightGear on them will be a pain anyhow.[1]


Erik is experimenting with streamlined Canvas rendering using Single Instruction Multiple Data (SIMD) instructions which is able to calculate on 4 floating poit variables simultaneously (e.g 3 or 4 value vectors). For the F-16 map this gives a speedup from 12+ seconds delay rendering at the first select down to 6 seconds delay.[2] [3]


A few users have reported a noticeable increase in framerate on their computers, e.g. on some desktop the framerate has doubled[4].


SSE and NEON work best when considered in the design stage. Adding it afterwards is always suboptimal. Thus, Erik might still update it in a place or two but this work isn't intended to detract from adding Skia.[5]


References

References
  1. erik  (Jan 2nd, 2017).  Re: Simgear compilation failure .
  2. Erik Hofman  (Dec 16th, 2016).  [Flightgear-devel] Canvas rendering speed .
  3. Erik Hofman  (Dec 16th, 2016).  Re: [Flightgear-devel] Canvas rendering speed .
  4. Alan Teeder  (Dec 16th, 2016).  Re: [Flightgear-devel] Canvas rendering speed .
  5. Erik Hofman  (Dec 17th, 2016).  Re: [Flightgear-devel] Canvas rendering speed .