Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Older linux distributions may crash at startup since new renderer #23010

Closed
FoxPodZ opened this issue Mar 27, 2023 · 1 comment · Fixed by ppy/osu-framework#5725
Closed

Older linux distributions may crash at startup since new renderer #23010

FoxPodZ opened this issue Mar 27, 2023 · 1 comment · Fixed by ppy/osu-framework#5725

Comments

@FoxPodZ
Copy link

FoxPodZ commented Mar 27, 2023

Type

Crash to desktop

Bug description

When Launching osu! on Linux, nothing happens since update 2023.326.1. I tried opening osu! using the Terminal and this is what i got:

foxpodz@foxpodz-MS-7B79:~/Desktop$ ./osu.AppImage 
Unhandled exception. osu.Framework.Graphics.OpenGL.Shaders.GLShader+ProgramLinkingFailedException: A osu.Framework.Graphics.OpenGL.Shaders.GLShader failed to link: Texture2D/Texture:
System.DllNotFoundException: Unable to load shared library 'libveldrid-spirv' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibveldrid-spirv: cannot open shared object file: No such file or directory
   at Veldrid.SPIRV.VeldridSpirvNative.CompileGlslToSpirv(GlslCompileInfo* info)
   at Veldrid.SPIRV.SpirvCompilation.CompileGlslToSpirv(UInt32 sourceLength, Byte* sourceTextPtr, String fileName, ShaderStages stage, Boolean debug, UInt32 macroCount, NativeMacroDefinition* macros)
   at Veldrid.SPIRV.SpirvCompilation.CompileVertexFragment(Byte[] vsBytes, Byte[] fsBytes, CrossCompileTarget target, CrossCompileOptions options)
   at Veldrid.SPIRV.SpirvCompilation.CompileVertexFragment(Byte[] vsBytes, Byte[] fsBytes, CrossCompileTarget target)
   at osu.Framework.Graphics.OpenGL.Shaders.GLShader..ctor(GLRenderer renderer, String name, GLShaderPart[] parts, IUniformBuffer`1 globalUniformBuffer)
   at osu.Framework.Graphics.OpenGL.Shaders.GLShader..ctor(GLRenderer renderer, String name, GLShaderPart[] parts, IUniformBuffer`1 globalUniformBuffer)
   at osu.Framework.Graphics.OpenGL.GLRenderer.CreateShader(String name, IShaderPart[] parts, IUniformBuffer`1 globalUniformBuffer)
   at osu.Framework.Graphics.Rendering.Renderer.osu.Framework.Graphics.Rendering.IRenderer.CreateShader(String name, IShaderPart[] parts)
   at osu.Framework.Graphics.Shaders.ShaderManager.CreateShader(IRenderer renderer, String name, IShaderPart[] parts)
   at osu.Framework.Graphics.Shaders.ShaderManager.Load(String vertex, String fragment, Boolean continuousCompilation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__202_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.AddInternal(Drawable drawable)
   at osu.Framework.Graphics.Containers.Container`1.AddInternal(Drawable drawable)
   at osu.Framework.Graphics.Containers.Container`1.Add(T drawable)
   at osu.Game.OsuGameBase.load(ReadableKeyCombinationProvider keyCombinationProvider) in /var/lib/buildkite-agent/builds/debian-gnu-linux-vm-1/ppy/osu/osu.Game/OsuGameBase.cs:line 363
   at osu.Game.OsuGameBase.<>c.<RegisterForDependencyActivation>b__147_0(Object t, IReadOnlyDependencyContainer d) in /var/lib/buildkite-agent/builds/debian-gnu-linux-vm-1/ppy/osu/osu.Game/osu.Framework.SourceGeneration/osu.Framework.SourceGeneration.DependencyInjectionSourceGenerator/g_osu.Game.OsuGameBase_Dependencies.cs:line 16
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__202_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__202_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__202_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Graphics.Containers.CompositeDrawable.loadChild(Drawable child)
   at osu.Framework.Graphics.Containers.CompositeDrawable.load(ShaderManager shaders, Nullable`1 cancellation)
   at osu.Framework.Graphics.Containers.CompositeDrawable.<>c.<RegisterForDependencyActivation>b__202_0(Object t, IReadOnlyDependencyContainer d)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.<Activate>g__activateRecursively|8_0[T](Object obj, IReadOnlyDependencyContainer dependencies, Type currentType)
   at osu.Framework.Allocation.DependencyActivator.Activate[T](T obj, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Allocation.DependencyContainer.Inject[T](T instance)
   at osu.Framework.Graphics.Drawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Containers.CompositeDrawable.InjectDependencies(IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies)
   at osu.Framework.Graphics.Drawable.Load(IFrameBasedClock clock, IReadOnlyDependencyContainer dependencies, Boolean isDirectAsyncContext)
   at osu.Framework.Platform.GameHost.bootstrapSceneGraph(Game game)
   at osu.Framework.Platform.GameHost.Run(Game game)
   at osu.Desktop.Program.Main(String[] args) in /var/lib/buildkite-agent/builds/debian-gnu-linux-vm-1/ppy/osu/osu.Desktop/Program.cs:line 120
Aborted

Looks like some issue with OpenGL and this "libveldrid-spriv" Library. I can't change the Renderer cuz the game isn't launching

System.DllNotFoundException: Unable to load shared library 'libveldrid-spirv' or one of its dependencies.

Screenshots or videos

image

Version

2023.326.1

Logs

input.log
runtime.log

@FoxPodZ FoxPodZ changed the title osu! crashes on launhc osu! crashes on launch Mar 27, 2023
@bdach
Copy link
Collaborator

bdach commented Mar 27, 2023

As explained in #22967 (comment) this is most likely because your distro is too old to comply with the glibc version veldrid-spirv expects.

We may consider building the native libraries on an older distro to remedy this.

@peppy peppy changed the title osu! crashes on launch Older linux distributions may crash at startup since new renderer Mar 28, 2023
@bdach bdach moved this to Next up in osu! development roadmap Mar 30, 2023
peppy added a commit to ppy/veldrid-spirv that referenced this issue Mar 31, 2023
@github-project-automation github-project-automation bot moved this from Next up to Done in osu! development roadmap Mar 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants