FMOD Linux causing errors on Steam Deck

Hi,

I’ve been trying to track down some odd gameplay bugs with my Linux build when running on Steam Deck, and it appears to be caused by FMOD.

Essentially, I have two problems that I know of. The first is that my game hangs on exit. The second is that parts of the gameplay break because the Unity Mathf.Approximately function is broken. My theory is that something in FMOD is changing some FPU state or rounding mode or something along those lines.

To test this, I created a blank Unity project with a 3D text object in, and added this code to a script:

void Start()
{
    float testFloat = 0f;
    if (!Mathf.Approximately(testFloat, 0f))
    {
        GetComponent<TextMesh>().text = "0 is not approximately 0!";
    }
    else
    {
        GetComponent<TextMesh>().text = "0 is approximately 0!";
    }
}

As you’d expect, running the project displays “0 is approximately 0!” on screen. Making a Linux build and running it on Steam Deck, I get the same correct output and the game exits when I alt-f4.

I then imported the FMOD package and rebuilt. Now, running on Steam Deck I get “0 is not approximately 0!” and the game hangs on exit. Note, I’m not calling any FMOD functions, just adding the package.

The somewhat odd thing is that running the same build on Ubuntu gives the correct result, and a clean exit. I also have no problems with Windows or console builds (or, indeed, running the Windows build on Steam Deck via Proton). So it’s a bit of an odd one.

I’m using FMOD 2.01.11 currently, with Unity 2020.3 (though I also tried the newest LTS Unity with the same results). I can supply repro projects and builds if needed.

Unfortunately we don’t have access to a Steam Deck currently so we can’t reproduce the issue you are describing.
We have tried testing between builds from AMD to an Intel machine, and from Intel to AMD but haven’t been able to reproduce any issues. What OS are you building from and what is the CPU architecture of your development machine?

Thanks. I’m building on an AMD machine, and have tested on AMD Ubuntu, which works, and Steam Deck, which doesn’t. Unfortunately, I don’t have any more SteamOS devices to test on.

I tried updating fmod one point release to 2.01.12, and the problem was still present. However, updating to 2.01.16 seems to resolve it, so seems like something changed in one of the releases between those two which fixes the issue. In any case, 2.01.16 fixes the problem for me.

2 Likes

Thanks for letting us know- not sure what what the change might have been but glad to hear it’s working now. Please let us know if you run into any other issues.