Monitor refresh setting doesn't work? (Nightly 49416)

Hi, I’m coming back to Haiku after being gone for awhile. Last time I had a Nightly slightly newer than the R1A4 “public” build and had no problems. Everything was running fine and with correct resolutions / refresh rates. Installed latest nightly and it didn’t work anymore.

I had a lenovo desktop computer with (I think it was) a E8500 CPU and a Radeon 4550 card connected via HDMI to an Acer MT230HM TV/Display @1920x1080x60Hz.

I upgraded the computer to a similar lenovo, but with an i5-2500 CPU and stuck that same graphics card into it, connected to the same monitor via the same cable. Turned it on and it started fine (displayed loader) and then black screened. I though, well, might as well start with a clean slate rather than fiddle with settings after upgrading the whole computer… Anyways, downloaded hrev49416, installed via USB disk (worked 100%, formatted partition and made a clean install). Booted up the installation and everything worked fine, albeit at 1280x1024 resolution. So went to Screen and set it to 1920x1080@60Hz, hit Apply and was greeted by a “Not supported” black screen on the display. I went Huh?, though I forgot and tried with 1920x1080@59.9Hz - same happened. While googling on another computer which is the right Hz I figured I’d put that into any 16:9 res to get rid of wonky UI. Went with 1380x768@60Hz and lo and behold it worked… but the monitor displayed its own onscreen UI as 1366x768@75Hz! 75? I didn’t set that to 75… tried changing it to 55 - monitor displayed 75. No matter what I try, it ALWAYS goes to 75Hz.

I believe my problem now is, that my monitor does support FullHD@60Hz, but that Haiku sets it at FullHD@75Hz, which it doesn’t support.

Is there anything I can do (fiddle with config files anywhere?) or am I just stuck waiting for “someone” to fix this in a later build?

Even Haiku, on some chipsets, implements a 1990s-style YUV overlay to speed-up video playback. This feature is not available on VESA, meaning a software YUV-RGB conversion must be performed.

@PulkoMandy:

Yep, you were right. “screenmode” doesn’t work any differently from the applet. But that made me notice a thing, Haiku thinks the mode currently on use is “1360x768, 32bit, 60Hz”, but in actuality my display is running at 1360x768 @75Hz. So the setting DOES have an effect, but apparently some code ignores it :slight_smile:

Other weird thing was when I tried rebooting in “safe video mode”. I hit space at the start, selected 1280x1024, 32 from the menu, hit “continue booting” and was treated to radeon_hd powered 1360x768 @75Hz display mode when the system booted… so something ignored the “safe video mode” completely :slight_smile:

I’ve yet to try blacklisting the radeon_hd driver and trying with VESA. And yes, I know there’s no performance “hit” from using the VESA one. I was using it previously when I tried R1A4 the first time with a nVidia card. But at least back then and with that card, it wouldn’t let me use my full resolution and that’s why I changed to this Radeon, which worked perfectly back then.

EDIT: Tried blacklisting radeon_hd, and like I guessed: it did work perfectly, but I’m limited to 1280x960 or 1280x1024 resolution, no higher. Which is sad.

EDIT2: Just confirming here also (already posted to the bug report) that without changing anything (except boot partition) from the system, everything works normally like it should when system is booted to R1A4. I can set 1920x1080 resolution without problems and it stays at 60Hz when selected in the Screen applet.

There is a “screenmode” command line application which you can use to change video modes, and even set custom modelines. However, your issue probably is on the driver side, and if the refresh rate slider in screen prefs doesn’t work, then this probably won’t work better.

VESA supports whatever video modes your video card manufacturer decided to add in the VESA BIOS. Unfortunately, most manufacturer stick with the classic resolutions up to 1280x1024, but you may be the lucky owner of a better VESA BIOS with high resolution modes. It is worth a try, at least. In Haiku, there is no performance difference between VESA and the other drivers.

There is a closed ticket for what you’re describing #8011.

I updated to 49421, nothing changed.

I read through syslog and funnily enough at least in the top the correct resolutions and correct refreshrates are detected, but under “Supported Future Video Modes”.

I’ll go file a bug at the tracker, hopefully isn’t a difficult one :slight_smile:

@vidrep:
While similar, I don’t think that one’s that related - as in, I can boot with no problems, only the refresh rate is “wrong”.

For anyone that wants to: Here’s a “tail -n 200 syslog” exactly after I tried to change to 1920x1080 resolution and it returned to the last working res (1360x768 in this case).

http://pastebin.com/RgqUtb0B

@waddlesplash:
This does work, however, I don’t even need to do that, since the 1280x1024@75Hz works, so does 1360x768@75Hz, and these are with the radeon_hd driver. If I enable VESA, I don’t think I can get 1920x1080@60Hz (at least I don’t remember getting that before, one of the reasons I have this particular Radeon card on this computer)

@kallisti5:
I can do all of those, but don’t need to. The radeon_hd driver works perfectly with every other resolution than FullHD. (with HDMI cable.) Even though everything else DOES work, do you still want me to go through that procedure and post the logs, or can I just normally boot into Haiku and find those logs? Or perhaps go to Screen -> Select the FullHD res, let it black out, restore previous setting (it does this automaticall in 15s, as you know) and then locate the logs?

To clarify: system does boot and everything works perfectly if I don’t enable 1920x1080 resolution (which I’d LIKE to do, since that’s my monitor’s native resolution, plus it DID work before). I don’t need to boot in safe mode or anything.

I just noticed that the “Refresh Rate” setting in the Screen applet does exactly nothing. No matter WHAT I choose in that dropdown menu, the refresh rate is always the same (depends on the resolution, 1024x768 is 100Hz, 1280x1024 and 1360x768 are @75Hz. I don’t know what 1920x1080 is, since my monitor doesn’t support the refresh rate Haiku sets it at. Unfortunately I don’t have any other screens that I could test it.)

