20,741
edits
(→SIMD) |
m (→2017) |
||
| Line 13: | Line 13: | ||
|date = Jan 8th, 2017 | |date = Jan 8th, 2017 | ||
|added = Jan 8th, 2017 | |added = Jan 8th, 2017 | ||
|script_version = 0.40 | |||
}}</ref> | |||
=== Skia talks === | |||
Blend2D is quite amazing for a technical point of view: it compiles native CPU code (including SIMD) for every draw operation using a JIT compiler.<ref>{{cite web | |||
|url = https://sourceforge.net/p/flightgear/mailman/message/35631656/ | |||
|title = <nowiki> Re: [Flightgear-devel] Canvas-svg </nowiki> | |||
|author = <nowiki> Erik Hofman </nowiki> | |||
|date = Jan 28th, 2017 | |||
|added = Jan 28th, 2017 | |||
|script_version = 0.40 | |||
}}</ref> | |||
The idea is to use Skia (from Chrome), actually, since it has software and hardware backends. This would allow switching based on which gives better performance on a given machine, and easy porting to other devices, such as Android. The remote-canvas code is a proof-of-concept for this, the aim would be to use the same protocol to render the canvases in different threads.<ref>{{cite web | |||
|url = https://sourceforge.net/p/flightgear/mailman/message/35630367/ | |||
|title = <nowiki> [Flightgear-devel] Canvas-svg </nowiki> | |||
|author = <nowiki> James Turner </nowiki> | |||
|date = Jan 27th, 2017 | |||
|added = Jan 27th, 2017 | |||
|script_version = 0.40 | |||
}}</ref> | |||
After reviewing Skia (including reading the sources) and it seems like a very promising fit, albeit with the caveat that it is kind of huge. Blend2D looks pretty good but less mature than Skia, and most importantly, lacks a hardware renderer which James thinks is critical to support devices such as the Raspberry Pi and cheap Android tablets, which James expects to be a very good target for the remote canvas (an RPi driving a wide-screen panel via HDMI could do both the PFD and ND of a Boeing/Airbus setup, but that’s 1920 x 1080 pixels which is too much to fill in software at 60H) Anyway, at this point the code is small enough that experimenting with one renderer or another (Cairo also) is probably a weekend’s hacking, if anyone cared to try. James is currently working on hardware acceleration using QtQuick, since we already have Qt as a dependency.<ref>{{cite web | |||
|url = https://sourceforge.net/p/flightgear/mailman/message/35631079/ | |||
|title = <nowiki> Re: [Flightgear-devel] Canvas-svg </nowiki> | |||
|author = <nowiki> James Turner </nowiki> | |||
|date = Jan 27th, 2017 | |||
|added = Jan 27th, 2017 | |||
|script_version = 0.40 | |script_version = 0.40 | ||
}}</ref> | }}</ref> | ||