Interested in Linux, decentralization, cryptography, golang/rust/c, and communication.
I spend most of my free time on:
Well, uh, this is awkward. I can no longer reproduce either. After updating to the latest code, it works really well. It doesn't hang at all. I'm going to keep experimenting with it for a bit, but we might be able to close this. Trideo's performance is really excellent now! I can run it with absurd numbers of triangles (2000 per frame) and it keeps up. Gio used to be the bottleneck, but now it's the CPU-bound image processing instead. Well done!
I can try to do that tomorrow. I got it in GNOME Wayland on Arch. Can you try GNOME on F34 while I work to get an F34 system? I no longer have one since leaving my last job.
I've updated the architecture document to remove obsolete API references and to clarify some of the existing ones. Thanks again for pointing this out!
REPORTED RESOLVED FIXED
Thanks for pointing this out! I'll try to go through and update those soon. Maybe see if we can managed the code in the architecture document as runnable examples so that we get CI failures when they break.
Which OS is this on? Is it Android, or a desktop system like Windows, macOS, or Linux? I saw your posts in
sprig, but I don't know what platform you're on. I expect this not to work on Android right now, but I'm less sure about our IME support on other platforms.
I have reduced trideo to just operate on a jpeg image provided as argv. You can find that version on this branch.
It does reproduce the GPU hang for me in this form.
On a bright note, I am able to run sprig on the compute renderer, so it's definitely working with a non-trivial application. The main branch isn't on the right gio commit, but the
Also, I tried the example program for the chat library ~jackmordaunt and I are building, and it seems to exhaust the material atlas?
git clone https://git.sr.ht/~gioverse/chat cd chat go get gioui.org@latest GIORENDERER=forcecompute go run ./example/kitchen
I get a few frames, then the program crashes with:
error: premature window close: compute: no space left in material atlas exit status 1
Now this could totally be an application error on our part. Perhaps the images we're loading are being duplicated in the texture cache or something without our knowledge. This does run on the old renderer though, so it seems on the surface like a difference in behavior.
Okay, the kitchen is running fine on that latest commit. Something
trideois doing is causing this hang. Trideo is very simple. It draws a bunch of triangles every frame on top of a solid black background. It basically invokes this function hundreds of times each frame. Can you try it on a linux box with a webcam and see if you can replicate the hang? You may need to adjust the hardcoded webcam device path to the proper one for your local system.
trideoon the latest gio commit did something interesting with the compute renderer. The GPU did hang, but the Gio program kept right on running and rendering frames. It didn't get a GL error and crash or anything.
My GPU hang (from
[Tue Jul 20 07:48:55 2021] i915 0000:00:02.0: [drm] Resetting rcs0 for preemption time out [Tue Jul 20 07:48:55 2021] i915 0000:00:02.0: [drm] trideo context reset due to GPU hang [Tue Jul 20 07:48:55 2021] i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:85ddfffa, in trideo  [Tue Jul 20 07:49:26 2021] i915 0000:00:02.0: [drm] Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.
I'm going to try the kitchen on this machine next, in case it's application-dependent, but I don't want to lose this partially-written comment in a reboot so I'm posting it now.