Skip to content

Running with profile glspirv on mac results in unfriendly failure (crash) #67

Description

@mcclure

We are developing with FNA in C#. In a particular situation, we had a reason to want to force Core profile. Our understanding is in order to run in Core profile, Mojoshader must run with profile "glspirv"

When we tried this, the application failed with a segfault (on one run, we were able to trap it in a debugger reading from a NULL pointer in what appeared to be a mojoshader stack; on repeat runs, I can only get dotnet to terminate with error code 139, indicating a segfault).

Expected behavior

If glspirv is unsupported on some platforms, failure should look like an error printout followed by an exit with error code, not an actual crash.

I am only mostly sure this is happening in mojoshader. If this is actually an FNA bug I could file over there.

Repro

The error may be easily reproduced by taking any FNA test program and adding these lines before creating the Game object.

SDL2.SDL.SDL_SetHint("FNA3D_FORCE_DRIVER", "OpenGL");
SDL2.SDL.SDL_SetHint("FNA3D_OPENGL_FORCE_CORE_PROFILE", "1");
SDL2.SDL.SDL_SetHint("FNA3D_MOJOSHADER_PROFILE", "glspirv");

However, here is the test program (courtesy Love Conquers All Games) I've been using:

test-core-profile.zip

This zip contains prebuilt binaries of FNA3D incorporating mojoshader 7b7e5fd.

To run this, unzip it, and then from the project directory:

rm -r external/FNA && git clone --depth 1 --branch 24.05 --recurse-submodules https://github.com/FNA-XNA/FNA.git external/FNA
cd helloworld
dotnet run

In our tests, this works fine on Linux, but results in the crash on Mac.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions