Generic support for arbitrary screen resolutions
Cameron Cawley (3514) 156 posts |
One of the nice features of the Raspberry Pi version of RISC OS is that it can support arbitrary resolutions beyond what’s supported by the monitor when mode changes are disabled. As I understand it, this is accomplished by configuring the monitor to use its native resolution and creating a Dispmanx layer in the resolution that RISC OS requests. Given that the necessary functionality seems to be exposed by the overlay API, is this something that could be provided in a generic way for other video drivers with overlay support? |
Jan Rinze (235) 368 posts |
How nice to see this request. |
David Gee (1833) 268 posts |
I think this relies on the presence of Any Mode which, it has been said, works only on Pi and RPCemu. |
Chris Hall (132) 3554 posts |
The Raspberry Pi will (if disable_mode_changes is in CMDLINE/TXT) use the GPU to talk to the monitor at its native resolution and scale whatever RISC OS is producing. |
Jan Rinze (235) 368 posts |
disable_mode_changes is in CMDLINE/TXT does work. |
Jon Abbott (1421) 2641 posts |
Yes, its how the ADFFS 2.84 public beta GraphicsV driver upscales legacy modes. The caveat is that Overlay support isn’t in all the drivers and the ones that do have it cause all kinds of issues like stuck overlays and hard-locks when bank-switching.
Overlays don’t offer much in the way of configuration, I’m not even sure if the GPU supports scaling methods on layers. You can switch the screen upscaler method though: Add “scaling_kernel=8” to CONFIG/TXT for nearest neighbour. |
Sveinung Wittington Tengelsen (9758) 237 posts |
- or just use any old CRT Multisynch monitors which can handle them no problemo. |
Jan Rinze (235) 368 posts |
@Jon: Thanks for the “scaling_kernel=8” tip! @Sveinung: Not sure which old CRT Multi-sync monitor would have HDMI input. My old multi-sync actually has RGB analog input. Do you use a HDMI to RGB analog converter or something like that? |
Andy S (2979) 504 posts |
There are multisync LCD monitors too. They can be made to work with an HDMI to DVI adapter. |
Rick Murray (539) 13806 posts |
Most monitors claiming to be multisync are actually only capable of synchronising to a specific number of different signals (such as VGA, SVGA, etc). This differentiates them from the older monitors that worked with a fixed sync rate (such as those 50Hz monitors for MODE 12, 13, 15 etc). It does not mean the monitors will cope with whatever crap you throw at them. So a multisync monitor isn’t that different to a modern LCD monitor, except that it will have a smaller set of supported resolutions because of its age, and may or may not be fussier about the timing of the signals that it accepts. The situation is much better with the Pi, as you can get the GPU to output a nice stable signal to your monitor always in its native resolution, and then scale everything to fit it. This is useful for operating systems such as RISC OS that have a long history of offering weird resolutions due to extremely programmable video hardware. By adding solutions such as AnyMode, it’ll even bash those older interlaced modes into something that’ll fit, though as has been noted, there’s not a lot of chance of getting 2, 4, and 16 colour modes properly working on hardware that plain doesn’t support such a thing.
Don’t you mean HDMI to VGA? That’s what I use here with my Pi devices and a couple of boot sale flat panel displays (both being 1280×1024). |
David J. Ruck (33) 1629 posts |
My 27" AOC 1440p monitor has 2x HDMI, Display Port and VGA inputs, and because of that it will handle a range of resolutions. I tried it with my old Iyonix just before I sold it, using VGA port because that would be the last machine I had with a VGA interface. I’d expected to have to set RISC OS to a pretty standard resolution for it to work, but it was still using the MDF up for my old 24" Iiyama CRT at 2048×1536. I was very surprised to find it not only displayed a picture but it was the correct 4:3 aspect ratio, and was readable despite the odd scaling. Oh and incidentally the Iyonix could also drive it at it’s proper resolution of 2560×1440 in 16M colours. |
Colin Ferris (399) 1809 posts |
What’s the Max res the Iyonix could run too? |
David J. Ruck (33) 1629 posts |
That would depend on what the graphics card was used. I only had the VGA drivers and the highest I could go was 2560×1920 with my monitor. You don’t normally get such high resolutions with VGA output, it just goes to show they artificially limit the Windows drivers. |