ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.05k stars 2.22k forks source link

Quickly switching from Fullscreen to Windowed and back using F11 causes game to crash on any input when focused after reopening the game #29407

Open Eeveelution opened 1 month ago

Eeveelution commented 1 month ago

Type

Crash to desktop

Bug description

So I was attempting to play the daily challange and realized I hadn't turned off mouse buttons, so I tried to press F10 to disable them but accidentally pressed F11 which made lazer go from fullscreen to windowed mode, quickly realizing this i pressed F11 again, and the game attempted to go to fullscreen but crashed.

Subsequent launches crashed during the game intro either directly after it says "welcome" or after finishing the "welcome to osu!" sentence.

This however only happens when launching the game and being in a state where once osu! launches, the osu! window is in focus. If i open lazer and Alt-Tab to discord, the game launches fine, and goes into the background, however tabbing back to lazer and attempting to press a mouse button leads to a crash once again. Sometimes instead of a crash it causes the window to entirely freeze and show up as 'not responding' in task manager, which after a while does lead to a crash.

Screenshots or videos

https://github.com/user-attachments/assets/a036570a-7b73-45ad-b542-27b3c07d1146

Version

2024.731.0

Logs

Only log files I was able to get out was these:

Log from immediate crash: 1723574863.nauth.log

Log from crash after a mouse click: 1723574880.nauth.log

I'm not sure if those are supposed to be encoded like this? I figured I might've been able to scavenge for clues myself in this log but I hope these are better than nothing.

Eeveelution commented 1 month ago

Update: letting the framework.ini file recreate fixed the issue. Here's the old one that causes the issue:

ShowLogOverlay = False
WindowedSize = 1366x768
ConfineMouseMode = Never
ExecutionMode = MultiThreaded
WindowedPositionX = 0.5
WindowedPositionY = 0.5
LastDisplayDevice = First
AudioDevice = 
VolumeUniversal = 0.08
VolumeMusic = 0.99
VolumeEffect = 0.0
HardwareVideoDecoder = Any
SizeFullscreen = 9999x9999
MinimiseOnFocusLossInFullscreen = True
FrameSync = VSync
WindowMode = Borderless
Renderer = OpenGL
ShowUnicode = False
Locale = 
MapAbsoluteInputToWindow = False
IgnoredInputHandlers = 
CursorSensitivity = 1.0

Could the SizeFullscreen being set to 9999x9999 be an issue? Though the fullscreen window does seem to create just fine, maybe something input related can't cope? since it only happens once I actually press a mouse key..

smoogipoo commented 4 weeks ago

Please try exporting logs from the game again.

Eeveelution commented 4 weeks ago

How do I do that when I can't get to the button to export them with the broken config?

smoogipoo commented 4 weeks ago

Crash logs are saved between runs, so you can make it crash once and then run the game again and export the logs.

I assume you're able to do that since you say you need to use F11 to make it crash.

Eeveelution commented 4 weeks ago

I see, I'll try that when I get home

kafibu commented 1 week ago

Hey I have the same issue this is my log compressed-logs.zip

smoogipoo commented 1 week ago

There doesn't look to be any errors in your logs. It could be a driver crash.

Try looking through the event error for any logs (https://docs.microsoft.com/en-us/host-integration-server/core/how-to-check-the-windows-event-logs-for-errors1).

Eeveelution commented 1 week ago

Crash logs are saved between runs, so you can make it crash once and then run the game again and export the logs.

I assume you're able to do that since you say you need to use F11 to make it crash.

Sorry for being so late but I just tried exporting the logs and all it exported was the logs from today, so the crash that happened during the F11 press isn't there anymore. The crashes that I could consistently recreate though are here:

compressed-logs.zip

Eeveelution commented 1 week ago

Event viewer things on immediate crash during intro sequence:

image image image image

seems to be some sort of nvidia driver crash?

Eeveelution commented 1 week ago

Also sometimes it doesn't fully crash, it just freezes rendering, I once managed to blindly click myself into song select and that fully seemed to work. I got a ton of warnings in event viewer regarding an out of memory error:

image and this time i got an exception message:

Application: osu!.exe
CoreCLR Version: 8.0.824.36612
.NET Version: 8.0.8
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Stack:
   at osuTK.Graphics.ES30.GL.DrawElements(osuTK.Graphics.ES30.PrimitiveType, Int32, osuTK.Graphics.ES30.DrawElementsType, IntPtr)
   at osu.Framework.Graphics.OpenGL.GLRenderer.DrawVerticesImplementation(osu.Framework.Graphics.Rendering.PrimitiveTopology, Int32, Int32)
   at osu.Framework.Graphics.Rendering.Renderer.DrawVertices(osu.Framework.Graphics.Rendering.PrimitiveTopology, Int32, Int32)
   at osu.Framework.Graphics.Rendering.Renderer.FlushCurrentBatch(System.Nullable`1<osu.Framework.Graphics.Rendering.FlushBatchSource>)
   at osu.Framework.Graphics.Rendering.Renderer.SetBlend(osu.Framework.Graphics.BlendingParameters)
   at osu.Framework.Graphics.DrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Drawable+ProxyDrawable+ProxyDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Platform.GameHost.DrawFrame()
   at osu.Framework.Threading.GameThread.processFrame()
   at osu.Framework.Threading.GameThread.RunSingleFrame()
   at osu.Framework.Threading.GameThread.<createThread>g__runWork|70_0()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
Eeveelution commented 1 week ago

The crash when I later tab in and press a mouse key seems to be exactly the same as the one during the crash on the intro sequence. I see no differences in the events on event viewer

smoogipoo commented 1 week ago

Does the VRAM usage increase in task manager over time?

Eeveelution commented 1 week ago

I'll try to get it into the hanging state again, it seems to be harder to reproduce.

Eeveelution commented 1 week ago

okay so it got a different stack trace, but VRAM usage only barely went up, not enough where it should be throwing out of memory errors

Application: osu!.exe
CoreCLR Version: 8.0.824.36612
.NET Version: 8.0.8
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Stack:
   at osu.Framework.Graphics.OpenGL.GLRenderer.DrawVerticesImplementation(osu.Framework.Graphics.Rendering.PrimitiveTopology, Int32, Int32)
   at osu.Framework.Graphics.Rendering.Renderer.DrawVertices(osu.Framework.Graphics.Rendering.PrimitiveTopology, Int32, Int32)
   at osu.Framework.Graphics.Rendering.Renderer.setMaskingInfo(osu.Framework.Graphics.Rendering.MaskingInfo, Boolean, Boolean)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Platform.GameHost.DrawFrame()
   at osu.Framework.Threading.GameThread.processFrame()
   at osu.Framework.Threading.GameThread.RunSingleFrame()
   at osu.Framework.Threading.GameThread.<createThread>g__runWork|70_0()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
smoogipoo commented 1 week ago

To be clear, does this only happen after pressing F11? Can you play the game normally otherwise?

Eeveelution commented 1 week ago

I can't recreate the F11 crash anymore, this happens when using the framework.ini settings I've posted at the very top, which have been set after the F11 crash occured. When launching the game with that config, and the game starts and is immediately in focus, it dies on the intro sequence. When it starts and isn't in focus, it stays running until I Alt-Tab back in, and try to do anything.

kafibu commented 1 week ago

Im posting mine if it help

Log Name:      Application
Source:        .NET Runtime
Date:          1/9/2024 7:41:50 PM
Event ID:      1026
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      DESKTOP-BHBE6O4
Description:
Application: osu!.exe
CoreCLR Version: 8.0.824.36612
.NET Version: 8.0.8
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Stack:
   at osu.Framework.Graphics.OpenGL.GLRenderer.DrawVerticesImplementation(osu.Framework.Graphics.Rendering.PrimitiveTopology, Int32, Int32)
   at osu.Framework.Graphics.Rendering.Renderer.DrawVertices(osu.Framework.Graphics.Rendering.PrimitiveTopology, Int32, Int32)
   at osu.Framework.Graphics.Rendering.Renderer.FlushCurrentBatch(System.Nullable`1<osu.Framework.Graphics.Rendering.FlushBatchSource>)
   at osu.Framework.Graphics.Rendering.RendererExtensions.DrawQuad(osu.Framework.Graphics.Rendering.IRenderer, osu.Framework.Graphics.Textures.Texture, osu.Framework.Graphics.Primitives.Quad, osu.Framework.Graphics.Colour.ColourInfo, System.Nullable`1<osu.Framework.Graphics.Primitives.RectangleF>, System.Action`1<osu.Framework.Graphics.Rendering.Vertices.TexturedVertex2D>, System.Nullable`1<osuTK.Vector2>, System.Nullable`1<osuTK.Vector2>, System.Nullable`1<osu.Framework.Graphics.Primitives.RectangleF>)
   at osu.Framework.Graphics.Sprites.SpriteDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Platform.GameHost.DrawFrame()
   at osu.Framework.Threading.GameThread.processFrame()
   at osu.Framework.Threading.GameThread.RunSingleFrame()
   at osu.Framework.Threading.GameThread.<createThread>g__runWork|70_0()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name=".NET Runtime" />
    <EventID Qualifiers="0">1026</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2024-09-01T11:41:50.0449600Z" />
    <EventRecordID>33344</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>DESKTOP-BHBE6O4</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Application: osu!.exe
CoreCLR Version: 8.0.824.36612
.NET Version: 8.0.8
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Stack:
   at osu.Framework.Graphics.OpenGL.GLRenderer.DrawVerticesImplementation(osu.Framework.Graphics.Rendering.PrimitiveTopology, Int32, Int32)
   at osu.Framework.Graphics.Rendering.Renderer.DrawVertices(osu.Framework.Graphics.Rendering.PrimitiveTopology, Int32, Int32)
   at osu.Framework.Graphics.Rendering.Renderer.FlushCurrentBatch(System.Nullable`1&lt;osu.Framework.Graphics.Rendering.FlushBatchSource&gt;)
   at osu.Framework.Graphics.Rendering.RendererExtensions.DrawQuad(osu.Framework.Graphics.Rendering.IRenderer, osu.Framework.Graphics.Textures.Texture, osu.Framework.Graphics.Primitives.Quad, osu.Framework.Graphics.Colour.ColourInfo, System.Nullable`1&lt;osu.Framework.Graphics.Primitives.RectangleF&gt;, System.Action`1&lt;osu.Framework.Graphics.Rendering.Vertices.TexturedVertex2D&gt;, System.Nullable`1&lt;osuTK.Vector2&gt;, System.Nullable`1&lt;osuTK.Vector2&gt;, System.Nullable`1&lt;osu.Framework.Graphics.Primitives.RectangleF&gt;)
   at osu.Framework.Graphics.Sprites.SpriteDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.Containers.CompositeDrawable+CompositeDrawableDrawNode.Draw(osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Graphics.DrawNode.DrawOther(osu.Framework.Graphics.DrawNode, osu.Framework.Graphics.Rendering.IRenderer)
   at osu.Framework.Platform.GameHost.DrawFrame()
   at osu.Framework.Threading.GameThread.processFrame()
   at osu.Framework.Threading.GameThread.RunSingleFrame()
   at osu.Framework.Threading.GameThread.&lt;createThread&gt;g__runWork|70_0()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
</Data>
  </EventData>
</Event>
Eeveelution commented 1 week ago

please use proper code blocks using ``` image image