back
user profile
raphlinus
13,685karma·1,846submissions·March 7, 2014
about
I do research on fundamental UI technology and 2D graphics, with a focus on Rust and fonts.
@raph@mastodon.online
recent activity (1,846 total)
comment
Yeah, this is actually a super-complicated tradeoff. Whether layers are a win or not is largely a function of how much of the screen can be cached in the layer and how much needs to be re-rendered, so…
comment
Yes, Recurse Center is awesome. I did a "batch" there this fall and enjoyed the experience a lot. I got a chance to meet Dan there and we had some great conversations about latency, among ot…
comment
I'm working on a fast text renderer for xi-editor, and am similarly quite concerned about end-to-end latency. I've also experimented with the high speed camera, but my main testing rig is an…
comment
I don't want to overstate it; I've written a lot of SIMD in my life too. If you've got audio processing that needs to run in a realtime thread, I can see how SIMD is appealing, because …
comment
If I'm understanding it correctly, they're not actually using the 512 bit (ZMM) registers, because using them can cause overall system slowdown. It seems to me they're only really usefu…
comment
The book "Digital Image Warping" by George Wolberg[0] goes into these tricks in great detail, as well as choices for the resampling filter. The world is very different today, bilinear textur…
comment
See also Ben Lynn's implementation[1] in about 100 lines of Haskell. Admittedly it's not a totally fair comparison because it's relying on Haskell's runtime, but it's still an…
comment
Metamath basically goes in the other direction than most proof assistants, it relies on human ingenuity. There is a bit of search in the original C metamath (the "improve" feature) and also …
comment
I've done a bit of work on a "next generation" Metamath, Ghilbert[1], but have come to the conclusion that it's too ambitious to do as a part-time project. People might find it int…
comment
Yes and yes. My son has a 144Hz gaming monitor, and my main monitor for coding is a Dell 4k. We'll test both.
comment
Would that it were so.
comment
The usecase mentioned in Jesse's talk (linked in my root comment) is displaying a notification from some other app while playing a game. They added the "flip_discard" swapchain effect s…
comment
It might be lots of overdraw in the general web case, but for a text editor almost everything the app renders is going to be shown on the screen. The exception is a bit of stuff just outside the scrol…
comment
Visual inspection for now. I've got an Arduino and a high-speed camera, so my plan for the next step is to send mouse and keyboard events from the Arduino, blinking an LED at the same time, then …
comment
DirectComposition. It's been there since Windows 8, and is used by Chrome among other apps (see https://bugs.chromium.org/p/chromium/issues/detail?id=524838 ). It…
comment
I've been experimenting with this too, in the context of the Windows front-end for xi editor. It's absolutely true that the compositor adds a frame of latency, but I have a very different ta…
comment
Chyrosran's mechanical keyboard reviews and teardowns. YouTube's recommendation algorithm always shows me a new video when it's posted, and it's not wrong. I'm a fan of mechan…
comment
I did make it while at Google, and the main focus is an Android app, but the sound engine is pretty platform-independent. For the LV2 plug-in, you probably want dexed, which is based on this code (but…
comment
"No CPU involved" is not strictly true, as the CPU is doing the LFO. You can observe this by, for example, rapidly moving the data slider and noticing that the LFO slows down. I considered d…
comment
Shameless self-promotion. There's a high performance C++ (with neon simd acceleration) implementation at [0]. Note, this also compiles cleanly to wasm and runs in the browser (see the "webau…
comment
I've spent a fair amount of time promoting xi-editor, most notably presenting it at RustConf last year. I've also written a bunch of "rope science" posts about fancy algorithms and…
comment
One of the greatest strengths of the Web platform is "view source," the ability to start diving into the code any time you find yourself wondering "how did they achieve that?" So a…
comment
There's a really good technique for getting rid of the wormy or snake-like textures in Floyd-Steinberg: add another term to the threshold proportional to (some monotonic function of) the distance…
comment
Slashdot was one of the main inspirations for Advogato. One clue in support of this is that the codebase was called "mod_virgule". The trust metrics were designed to be a more sophisticated …
comment
That idea works when the page is swapped in, but I don't think you're accounting for the case where the only copy of the contents is in the file that's backing the mapped region.
comment
I did a little digging, and don't think so. Being able to access a readonly snapshot is a property of the filesystem, it's a guarantee that if you overwrite file contents, the original dat…
comment
My reading of the man page[0] is the opposite; your changes won't be reflected to the file, but "It is unspecified whether changes made to the file after the mmap() call are visible in the m…
comment
I use ropes in xi editor. I did not find the argument against ropes convincing. Yes, they're not trivial to implement, but in a proper programming language you're not dealing with the data s…
comment
Apologies if this is a derail, but how does DirectComposition compare to IDXGISwapChain1::Present1 for high performance scrolling and things like blinking a cursor with minimal energy usage? I was loo…
comment
This is true, and now there's public documentation that explains a little more of the rationale: https://opensource.google.com/docs/thirdparty/licenses/#wtfp... …