mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
ea38195e2ef3533911e2e346e207159f188d6130
This change adds a CPU fallback for devices that don't support the old renderer nor have GPU support for compute programs. Most of the hard work is implemented in the gioui.org/cpu module. It uses the SwiftShader project with light modification to output statically compiled CPU .o files for each compute program. The CPU fallback only covers Linux and Android on arm, arm64, amd64 architectures. There is no fundamental reason support can't be extended to other platforms: - macOS and iOS are probably easy, but it's likely that virtually every device has GPU support for compute shaders. - Windows needs a Cgo-less port, or a build constraint to require a C compiler (Gio core doesn't). - FreeBSD and OpenBSD are probably also easy to do because they're so similar to Linux. - The 386 binaries didn't work properly in my tests, so fixes to SwiftShader is probably needed. However, I expect virtually every Intel device can run amd64 binaries. Updates gio#49 Fixes gio#228 Signed-off-by: Elias Naur <mail@eliasnaur.com>
Gio - https://gioui.org
Immediate mode GUI programs in Go for Android, iOS, macOS, Linux, FreeBSD, OpenBSD, Windows, and WebAssembly (experimental).
Installation, examples, documentation
Go to gioui.org.
Issues
File bugs and TODOs through the issue tracker or send an email to ~eliasnaur/gio@todo.sr.ht. For general discussion, use the mailing list: ~eliasnaur/gio@lists.sr.ht.
Contributing
Post discussion to the mailing list and patches to gio-patches. No Sourcehut account is required and you can post without being subscribed.
See the contribution guide for more details.
An official GitHub mirror is available.
Description
Languages
Go
89.6%
C
7%
Java
1.7%
Objective-C
1.6%