-
Link Mauve authored
This driver might come as a surprise, 21 years after the last 3DFX card released, but it makes it possible to run programs targeting this family of GPUs on top of any Gallium driver (so far I only tested iris and radeonsi). This is the second attempt at making a Gallium frontend in Rust, the first one being OpenCL by karolherbst. I tried to make a clear separation between the C API exposed to the user (in src/gallium/targets/glide), and the inner driver (in src/gallium/frontends/glide). The inner driver uses raw bindings generated with bindgen to expose the Gallium C API to Rust (see meson.build and bindgen.h), a higher level and safer wrapper on top of it (pipe.rs), a definition of the Glide types (gr.rs) and the actual driver (glide.rs). There is no winsys integration so far, mainly because I could find no Linux game (Unreal and Unreal Tournament apparently got Linux builds, but I couldn’t find them so far), and also because I couldn’t figure out how to create a dll for use in Wine, with winebuild, even with the help of wine-nine-standalone. I have restricted the implemented APIs to the programs I had at hand, mainly some samples and a game, Pandemonium!. I’m sure I still have some CDs around with other games from this era, but so far couldn’t find them, so if you have more I’d really like you to send me a trace using grtrace (see the next two commits), or even a donation on GOG.com (username: linkmauve) or whatever. All in all, I don’t expect this driver to be used much, I mostly wrote it for fun and in order to experiment with Rust inside of Mesa, but I do intend to maintain it and eventually to make it support all APIs used by all games from that 1996-2000 era which targeted it.
20088311