![]() We should probably have an option in Mesa to make this kind of under-the-hood compatibility translations more obvious to users so we can catch silly issues like this more easily. Indeed, with that change SuperTuxKart now plays smooth on OpenGL too, with framerates always above 30 fps and up to 110 fps depending on the track. The Vulkan driver was exposing support for this already, which explains the dramatic difference in performance between both drivers. The hardware does support 16-bit floating point vertex attributes though, so this was very easy to fix. ![]() In particular, SuperTuxKart uses rgba16f and rg16f with some vertex buffers and Mesa was silently translating these to 32-bit counterparts because the GL driver was not advertising support for the 16-bit variants. While this is great for compatibility it is obviously going to be very slow. The game was clearly hitting a very bad path in the GL driver so I had to fix that before I could make a fair comparison between both.Ī perf session quickly pointed me to the issue: Mesa has code to transparently translate vertex attribute formats that are not natively supported to a supported format. I was then naturally interested in comparing this to the GL renderer and I was a bit surprised to see that, with the same settings, the GL renderer would be somewhere in the 8-20 fps range for the same tracks. I think the game might be able to produce more than 110 fps actually, since various tracks were able to reach exactly 110 fps I think the limiting factor here was the display. In my tests, even with a debug build of Mesa I saw the FPS ranging from 60 to 110 depending on the track. The short story is that while I have only tested a few tracks it seems to perform really well overall. ![]() The latest SuperTuxKart release comes with an experimental Vulkan renderer and I was eager to check it out on my Raspbery Pi 4 and see how well it worked.
0 Comments
Leave a Reply. |