Fabulously-Optimized / fabulously-optimized

A simple Minecraft modpack focusing on performance and graphics enhancements.
https://download.fo
BSD 3-Clause "New" or "Revised" License
932 stars 84 forks source link

Suppress OpenGL 128(0-2) #768

Open AdamRaichu opened 10 months ago

AdamRaichu commented 10 months ago

CurseForge link

Not considering UNTIL you can use Overwolf account to login; I don't want twitch.

CurseForge Mod Distribution

Unknown

Modrinth link

https://modrinth.com/mod/suppressopengl1280

Source/other link

https://github.com/AdamRaichu/suppress-opengl-1280

Mod file size

1.01 MiB

License

(any other license)

What it does

This mod prevent OpenGL debug messages with the ids 1280, 1281, or 1282 from being logged more than once in an instance.

Why should it be in the modpack

I installed this modpack for the first time today. I added Rethinking Voxels, then booted it up. Over the course of seven and a half minutes of active time, I got 57376 lines in the log. The vast majority of these were OpenGL debug errors (a couple examples are below).

[20:25:26] [Render thread/INFO]: OpenGL debug message: id=1282, source=API, type=ERROR, severity=HIGH, message='Error has been generated. GL error GL_INVALID_OPERATION in (null): (ID: 1710494744) texture 49, "" is already bound to another target'

[20:29:30] [Render thread/INFO]: OpenGL debug message: id=1280, source=API, type=ERROR, severity=HIGH, message='Error has been generated. GL error GL_INVALID_ENUM in (null): (ID: 897695363) non-integer <format> 28 has been provided.'

Let me tell you the line numbers these came from (almost exactly 4 seconds apart) in order to give you an idea of how often these were being logged. The last instance of the first line (there were 57 with the same timestamp) was on line 3955. The first instance of the second one (4 seconds later) was on line 56170!

Luckily, I had encountered a similar problem before, and decided to solve it with this simple mod.

Why shouldn't it be in the modpack

Is not on CurseForge. Also, the title may be confusing to some players, because, while the mod does not actually fix any errors, its intended purpose is to prevent errors from being logged.

Additional details

Full disclosure: I am the author of this mod. It being included in fabulously optimized would probably be great for me. However, I do think that it would be helpful for those trying to actually read the log. Looking through tens of thousands of lines of code to find what you are looking for is impractical. Also, users who want to see those errors (shader authors for example) can use the built in config to turn off suppression.

Madis0 commented 10 months ago

Hmm. I think FO already has the feature through Sodium/Iris/Sodium Extra. Check the video settings.

If not, it would make sense to implement it in one of the three.

Madis0 commented 10 months ago

pilt https://github.com/CaffeineMC/sodium-fabric/blob/dev/src/main/java/me/jellysquid/mods/sodium/mixin/core/WindowMixin.java#L16

What do you think of that option? Is that different?

AdamRaichu commented 10 months ago

pilt CaffeineMC/sodium-fabric@dev/src/main/java/me/jellysquid/mods/sodium/mixin/core/WindowMixin.java#L16

What do you think of that option? Is that different?

That is showing as disabled for me.

image

I am still getting the error in the log. Adding my mod prevents it from being spammed.

Madis0 commented 10 months ago

Perhaps it's worth finding out why the option is disabled for you then.

AdamRaichu commented 10 months ago

pilt CaffeineMC/sodium-fabric@dev/src/main/java/me/jellysquid/mods/sodium/mixin/core/WindowMixin.java#L16

What do you think of that option? Is that different?

Confirmed on a different device: With Performance > Use No Error Context checked, still getting the error spam. (Confirmed both with Rethinking Voxels and Complementary Reimagined.)

Side note: Log monitor in Modrinth launcher seems to be ignoring duplicate message/timestamp combinations; good on them.

AdamRaichu commented 8 months ago

Update: Mod is now available on CurseForge (pending mod approval).