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
I respectfully disagree that CPUs are better than GPUs at font rendering :) There are a few related things that can be said. Doing fast, high quality font rendering on a GPU is hard; it's much ea…
comment
http://www.cmyr.net/blog/gui-framework-ingredients.html has a bunch of what you'll need to know about building a GUI from scratch, especially if you're interested in an…
comment
https://www.youtube.com/watch?v=T5YgJx8VGRA is a pretty good one, actually. It's in the form of a joke, but the fact that it got a laugh conveys a sort of shared knowledge they w…
comment
I think your question is partly answered by the cudaraster work, which is well over a decade old at this point. They basically did write a software rasterizer (that ran on CUDA, but is adaptable to ot…
comment
As is Quaker meeting. I'm deeply involved in mine, and it has been essential for my emotional well-being over (at least) the past couple years.
comment
You would be asked to leave our Quaker meeting, attend it via Zoom instead.
comment
Exactly that. You compile down to SPIR-V, then use spirv-cross to generate Metal Shading Language or GLSL. It's clunky and there are some rough edges - these conversions aren't 100% lossless…
comment
It may be close to a technical impossibility, but the Circle compiler by Sean Baxter is attempting it. That's based on an aggressive "de-pointerization" (see [1] in particular for detai…
comment
I'll try to answer. CUDA is the Nvidia GPU compute infrastructure and runtime. The native language is a variant of C++, but there are lots of ways to use CUDA from Python (very popular in the mac…
comment
The Gell-Mann Amnesia effect is real here. The difference is that, for many computer and computer-adjacent topics, the principals will often chime in. That gets you a level of authoritativeness that…
comment
At the moment, I am talking about community contributors. But if you have a credible plan for getting this done and the thing that would hold it back is funding, let's talk.
comment
I find your ideas intriguing and I wish to subscribe to your newsletter. More seriously, yes, if you were starting a browser completely from scratch, this would probably be a good approach. There are …
comment
Yes. Probably the single most effective use of the GPU for audio is convolutional reverb, for which a number of plugins exist. However, the problem is that GPUs are optimized for throughput rather tha…
comment
I think one of WebGPU's greatest strengths is learning, as you can get started pretty easily, and you actually learn a modern approach to GPU. Vulkan requires a significant amount of boilerplate …
comment
At this point, there are very few tools actually running on WebGPU, as it's too new. One to watch for sure is IREE, which has a WebGPU backend planned and in the works.
comment
This depends on the algorithm. If it has lots of branching and control flow, then it's unlikely to run well. If it's based on something like FFT or any sort of linear algebra really, then it…
comment
This is the video that finally made it click for me[1]. Despite the somewhat click-baity title ("What Popularizers of QM Don't Want You to Know") it actually goes into quite a bit of de…
comment
This one is tasty! It reminds me of Olivetti Cubic a bit, but definitely has its own distinctive style.
comment
If one side is serving chocolate cake, and the other shit, then what you end up with is a half-shit, half-chocolate confection. Some people apparently like that, but I personally don't. Another w…
comment
Thanks for your response! I write these blog posts for you and others to understand the technology better. I didn't invent the Cairo trapezoidal algorithm, I think that was mostly Carl Worth, may…
comment
Pretty much all of the rendering pipeline runs on the GPU, in compute shaders. In most 2D renderers, the CPU is doing a lot of the work (tesselating vector shapes into triangle meshes, computing bound…
comment
Thanks for this explanation, it helps. I got into APL about 40 years ago (using an IBM 2741 terminal connected to a 360 if reconstruction of memory serves), but have only recently picked it up again, …
comment
Ok, thanks for the correction. I think I understood where I went wrong - Dr. Hsu's algorithm for traversing up a tree to the root uses this, using = as the right argument so it's a fixpoint,…
comment
Yes! I believe being able to figure this out qualifies you as ⊢>+⌿÷≢
comment
I spoke imprecisely. It is sequential iteration applied to each of the elements of an array, in parallel. That maps very well to compute shaders, but is hard to express in numpy because it's a hi…
comment
I think APL has a lot to teach us about parallel (specifically GPU) programming. I've rewatched a few talks with Aaron Hsu and listened to his arraycast podcast[1]. In researching an upcoming blo…
comment
Thanks for your interest! If you want to dig into the project, another good resource is the #gpu stream on xi.zulipchat.com. That has some more in-depth discussions as well. I'm openly embracing …
comment
The approach we're exploring for such integration is having the host pass a VkCommandBuffer/MTLCommandBuffer to the guest, which then records its dispatches onto that (the guest also having …
comment
Great, thanks. That answers my questions. I'll read up on the lazily allocated bit; I wasn't aware that this provided similar functionality as dispatchThreadsPerTile[1], but perhaps it'…