Skip to content

Crazy Taxi 3: High Roller - Inconsistent performance issues especially in the Vulkan backend (excessive shader generation) #2282

@ehw

Description

@ehw

Title

https://xemu.app/titles/53450004/#Crazy-Taxi-3-High-Roller

SE-004 [53450004]

Bug Description

This title suffers from some odd performance issues while in any stage (particularly the Glitter Oasis and Small Apple stages). Depending on where you are in the stage and what's occurring on the screen, the game starts losing performance. The problem might be remedied if you have a great CPU, but is more evident in slower CPUs (like my 5800x). As you drive around the stages, the game will start dropping frames every few seconds or so, sometimes at a second or two at a time. This is significantly worse with the Vulkan backend, where the framerates is some areas are halved. With the vulkan backend, QUEUE_SUBMIT_AUX, TEX_UPLOAD, and QUEUE_SUBMIT_4 shoot up from 0 to 500 or so rapidly within every second.

This is NOT remedied with the shader cache, as the game appears to be generating way too many shaders that any game should be creating.

To recreate:
1.) Load the game
2.) Wait past the company logos for the title screen, then press start.
3.) Select "Glitter Oasis"
4.) Pick "Play By Normal Rules"
5.) Select a character
6.) Wait for the stage to load up
7.) Drive a little bit toward the center of the stage, around the four way. Depending on your PC specs, you might see performance issues right away.
8.) Change the video backend to the Vulkan one.

Once you switch to the Vulkan backend, performance tanks considerably.

OpenGL:
Image

Vulkan:
Image

Here's a video showing OpenGL performance on a PC spec similar to mine:
https://youtu.be/BMl8HDkmg7Y?t=254

Expected Behavior

As far as I know, the game should not have any performance/frame time issues. The game on real hardware doesn't display any kind of frame dip and seems to always run at a consistent 60fps. See a video below of the game running on real hardware, presumably:

https://www.youtube.com/watch?v=9Dn_-0cNxGc

Some people with higher spec'd PCs seem to be able to handle the game a bit better. Here's a video of someone playing with a Intel i9-13900K. It's not perfect, but performs better than the 5800X video:

https://youtu.be/77OvR5p1zng?t=238

xemu Version

Version: 0.8.78
Branch: master
Commit: 7d9739d
Date: Sat Jun 21 00:45:10 UTC 2025

System Information

CPU: AMD Ryzen 7 5800X 8-Core Processor
OS Platform: Windows
OS Version: 22H2
Manufacturer: NVIDIA Corporation
GPU Model: NVIDIA GeForce RTX 3080/PCIe/SSE2
Driver: 4.0.0 NVIDIA 576.80
Shader: 4.00 NVIDIA via Cg compiler

Additional Context

While I know this may seem to indicate that the performance issues are because of the user's PC specs and just in general Vulkan related (since Vulkan does have some performance issues in some games already), this seems to be different. The issue might seem to be indirectly related to the extremely large amount of shaders that Xemu wants to create for this game. It creates literally thousands of shaders at least for the OpenGL backend as evident by the large amount of folders in the shader cache that are made for this game alone. It doesn't seem coincidental that most of the folders are made specifically when playing Glitter Oasis and Small Apple. Based on what I see from the geometry pop in, it's almost as if Xemu is creating a shader for almost every 'piece' of geometry on the map for some reason. Xemu shouldn't be doing this, and I can't imagine that even if all the shaders are compiled that Xemu is performant with handling thousands of shaders at the same time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions