27 comments
@alyssa @lina @dougall I have been super impressed with the early Linux kernel driver work in Rust. I'd built a toy "kernel" while reading the early parts of https://os.phil-opp.com/ and it was really enjoyable. But seeing that start to happen in a real kernel is amazing. Coding in Rust just feels solid. @alyssa @lina @dougall I'm really happy that we didn't had a lot of bikeshedding on the Rust topic overall and didn't settle on any compromises either. There were voices of having code touching DRM APIs to not be rust and other nonsensical requests. So I'm glad we as the DRM community "enabled" @lina to work on that :) @alyssa @lina @dougall I just hope that way more linux software is moved to rust, especially when it comes to drivers, it just makes sense in the context of low level software to avoid classes of instabilities all together like rust does compared to C. Btw i also think that linux needs some object oriented driver interfaces, like macOS does, it's amazing how much work it saves for the driver developer. @ITzTravelInTime @alyssa @dougall Linux is already object oriented! It's just really awkward because it's doing it using a language that isn't ^^; With Rust abstractions, you end up getting a much more OOP-style interface that fits the kernel APIs better than C! β¨ nice :) maybe a tad ambitious but linux scheduler in rust eventually? /s (but seriously the progress on AGX has been amazing, makes me glad to be part of the community lol. i'm debating using rust for the sep driver when that time comes lol) @alyssa The undefined point sizes happen in Metal as well if you don't write to a `[[point_size]]` output when rendering points. PCSX2 suffered from this for a while until I got a chance to do some screen share debugging with an M1 user. @alyssa Have you had chance to check out how Icecream95 is doing with the Mali G610 CSF? @StuartIanNaylor icecream95 was banned from fd.o for a reason. Please do not bring him up here. @marcan @StuartIanNaylor damnit you just made me waste 15 minutes trying to dig up all this dirt! |
@lina @dougall
One task today was optimizing the OpenGL driver so SuperTuxKart would be playable. On Lina's latest stream, she tried to play SuperTuxKart, but it was just too slow.
Why? Every time the application wants to access GPU memory, the driver needs to synchronize access between the CPU and GPU. On a tiler GPU, like Apple's, that synchronization is expensive because it requires flushing out drawing commands. Fortunately, we can skip most of the flushing with some careful driver accounting. With that optimization, SuperTuxKart still works... but now it's fast! β¨β
@lina @dougall
One task today was optimizing the OpenGL driver so SuperTuxKart would be playable. On Lina's latest stream, she tried to play SuperTuxKart, but it was just too slow.
Why? Every time the application wants to access GPU memory, the driver needs to synchronize access between the CPU and GPU. On a tiler GPU, like Apple's, that synchronization is expensive because it requires flushing out drawing commands. Fortunately, we can skip most of the flushing with some careful driver accounting....