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 know. I was eager to get this out. I'll be working on more visuals for a Libre Graphics Meeting presentation, where I'll include some of this in the Rust 2D graphics talk.
7y ago·view thread
comment
Patrick is of course right here, macOS isn't quite like Flutter because it basically always texturizes, although ultimately this is under control of the programmers. And perhaps it would be more …
7y ago·view thread
comment
Yes, macOS relies very heavily on CALayer to accomplish smooth scrolling, largely because much of the content of those layers is software-rendered. One thing that I find interesting is the subtle effe…
7y ago·view thread
comment
Yes. I'll have more to say soon, but I'm basically building what I think is next-gen UI infrastructure in Rust. That's a project with perhaps overly ambitious scope, so I'm starti…
7y ago·view thread
comment
What makes you say that 2D graphics has worked well? Scrolling often janks, UI designers constantly have to work around limitations in the imaging model and performance quirks (for a long time, clippi…
7y ago·view thread
comment
If you're talking about improving support for incremental present in Vulkan implementations, let's definitely connect. Certainly I can see how to do it well on Windows/DirectX, using ID…
7y ago·view thread
comment
It's complicated. 2D graphics aren't inherently harder or require more computation than 3D, but they require very different optimizations. I think it boils down to the fact that 2D graphics …
7y ago·view thread
comment
Yes, https://github.com/linebender/piet-metal , it's mac-only (for now).
7y ago·view thread
comment
Agree on both fronts! (Also, your username seems familiar somehow - have we had discussions around this before? :) I didn't talk about this in the post because I haven't actually implemented…
7y ago·view thread
comment
Agreed, and there are some deep issues, for example the rendering of very thin strokes which is quite dependent on resolution. Also keep in mind that the 4x4 oversampling you mentioned does not give n…
7y ago·view thread
comment
It is true that is more correct (see https://github.com/pcwalton/pathfinder/issues/142 ). But my motivation is much more user interface than document rendering, so it&#x…
7y ago·view thread
comment
These are all interesting questions. I've been following some of the stuff on Shadertoy, and I think that points the way. Most is 3d, but not all, and in particular there's a lot to be done …
7y ago·view thread
comment
Wow, this is good. I gave it "Configure your pipeline state object with a compute shader that consumes uniforms and vertex buffers." and it came up with this: Note that the compiler will add…
7y ago·view thread
comment
The other big problem with mmap is what happens when your file changes out from under you. This seems to be mostly for git packfiles, which I think can be treated as immutable by convention, but that&…
7y ago·view thread
comment
Try some JSON benchmarks with Codables in Swift vs serde in Rust. Rust smokes Swift, something like 20x. Incidentally I've spent considerable effort on this problem, including writing a prototype…
7y ago·view thread
comment
Yes, I've seen examples of calling Rust from Swift, and I do plan to support that. This particular thing is about calling macOS platform functions from Rust code. Projects either call Objective-C…
7y ago·view thread
comment
Maybe I can, I just haven't found an example of it. Certainly the "cc" crate doesn't seem to know how to compile Swift files. This might be more of a documentation issue than a rea…
7y ago·view thread
comment
I'm an extreme outlier, but I'm about to start an Objective-C codebase (a 2D renderer on top of Metal), because I suspect interop with Rust will be a lot easier. In particular, it looks like…
7y ago·view thread
comment
Flutter is implemented in layers. The RenderObject layer looks very much like a traditional retained mode UI. It's possible to write Flutter entirely at this level, nobody forces you to use the…
7y ago·view thread
comment
I'm not super-expert, but know of some background. I think Rosyln grew very much out of Delphi, and Anders Hejlsberg is the common thread to both. Before that, he did Turbo Pascal, which might ha…
7y ago·view thread
comment
You might wish for that, but the ship has sailed. Undefined behavior means that the implementation can do whatever it can. That said, I do expect tools, both sanitizers and static analyzers to improve…
7y ago·view thread
comment
From the article: > Dereferencing a nullptr gives a segfault (which is not a security issue, except in older kernels). I know a lot of people make that assumption, and compilers used to work that w…
7y ago·view thread
comment
The gold standard for redaction is to replace the redacted text with nonsense of similar length. Otherwise, you retain precise metrics for the redacted text. With guesses or context you can fill those…
7y ago·view thread
comment
This is true. The philanthropy scene is probably one of the few areas that has even more screwed-up incentives than academia.
7y ago·view thread
comment
This post resonated with me strongly. Yes, resigning sounds like the obvious best choice. I hope it works out well! I can certainly understand why Prof. Stein doesn't want to trash his colleagues…
7y ago·view thread
comment
In addition, it is entirely possible that when Rust has a formal semantics, it will use exactly such a provenance-aware memory object model to describe which pointer operations are safe and which lead…
7y ago·view thread
comment
Fair enough. cmix is awesome work, obviously, and I'm looking forward to the ideas becoming production-ready. Probably the most notable contribution by Fabrice Bellard is having something relativ…
7y ago·view thread
comment
I meant it as something of a joke (10x compression speed vs 10x the productivity of the average programmer), but also to summarize useful information from the paper.
7y ago·view thread
comment
And this is why Fabrice Bellard is so often cited as an example of a 10x programmer: his relatively simple LSTM-based neural net compressor is 10x faster than one of the more complex state of the art …
7y ago·view thread