Great presentation. However, I have mixed feelings about Vello. On one hand, it's awesome that someone is truly trying to push the GPU to do 2D rendering work. But my impression is that the project has hit some considerable limitations due to the lack of "inter-workgroup" level cooperation in current rendering APIs and difficulties with dynamic memory allocation on the GPU. I'm sure the hybrid rendering scheme they have will be great, as the people behind it are extremely capable, but is that really a meaningful step beyond what Pathfinder achieved years ago?
Also, in terms of CPU rendering, Blend2D exists and it's blazing fast. Can Vello's CPU backend really do better?
TLDR; there other reasons why someone would prefer vello than speed.
There are different applications for 2D rendering.
In our case we need support for the rendering to take place with f32/float precision, i.e. RGBA colors need to be 96 bit values.
We also do not care if the renderer is realtime. The application we have is vector rendering for movie production.
That's where the multiple backend approach of vello and especially the vello-cpu crate become really interesting. We will either add the f32 support ourselves or hope it will become part of the vello roadmap at some stage.
Also, Blend2D is C++ (as is Skia, the best alternative, IMHO). Adding a C++ toolchain requirement to any Rust project is always a potential PITA.
For example, on the (Rust) software we work on, C++ toolchain breakage around a C++ image processing lib that we Rust-wrapped cost us two man weeks over the last 11 months. That's a lot for a startup where two devs work on the resp. affected part.
Suffice to say, there was zero Rust toolchain-related work done or breakage happening in the same timeframe.
Blend2D has C-API and no dependencies - it doesn't even need a C++ standard library - so generally it's not an issue to build it and use it anywhere.
There is a different problem though. While many people working on Vello are paid full time, Blend2D lacks funding and what you see today was developed independently. So, the development is super slow and that's the reason that Blend2D will most likely never have the features other libraries have.
> The pieces can be combined with string-pasting, though we're looking at WESL as a more systematic approach.
> To get the same quality of developer experience with Slang, you'd need an implementation in Rust. I think this would be a good thing for Slang.
WESL has the opposite problem: it doesn't have a C++ implementation. IMO, the graphics world will largely remain C++ friendly for the forseeable future, so if an effort like WESL wants to succeed, they will need to provide a C++ implementation (even more so than the need for Slang to provide a Rust one).
You're probably right about this. In the short to medium term, I expect that the Rust and C++ sub-ecosystems will be making different sets of choices. I don't know of any major C++ game or game-adjacent project adopting, say, Dawn for their RHI (render hardware interface) to buy into WebGPU. In the longer term, I expect the ecosystems to start blending together more, especially as C++/Rust interop improves (it's pretty janky now).
This to me is a weak argument. You have the ability to appreciate and judge something as good as Bob Dylan and Tom Petty. That's what makes you intelligent.
> This to me is a weak argument. You have the ability to appreciate and judge something as good as Bob Dylan and Tom Petty. That's what makes you intelligent.
What if you don't? Do you think that makes someone not intelligent?
1. I'm sure if I were to ask an LLM for opinions on Dylan and Petty, it would provide them.
2. I don't know if this was the point the original was making, but I personally think Dylan is a bit overrated as a songwriter (and the one time I saw him live, he was only so-so as a performer, but I don't think that's exactly a hot take).
While I agree, that CUDA is the best in class API for GPU programming, OpenCL, Vulkan compute shaders and Sycl are alternatives that are usable. I'm for example, using compute shaders for writing GPGPU algorithms that work on Mac, AMD, Intel and Nvidia. It works ok. The debugging experience and ecosystem sucks compared to CUDA, but being able to run the algorithms across platforms is a huge advantage over CUDA.
How are you writing compute shaders that work on all platforms, including Mac? Are you just writing Vulkan and relying on MoltenVK?
AFAIK, the only solution that actually works on all major platforms without additional compatibility layers today is OpenCL 1.2 - which also happens to be officially deprecated on MacOS, but still works for now.
WebGPU has no support for tensor cores (or their Apple Silicon equivalents). Vulkan has an Nvidia extension for it, is there any way to make MoltenVK use simdgroup_matrix instructions in compute shaders?
Technically, OpenCL can also include inline PTX assembly in kernels (unlike any compute shader API I've ever seen), which is relevant for targeting things like tensor cores. You're absolutely right about the language limitation, though.
Generally, the reason to bother with this approach is if you have a project that only needs tensor cores in a tiny part of the code and otherwise benefits from the cross platform nature of OpenCL, so you have a mostly shared codebase with a small vendor-specific optimization in a kernel or two. I've been in that situation and do find that approach valuable, but I'll be the first to admit the modern GPGPU landscape is full of unpleasant compromises whichever way you look.
Well it really depends on the kind of work you're doing. My (non-AI) software allows users to run my algorithms on whatever server-side GPU or local device they have. This is a big advantage IMO.
Grothendieck did not have a comprehensive view of mathematics, nor he ever claimed to. There are vast swathes of mathematics (e.g. PDE or probability) that never fell under Grothendieck's radar
What makes you think that movie is an accurate representation of the papal selection process? I watched it too and while the videography is amazing, the plot of the movie is clearly dictated by having an agenda rather than accurately trying to portray reality.
It’s the first time I’ve encountered any information about how a new pope is selected. Period.
As a not-dumb person, I realize it’s just a movie. But the basic premise of being cordoned off from the outside world, voting until someone is chosen, with the voting going on for days and signaled through smoke by burning the ballets - I assume that basic premise is at least mostly accurate?
Edit: Indeed, after some basic googling, the premise of the movie seems to line up with the basic premise of how a pope was selected centuries ago.
I haven't seen the movie, but I have read the book a couple of years ago, published in 2016, and I presume you could get the same information from there.
It's not really a secret how a pope is chosen, it's just not something most people are interested enough to look up (there's a missing "in" in that sentence but I couldn't decide where to put it).
Robert Harris wrote the book and also wrote Fatherland, Enigma and Pompeii. Those are three different books but I'd definitely read a book with that single title.
The premise of the movie is obviously real. I don't think anyone would debate that. I was referring to the portrayal of the political and social dynamics of the process and the views of the Catholic Church.
I was of the impression there are conservative and liberal factions within the Church, and that electing the Pope is a time that that division comes out? No?
All sorts of works of fiction have been sources of knowledge for much longer than film has been around. Aesop's fables and parables in the Bible are intentful examples. I don't find this horrifying.
What sort of agenda did you think the movie had? I suppose there's a slight humanist agenda, since it portrays nearly all the characters pursuing goals that probably aren't considered the ideal religious goals.
The thread of conservative vs progressive cardinals and factions goes through the whole movie, but the ending is the most "agenda" part (although handled subtly).
The ending reveal doesn't even fit neatly into the hot-button American political issue you're associating it with. The film is clearly trying to make the viewer work out their view on the issue, and I think the film takes essentially no stance (unless you think that not taking a strong stance in one direction constitutes endorsement of a different direction).
Some might even say the film lacks courage, both by taking no stance on the issue and by presenting a scenario that only vaguely matches the hot-button American political issue.
Why would you guess that? Is there any evidence that companies are not hiring women despite them being equally/more talented than their male counterparts?
Yet these "lower-level" APIs, DX12 and Vulcan, often don't significantly out perform DX11, and in many cases DX11 performs better. I put lower-level in quotes because those APIs bake assumptions about the hardware into their API which shouldn't be there to begin with because they frequently prevent drivers from getting the most out of the hardware.
reply