Skip to content

Resolution adjustments - #68

Open
RobertCochran wants to merge 5 commits into
PC-Logix:main-MC1.21.1from
RobertCochran:resolution-adjustments
Open

Resolution adjustments#68
RobertCochran wants to merge 5 commits into
PC-Logix:main-MC1.21.1from
RobertCochran:resolution-adjustments

Conversation

@RobertCochran

@RobertCochran RobertCochran commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

Multi-item PR to make using higher tier screens nicer in OpenOS:

  • Limit OpenOS to 80x25 at boot time. T3 screens can be mildly uncomfortable to use at full resolution on a 1080p screen at moderate GUI scale, and T4 is even worse. It is still possible - just as before - to use the resolution program to set the resolution manually at any time. Undid this, as there was disagreement about this being the correct solution for the downscaling issues it was trying to fix. We're gonna try solving this a different way later.
  • Add a new GPU driver function - gpu.capabilityLimiter() - to quickly determine if there is a GPU/screen tier mismatch. Returns "gpu" if screen tier > GPU tier, "screen" if GPU tier > screen tier, or nil if they are matched in capability. This is theoretically something you could have already done, but it required grovelling through computer.getDeviceInfo() and knowing the precise values of the 'product name' for each GPU and APU and their max resolution widths, and would break if any of these predicating assumptions ever changed (unlikely, but still annoying).
  • Enhance the resolution program to take a --max parameter to tell you the maximum supported system resolution, and using the new driver feature, whether or not you have a bottleneck in your hardware setup. It just plain wasn't able to do this before; it could only set a chosen resolution or return the current resolution. More necessary now that OpenOS no longer boots to the display's max resolution and thus max resolution needs to be more discoverable, but was otherwise an (IMO) sorely needed QoL enhancement.

})

@Callback(direct = true, doc = """function():string or nil -- Return which of GPU or screen is limiting display capabilities, if either""")
def capabilityLimiter(context: Context, args: Arguments): Array[AnyRef] =

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not married to this name, and honestly half-think it needs a better one. Suggestions welcome.

@asiekierka asiekierka Aug 23, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cheesy, but, like, getTierConstraintSource()?

Comment on lines +441 to +444
// FIXME: Assumes that GPU/screen tiers do not differ only by color depth,
// which is *currently* valid but may not be in the future. It would be
// better to just use the tier values directly, but I couldn't figure out
// how to access the physical screen from the TextBuffer...

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This implementation is slightly gross in that comparing GPU and screen tiers directly would make it work correctly in all cases without making assumptions about how graphics capabilities scale in the mod. If we can figure out how to make that happen, that'd be a much better implementation.

This reverts commit 9a6d95c.
We're going to figure out how to solve the resolution downscaling issues in a
different way that doesn't involve reducing the resolution on the computer side.
@RobertCochran
RobertCochran force-pushed the resolution-adjustments branch from 7a04067 to b4f738d Compare August 23, 2026 06:45
@RobertCochran

RobertCochran commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator Author

<rebased and force-pushed to resolve merge conflicts>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants