If you'd like to see the latest (much more responsive) folk2 and gadget in person, our next Folk open house is in the evening on Monday, November 24th, in East Williamsburg, Brooklyn.
Omar: I got -atomically (convergence-tracking subgraphs) into a reasonable state, and it's merged into the main osnr/folk2 branch now. This is great! This means that we have a complete feature set to actually merge all of folk2, I think.
The main thing since last month was testing it with more 'real' programs and on the table: sprites, camera slice, dotted line. (The animation program above is one concrete result of fixing -atomically.)
Sprites were exhausting the texture cache after a few frames because of some kind of race where they weren't properly garbage-collected.
Once sprites worked, camera slices still caused problems: this is because sprites repeat, so there are finitely many unique statements even when they leak, but camera slices are all unique, so they can leak forever.
Added new logic that maintains 1. a list of statements for each AtomicallyVersion and 2. a list of AtomicallyVersions. When a new version converges, we reap all statements on all previous versions (and before then, statements are retained indefinitely, even if they would normally be retracted due to an upstream retraction).
We were donated a gaming PC (folk-hex) that's moderately faster than the NUC we had before (folk0). It's now sitting on the floor instead of in the ceiling.
Anyway, switching to this PC has been a good test of the end-to-end folk2 setup process and of our support for the Nvidia GPU. Some of the fixes:
VK_FORMAT_B8G8R8A8_SRGB, which happened to work on other GPUs until now but not this one). Fixed this render pass incompatibility error:Performance is definitely better than on the old folk0 – not perfect, but it feels like the bottleneck now is motion blur / camera stuff rather than compute. (Makes me want to get a newer/faster computer; both folk0 and folk-hex are basically from like 2018.)
Omar: I burned like a week trying to figure out why folk-hex was running weirdly slow.
You can see that we're spending 40ms on inFlightFence every frame in Tracy here:
I tried installing the Nvidia Nsight profiler. Took me a while to figure out how to pipe stdout and stderr to see why the system was failing to start:
(it was failing because Nsight suppresses the validation layers we were using, so I turned them off for now.)
I spent a while rearranging the concurrency and fences and stuff to try to keep multiple frames in flight. But it turned out that this was all just because the display modes are ordered differently on this GPU, so I threw that branch away, set the system to pick a better display mode instead of just picking mode 0, and now it works fine.
Omar: I was finally able to turn off autorotate / autokeystone on the AnyBeam. For some reason, this script that I auto-translated (from decompiled AnyBeam Android app) didn't work on my Linux PC, but works perfectly on my Mac once I tried it this month.
Next: recalibrate properly and see how good we can get the calibration; start on dual calibration and start making some cool demos.
(Note that these are all on folk2.)
Wish to play audio $pathToSoundHold -save), so even if the system crashes or restarts, the contents of table editors stay intact-serially)