Because nobody suggested it, I take it that there isn’t any config file that I could edit and put in the correct refresh rate values that my monitor DOES support. Funny thing, the Screen applet correctly identifies my monitor’s make and model (Acer MT230HM), but incorrectly identifies the size… (it’s a 24" inch TV, but Screen applet sees it as a 28.9" monitor…)

tl;dr: radeon_hd driver works perfectly with all other resolutions, just that the “refresh rate” setting does have NO effect on ANYTHING.

Q: Does VESA currently support 1920x1080@60Hz? I’d settle for that since this isn’t a production computer, just for testing and goofing, it doesn’t need the accelerated performance, but I’d like for it to have the correct resolution…

EDIT: Typos. Also, thanks for the replies, it’s good to see the community is still alive :slight_smile:

EDIT2: The same computer dualboots into Xubuntu, and everything works there, I just checked and the settings are 1920x1080 and 60,0Hz. This SHOULD be the default Haiku sets up, according to the Screen applet, but apparently it does not. Somehow Haiku sets the wrong refresh rate on my monitor.

[quote=AnttiV]@waddlesplash:
This does work, however, I don’t even need to do that, since the 1280x1024@75Hz works, so does 1360x768@75Hz, and these are with the radeon_hd driver. If I enable VESA, I don’t think I can get 1920x1080@60Hz (at least I don’t remember getting that before, one of the reasons I have this particular Radeon card on this computer)[/quote]

Ah, OK, that makes sense.

It could be a mode setting bug.

Please do the following if you can:

  • Boot with card enabled
  • Once system is booted with black screen, hold ctl+alt+delete for 10 seconds (or until system rebboots)
  • Boot haiku again, but this time hold shift at boot (or press the space bar quickly just before the splash appears
  • Select fail-safe video mode from menu, continue booting
  • Find the /var/log/syslog and /var/log/syslog.old files and submit a bug via trac (http://dev.haiku-os.org)

HDMI is working, however it has been a while since i’ve tried it on a HD 4xxx card.

Maybe blacklist the Radeon driver and try VESA? (Or just enable "failsafe video mode at boot time – hit spacebar before the Haiku logo appears).

[quote=AnttiV]@NoHaikuForMe:
Ah, I didn’t even think of that… but it makes sense. No, the Radeon definitely isn’t HDMI 1.4 compatible… I’d be surprised if it was 1.1… :stuck_out_tongue: The display might be, but I’m not sure. The cable on the other hand 99% sure is. If I have an older cable lying around, I’d might try if that’s actually the problem. The display might not advertise “unsupported” modes, if connected via a cable that doesn’t support it. It’s worth a shot anyway :slight_smile:

The thing is, I would like to replace the card, but since it isn’t a “mission critical” machine (and is a low-profile case to boot), I don’t have the budget to get another card. Also that would still leave the bug in. So I’ll keep this machine like that at least for the foreseeable future, in case I need to get some data of it. I highly doubt my machine is the only one having this problem - getting it fixed should probably benefit other users also.[/quote]

HDMI cables are not active (ordinarily, of course as with any cable you can buy expensive long distance repeaters which are powered and thus active) components. So neither the display nor the card can tell whether your cable came free with a box of cereal in 2007 or is a $100 “Cinema fidelity” cable some sucker purchased yesterday from a hi-fi store.

The TV claims to be HDMI 1.3, I was mistaken earlier, it was version 1.3 which introduced the higher permissible pixel clock. So probably this TV can handle the modeline it proposes, but your Radeon cannot. The correct fix is for the Haiku drivers to be updated to comprehend this rule.

I dare say you are correct that this would fix things for other people too, not just you.

Your Radeon 4550 almost certainly doesn’t do HDMI 1.4 or newer. So, the maximum pixel clock is 165MHz. Haiku chooses a 172MHz modeline, which can’t be implemented with a 165MHz pixel clock, so you get a “Not supported” screen.

The mistake is in Haiku’s radeon driver, as you’d expect. The driver should reject the impossible 172MHz modeline in favour of a nearby reduced blanking modeline, as you’ve seen modern X.org drivers do. If an option to try unsupported pixel clocks is included (which I wouldn’t advise) it should definitely not be the default.

The display itself may well implement HDMI 1.4 (or indeed HDMI 2.0) and thus a faster pixel clock. If so it has every reason to advertise this modeline in case a device prefers that, but unless you want to replace your graphics card (and possibly all cables) that’s no comfort to you.

@NoHaikuForMe:
Ah, I didn’t even think of that… but it makes sense. No, the Radeon definitely isn’t HDMI 1.4 compatible… I’d be surprised if it was 1.1… :stuck_out_tongue: The display might be, but I’m not sure. The cable on the other hand 99% sure is. If I have an older cable lying around, I’d might try if that’s actually the problem. The display might not advertise “unsupported” modes, if connected via a cable that doesn’t support it. It’s worth a shot anyway :slight_smile:

The thing is, I would like to replace the card, but since it isn’t a “mission critical” machine (and is a low-profile case to boot), I don’t have the budget to get another card. Also that would still leave the bug in. So I’ll keep this machine like that at least for the foreseeable future, in case I need to get some data of it. I highly doubt my machine is the only one having this problem - getting it fixed should probably benefit other users also.

If anyone wants to follow this more, there’s bunch of more information and stuff available at the tracker: https://dev.haiku-os.org/ticket/12221

Updating this thread also: Issue still exist with new (hrev49548) build and completely different computer: Radeon HD3650 & BenQ 21" FullHD display.