ResolutionControl+

ResolutionControl+

25.4k Downloads

every time i launch minecraft, i have to fix the hi-res filter.

JonathanTippy opened this issue · 21 comments

commented

i play at 1080p with resolution set to 2.0x and hi-res filter set to linear. every time i launch the game, its still set to linear but actually uses nearest. i have to set it to nearest and then back to liner to get it to work again.

commented

can confirm on 1.17.1, with very little mods installed

commented

I just realized this is happening to me too. No wonder it's been looking so bad. I really hope this gets fixed because now I have to remember to toggle the setting every time. I don't understand why linear is not the default anyway, as increasing the render resolution is usually done to improve visual quality and nearest neighbor looks horrible.

commented

After a little bit of testing:

v2.0.1 + Minecraft 1.16.5 -> no issue
v3.0.0 + Minecraft 1.17.1 -> setting not honored, needs toggling every time the game is launched

I can also confirm that in the config file, the setting is being saved correctly as "LINEAR", it's just not being applied. (This can also be confirmed by the fact that when the settings dialog is opened it says it's using linear but it's not.)

I don't know if that helps to narrow it down at all. I can provide any additional debugging steps that are required.

Basic system info:
Windows 7 x64 / MC 1.17.1 stock launcher / Java 16.0.1 (AdoptOpenJDK) / 2GB heap

Mods in use:

advancementinfo-1.17.1-fabric0.36.1-1.2.1.jar
appleskin-fabric-mc1.17-2.1.2.jar
BetterControls-1.17+-v1.2.0.jar
cleardespawn-1.17.1-fabric0.36.1-1.1.1.jar
continuebutton-1.0.4.jar
ctm-fabric-0.5.1+1.17.jar
custom-fog-1.6.0.jar
dynamic-fps-2.0.4.jar
easiercrafting-1.17.1-fabric0.36.1-1.6.7.jar
easiervillagertrading-1.17.1-fabric0.36.1-1.5.4.jar
EditSign-1.17.1-2.2.2.jar
enhancedblockentities-0.4.1+1.17.jar
fabric-api-0.37.1+1.17.jar
FatExperienceOrbs-1.0.1.jar
ferritecore-3.0.1-fabric.jar
horse-stats-vanilla-4.1.8.jar
hydrogen-fabric-mc1.17.1-0.3.jar
indium-1.0.0-dev.d797129+mc1.17.1.jar
lazydfu-0.1.2.jar
litematica-fabric-1.17.1-0.0.0-dev.20210713.103711.jar
lithium-fabric-mc1.17.1-0.7.3.jar
malilib-fabric-1.17.1-0.10.0-dev.24.jar
minihud-fabric-1.17.1-0.19.0-dev.20210707.150016.jar
modmenu-2.0.4.jar
okzoomer-5.0.0-beta.2+1.17.jar
resolution-control-plus-3.0.0.jar
sodium-fabric-mc1.17.1-0.3.0+build.5.jar
starlight-1.0.0-RC3+fabric.1.17.x.jar
tweakeroo-fabric-1.17.1-0.10.0-dev.20210710.155746.jar
winwonders-0.1.2.jar

Nothing obvious in the logfile. I can try creating a new install with just resolution-control-plus-3.0.0.jar to narrow down a mod conflict (possibly something with sodium/indium?)

commented

Confirmed that it is not a mod conflict, as I can reproduce the problem with a fresh install containing only

fabric-api-0.37.1+1.17.jar
modmenu-2.0.4.jar
resolution-control-plus-3.0.0.jar

Steps to reproduce:

  1. install above mods
  2. set render scale to 2x and linear
  3. quit game, restart
  4. note that distant thin objects have lots of aliasing
  5. open the resolution control+ settings menu
  6. scaling type says linear, click it to toggle to nearest, and note that the screen does not change when it toggles
  7. click it a second time to go back to linear, this time the screen changes and looks much more anti-aliased, not at all like when the game started
commented

Same issue here. 1.18.2

from fork?

commented

Same issue here. 1.18.2

commented

Same issue here. 1.18.2

from fork?

I am using the one on the bukkit page.

commented

is this mod dead?

commented

even happens on 1.19, still

commented

This is still an issue

commented

I have this issue too.

commented

Are you referring to UltimateBoomer or fantahund99?

fantahund99 has been maintaining the extension, updating it to 1.18 and 1.19 — they uploaded a 1.19.3 version on Curseforge just a few weeks ago. I guess they were granted CF upload privileges but they must be working out of a different Github repo because this one has not been touched.

The scaling issue described here still exists in their 1.19.3 port, too, though.

Oh, excuse me, I wasn't aware. I was referring to UltimateBoomer.

commented

Found fantahund's repo: https://github.com/fantahund/Resolution-Control/tree/1.19.3

I was going to suggest that we move this issue there for visibility, but they have Issues disabled so there's no way to do that.

@fantahund Do you have any thoughts about this longstanding bug?

commented

Don’t know if theyre gonna ever fix it, I’ve at least gotten used to exiting and reentering fullscreen to fix it every time I restart my game

commented

I contacted the developer a few weeks ago and they said that they're not planning on maintaining ResolutionControl+ for the time being.

Of course, it's open source and it's github, so if anyone else knows how to fix this or other issues, I reckon they're welcome to do so and either fork the project or make a pull request with fixed code.

commented

Are you referring to UltimateBoomer or fantahund99?

fantahund99 has been maintaining the extension, updating it to 1.18 and 1.19 — they uploaded a 1.19.3 version on Curseforge just a few weeks ago. I guess they were granted CF upload privileges but they must be working out of a different Github repo because this one has not been touched.

The scaling issue described here still exists in their 1.19.3 port, too, though.

commented

Issues are now active with me. I have to take a look at the problem in the next few days.

commented

Issues are now active with me. I have to take a look at the problem in the next few days.

I copied over this issue to the fork: fantahund#1

commented

I finally got tired of this and debugged the issue. Fix is easy:

+++ b/src/main/java/io/github/ultimateboomer/resolutioncontrol/ResolutionControlMod.java
@@ -141,10 +141,12 @@ public class ResolutionControlMod implements ModInitializer {
                Window window = getWindow();
                if (framebuffer == null) {
                        this.shouldScale = true; // so we get the right dimensions
-                       framebuffer = new WindowFramebuffer(
-                                       window.getFramebufferWidth(),
-                                       window.getFramebufferHeight()
-                       );
+                       var w = window.getFramebufferWidth();
+                       var h = window.getFramebufferHeight();
+                       framebuffer = new WindowFramebuffer(w, h);
+
+                       // necessary to trigger initFbo() so that scaling algorithm is set correctly
+                       framebuffer.resize(w, h, MinecraftClient.IS_SYSTEM_MAC);
                        calculateSize();
                }

The issue is the framebuffer is being created without the scaling attributes being applied. A dummy call to resize() causes that to happen via initFbo().

commented

This is wonderful work purple512! Might be easy fix for you but I certainly couldn't figure it out myself with my limited coding knowledge!

I took the time to fork the project and add your changes to fix this issue for 1.18.x, 1.19.x, 1.19.3, 1.19.4 and 1.20.x.
Compiled them and added to the releases.

I added a link to your comment to the top of the README.md to credit you.

commented

Great stuff, hopefully people can test this and make sure I didn't do a dumb.