Pinned post

I've started collecting the pop-art AVX2 accelerating ctx is turning the ctx test compositing intoat

64bit architectures have word sizes large enough for storing short strings - many words or tokens.

For string interning, squoze64-utf8 sees a 1.8x-4.4x performance improvement over 32bit murmurhash one-at-a-time for mapping strings to the interned version when embedding strings as long as 8bytes in the hash itself rather than allocating RAM for it.

Show thread

Reversible unicode string hashes end up benchmarking faster than simpler hashes for content adressed storage (string interning) since it permits short sequences to be interned without the latency of consulting cache/heap.

Ongoing effort to not start^Wrevive^Wextend a HTML.js sibling for PDF.js is challenging.

It gets by with using less than 64kb RAM leaving quite a bit of headroom for user code on a raspberry pi pico even with code in RAM.

Show thread

A name, webpage, online IDE, some examples and API reference for the micropython ctx bindings.
2D vector graphics with python on microcontrollers, unicode and outline fonts, latency optimized low-fi rendering modes for larger than RAM SPI displays. made glitch art again. The renderer is now also running in the browser with WASM - useful for testing and with some further tweaks could be extended to proxy the native canvas.

From new terminal features which are probably not needed, star wars scroll. (useful for testing the new perspective transforms in ctx). Not many glitches in this terminal: Sixels far far away are rescued by constant-z scanlines, some distant overbright pixels, near the framebuffer bezier subdivision tolerance is breaking down from non-uniform scale.

It has been optimization season in ctx and RGB565 and lowbit grayscale encodings have also seen boosts, for UI purposes what matters most though is RGBA8/BGRA8.

Blend2D 🥇134 🥈10🥉5
ctx 🥇10 🥈103🥉29
Qt 🥇3 🥈24🥉66
cairo 🥇3 🥈13🥉50

The performance of ctx the 2d vector software rasterizer without SIMD keeps getting better, and by now it is only bilinear filtered textures that sometimes are a bit faster in qt/cairo, Blend2D continues having the best general stroking performance.

on the subject of usb-c have you seen pcb-only usb ports? scribe the right sigils into your circuit board design program and choose the right thickness and you can just plug a cable straight into your pcb with no port hardware

i ❤️❤️❤️ hacks like this

pictured here in @deshipu's fluff m0 project

invented by juan jesús pinuaga

I am tuning and optimizing for performance, and as things get faster what was noise in initial benchmarks start mattering. Things like branch order/hints, data types for variables and unaligned vs aligned fetches from data structures.

Asking for financial help 

Hey folks, it feels a bit rude to ask again, but I’m still struggling to find work right now and don’t have much money left. I don’t have enough to pay rent or bills right now. If you can spare it, I would really appreciate if you could help me out.

Paypal: Patreon:

Color managed 32bit float, RGB and CMYK filled bezier paths has landed in GEGL, not used by GIMP yet, but it provides fidelity that can be important for future features like vector layers.

Incremental improvements to the adaptive vertical-supersampling rasterizer of . Ctx is now faster than cairo for all RGBA8 source-over-normal cases \o/ - solid colors practically tied ... linear gradients sources are 7.5x times faster!

Having fun profiling results, while connected to AC - cairo is faster, while on battery power is faster.
Maybe different the difference is different baseline CPU speeds, and on battery power there is more headroom for turbo boost with the AVX2 code paths.


I refuse to run Docker containers inside of Linux Containers so my options are…
- Install manually and make upgrading a pain in the ass
- Don't use the app

As much as I would *love* to use it, the reliance on Docker for managing 100% of the stack is a *hard* no. Figuring out how the image has changed between releases would make manual maintenance absolute hell and I am unwilling to shoulder that burden.

Not everyone is *able* to use Docker and not everyone is *willing* to use Docker. By not supporting any other deployment method, you are preventing some individuals from using what could be *the* application they've spent years looking for.

Let the admin decide how to architect their own systems. They know their backend better than you do.

(reposted because jake wanted to boost)
Show older

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!