Skip to content

Segfault on Linux when creating an overlay #170

@Frozenreflex

Description

@Frozenreflex

Linux Mint 22.2, trying to create an overlay/use the overlay demo causes a segfault, occurs in both C# and non-C# 4.5. I've gotten someone else to run it on Windows and it works fine. Not sure if it's specific to overlays, I haven't tested using it normally.

Running the player in Rider in C# shows... something?

Godot Engine v4.5.stable.mono.official.876b29033 - https://godotengine.org
Vulkan 1.4.305 - Forward+ - Using Device #0: AMD - AMD Radeon RX 6600 (RADV NAVI23)

OpenVR: initialising OpenVR context

Application in overlay mode.
Main OpenVR interface has been initialized
Main render models interface has been initialized.
Found HMD 0 (generic_hmd)
Found tracker 1 ({htc}vr_tracker_vive_1_0)
Found base station 2 (lh_basestation_vive)
Found base station 3 (lh_basestation_vive)

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.5.stable.mono.official (876b290332ec6f2e6d173d08162a02aa7e6ca46d)
Dumping the backtrace. Please include this when reporting the bug on: https://github.com/godotengine/godot/issues
[1] /usr/lib/dotnet/shared/Microsoft.NETCore.App/9.0.9/libcoreclr.so(+0x6689cc) [0x75c901e689cc] (??:0)
[2] /usr/lib/dotnet/shared/Microsoft.NETCore.App/9.0.9/libcoreclr.so(+0x667ed5) [0x75c901e67ed5] (??:0)
[3] /lib/x86_64-linux-gnu/libc.so.6(+0x45330) [0x75c984245330] (??:0)
-- END OF C++ BACKTRACE --
================================================================
using Godot;
using System;

public partial class Test : Node
{
    private XRInterface XrInterface;
    [Export] public Node Overlay;
    public override void _EnterTree()
    {
        base._EnterTree();

        Overlay.Call("set_tracked_device_relative_position",
            Transform3D.Identity.TranslatedLocal(Vector3.Forward));
        
        var global = GetNode("/root/OpenVRInterface");

        var xrInt = global.Call("get_interface").As<XRInterface>();
        xrInt.Call("set_application_type", 2);
        xrInt.Call("set_tracking_universe", 1);

        xrInt.Call("initialize");

        XrInterface = xrInt;
    }
}

I'm using builds from my fork, but all I've done is modified the Github Actions so that I can manually build it in debug mode with debug symbols, the segfault still happens with the release binary copied over the debug binary

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions