SIMD Support

From FlightGear wiki
Jump to navigation Jump to 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 those 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 .