Quick Update on February Release
Added 2024-02-23 07:42:50 +0000 UTCFor those new to the Patreon, welcome! Please see the pinned post for the lates release. Welcome abord, you may want to check out the last few posts to catch up on where things are headed and see some cool demos. Ok now for the good stuff...
If you're in the Discord and message QwkSilver, he has released an alpha release of the February release to the preview channel. Please message him for access.
For the non technical explanation....this release will be more stable, a bit faster, and help us going forward add features. It's much more efficient with memory usage and fixes some very low level issues that we've been trying to figure out for a long time. It'll be a great release to keep things fast, smooth, and stable over time.
Deeper technical explanation (long, not sure if it's interesting, but just in case :) )
For those that care, I'll dive into this a bit deeper to give a bit more behind the scenes of what's going on. I know that we have a wide diverse community and some of you are developers and may enjoy knowing a bit behind the scenes of what we're doing and learning. So here goes...
Our memory usage is always something we have to be super careful about. Some of our patreons are running on devices with 512 megs of memory (pi3A+/Pi zero) and as you know good development should always keep memory usage in mind. The pi's use a shared memory architecture...this means they share memory between the CPU and the GPU...known as a 'memory split'. The problem is if you leak memory, sometimes the CPU isn't what starves..the GPU faults and it can be an absolute trainwreck to track down who was at fault. We kept trying to find out if we were leaking by looking at the 'used' memory from our app. Turns out the 'available' memory is what shrinks. If you connect a keyboard, bring up the infobar and hit up a few times you should see an advanced memory view showing the total avilable....it should say about 1.1Gig on a 2Gig pi4. You'll also see 'swap' memory which is saved out to disk...much slower, and usually used to help save the system because it doens't have enough physical memory left to run the app. Right now on my machine that's run for about 2 weeks I see 760 megs of available and 423 megs of swap being used. The app is showing 560 megs used. Over time we were seeing sefaults...they'd appear faster if you used large images (20-40 megs each) but over time we suspect every frame would crash and need a hard reboot with this issue.
In the new build...the swap memory is holding at 0 megs. 1.1 Gigs is showing available, and the app is holdintgat about 250 megs or so. This is a HUGE decrease in memory usage, with zero disk swap being used. This means that we should be running faster, smoother, and over time, be much more stable (since we're not leaking memory all over the place). This took a ton of work by bdlou to track down, and was deep in the rendering code.
We had suspected other code, and those optimizations are what led us to this. In the rendering code, when we made the blurbox background, a second copy of the image was created. Keep in mind that for transitions, we swap between two images...so that means we had 2 images in memory, and then 2 more copies when blurbox was on. Now imagine we do anything with those 4 copies that isn't optimized, it's easy to have 8 or more copies end up showing up. The processing for that, plus memory hit...is what was fixed in this release. What took so long to get to alpha is that BdLou overoptimzed things and tried to make everything asynchromous as well....turns out that had side effects that took a while to unwind. In the end we're taking the memory and performance/stability win and going to push that out.
I'm still heads down on the webUI. I can't merge till this release is out, but then I'll work to merge and we'll push the release to beta after some time while I work in another branch and push the webUI to alpha. For those in the testing groups it should be an exciting March as this all lights up, and then April we should be seeing the fruits of these labors as things go final. I'll keep posting progress and behind the scenes here in the meantime, and work to get some plugins updated/released next month so that those that are on the 'final' builds will have some fun things to look forward too!
Comments
Yeah! This should get you there: https://discord.gg/JHJvvJweTK
Joe Farro
2024-03-20 05:41:28 +0000 UTCHello is there an active link to the discord!
Plumpa
2024-03-20 01:09:20 +0000 UTCThanks, much apprecited.
T I
2024-03-03 16:36:47 +0000 UTC