Re: VkRunner ported to Rust
Alejandro Piñeiro <[email protected]>
| Newsgroups | gmane.comp.video.mesa3d.devel |
|---|---|
| Message-ID | <[email protected]> |
On 20/2/23 16:53, Neil Roberts wrote: > Hi folks, Hi Neil! > > Does anybody remember VkRunner? It’s a little tool to help write > shader-based tests for Vulkan. It’s the same concept as Piglit’s > shader_runner but for Vulkan instead of OpenGL. There are a couple of > tests using it in Piglit but apart from that it never really got off the > ground. > > Anyway, I’ve been trying to learn some Rust lately and in order to get > some experience working with a non-trivial project I decided to port > VkRunner to Rust. I have been trying to find a time slot to learn Rust too. If you have issues around with pending features perhaps one of these days I join your initiative. > The port is now complete and available here: > > https://github.com/bpeel/vkrunner/ > > It’s a drop-in replacement for the original VkRunner so it should be > possible to start using it in a CI system by just changing the git repo, > assuming the rust compiler is installed. I was thinking that now that > Mesa has some Rust code in it anyway it might not be too unreasonable to > expect CI systems to have the Rust compiler available. > > Other than that there’s not much advantage to using one or the other > except for the warm fuzzy feeling knowing that you’re using a project > written in a memory-safe language. If the rust-based vkrunner has the same features and can run the same kind of tests that the original c-based vkrunner, I think that using a memory-safe language is an advantage that goes beyond just a warm fuzzy feeling. If that is the case, I think that it is a good idea to replace one with the other. > I also took the opportunity to add a > whole bunch of unit tests so in theory the Rust port might be more > robust. > > It’s currently using Meson as the build system. In the beginning this > was necessary because I did the port gradually and it’s probably the > best build system if you have a mix of C and Rust code. Now that the > port is complete it’d probably be trivial to start using Cargo instead. > I’m not sure which would be better. It’s not using any external crates > so it doesn’t really need Cargo for now. > > Now that the port is complete it might be nice to start adding more > features. If anyone else hasn’t taken the plunge to start using Rust yet > this might be a nice project to get involved in if you fancy helping. > > Kind regards, > – Neil >