Heyoo,
Just a quick question - does Gio run on Embedded armhf Linux without
any windowing system (X, Wayland)?
I'm tinkering with a Rockchip RK3288 that has Mali T760 (OpenGL ES 3.1
/ OpenGL 3.1) and I can poke the GPU nicely, just not with Gio (Go
refuses to build, citing build constraints of OpenGL). I'd love to see
if this is possible as Gio might be the perfect fit for a project I
have in mind.
Thanks for any tips,
- Jukka
> Heyoo,
Hi!
> Just a quick question - does Gio run on Embedded armhf Linux without> any windowing system (X, Wayland)?
We don't have a preconfigured way to render directly to the system
framebuffer, but it's possible in principle. You might want to try
cage [1], which is a wayland compositor designed to have low overhead
when running a single application. That could save you from having to
modify the Gio source code directly.
> I'm tinkering with a Rockchip RK3288 that has Mali T760 (OpenGL ES 3.1> / OpenGL 3.1) and I can poke the GPU nicely, just not with Gio (Go> refuses to build, citing build constraints of OpenGL). I'd love to see> if this is possible as Gio might be the perfect fit for a project I> have in mind.
I can't comment on the build errors without seeing them, but I expect
there is a way to make it build.
Cheers,
Chris
[1] https://github.com/cage-kiosk/cage
Thanks for the suggestion!
I can't use Wayland Kiosk as it requires that the binaries/driver is
installed on the system - the end user will have no access to the
internals so I need to build a more-or-less self contained executable.
The build error doesn't say much, it's just the basic "All Go files
are ignored in <go-gl> because of build constraints" and I have no
idea how to circumvent that. I'm building on the Raspberry Pi as it's
very close to the target hardware and I wasn't successful in setting
up a cross-compile toolchain on Windows.
The only package with GPU support I've successfully ran so far is
Raylib-Go as it has DRM backend, but it's major overkill for what I
need, thought it does have all kinds of bells and whistles (I just
need a GUI for my music app).
I was also looking into the DRM library written in pure Go, but I
don't have the skills to bolt that into Gio to see if that would work.
:D
On Wed, Oct 16, 2024 at 11:26 PM Chris Waldon
<christopher.waldon.dev@gmail.com> wrote:
>> > Heyoo,>> Hi!>> > Just a quick question - does Gio run on Embedded armhf Linux without> > any windowing system (X, Wayland)?>> We don't have a preconfigured way to render directly to the system> framebuffer, but it's possible in principle. You might want to try> cage [1], which is a wayland compositor designed to have low overhead> when running a single application. That could save you from having to> modify the Gio source code directly.>> > I'm tinkering with a Rockchip RK3288 that has Mali T760 (OpenGL ES 3.1> > / OpenGL 3.1) and I can poke the GPU nicely, just not with Gio (Go> > refuses to build, citing build constraints of OpenGL). I'd love to see> > if this is possible as Gio might be the perfect fit for a project I> > have in mind.>> I can't comment on the build errors without seeing them, but I expect> there is a way to make it build.>> Cheers,> Chris>> [1] https://github.com/cage-kiosk/cage
On Wed, Oct 16, 2024 at 5:32 PM Jp <jukka.korhonen@gmail.com> wrote:
>> Thanks for the suggestion!>> I can't use Wayland Kiosk as it requires that the binaries/driver is> installed on the system - the end user will have no access to the> internals so I need to build a more-or-less self contained executable.
I'm fairly sure you could build a statically-linked cage that only
dynamically depended upon system GL libraries. You could then bundle
that compositor, your application binary, and a script that started
them together into a self-contained executable so that the user could
still only have a single file to worry about.
> The build error doesn't say much, it's just the basic "All Go files> are ignored in <go-gl> because of build constraints" and I have no> idea how to circumvent that. I'm building on the Raspberry Pi as it's> very close to the target hardware and I wasn't successful in setting> up a cross-compile toolchain on Windows.
Yeah, doing that from windows sounds quite hard. I'm afraid that I
don't know which build constraints you're running into or why, so
you'll need to troubleshoot that on your own.
> The only package with GPU support I've successfully ran so far is> Raylib-Go as it has DRM backend, but it's major overkill for what I> need, thought it does have all kinds of bells and whistles (I just> need a GUI for my music app).
Yeah, using DRM will certainly simplify things, though it doesn't
handle user input.
> I was also looking into the DRM library written in pure Go, but I> don't have the skills to bolt that into Gio to see if that would work.
That would probably be nontrivial. Possible, but definitely a good
chunk of work.
I'm recommending the cage route because I think it is the least total
work to achieve what you want. Using DRM is another option, but
significantly more painful.
Cheers,
Chris