Opened 9 years ago
Last modified 9 years ago
#12221 new bug
Refresh rate -setting has no effect. radeon_hd card.
Reported by: | anttiv | Owned by: | kallisti5 |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Drivers/Graphics/radeon_hd | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | x86-64 |
Description
I have a radeon 4x card (RV710), connected via HDMI to an Acer MT230HM display. When I go and change the resolution and refresh rate, only the resolution -part has any effect, refreshrate changes according to .. something. No matter what I set it at any resolution, it's 100Hz @ 1024x768, 75Hz @ 1360x768 and 1280x1024. When I change to 1920x1080 (And have 60Hz selected in the dropdown), my display goes to "Not Supported" until it resets to the last display mode (which obviously works). My display is capable at 1920x1080@60Hz, which it'll happily do with the same components and connections when dualbooted into Xubuntu 15.x
To clarify: I can boot and everything works - sort of. I can not choose the refresh rate on any resolution.
I used to have the same card working in an earlier Nightly (sadly I forgot which one) and R1A4.
Attachments (4)
Change History (20)
by , 9 years ago
Attachment: | drivers.txt added |
---|
comment:1 by , 9 years ago
comment:2 by , 9 years ago
Component: | Audio & Video → Drivers/Graphics/radeon_hd |
---|---|
Keywords: | refresh rate radeon removed |
Milestone: | Unscheduled → R1 |
Owner: | changed from | to
comment:3 by , 9 years ago
Just confirming that with the same system (with nothing changed but boot partition) booted to R1A4, everything is working perfectly. I can set videomode 1920x1080@60Hz via Screen applet (using the radeon_hd driver) and it works.
comment:4 by , 9 years ago
oddly, everything looks "ok" from the syslogs:
================================ 1920x1080 2938 KERN: radeon_hd: radeon_set_display_mode: pll 1 selected for connector 1 2939 KERN: radeon_hd: pll_setup_flags: CRTC: 0, PLL: 1 2940 KERN: radeon_hd: pll_adjust: table 1.2 2941 KERN: radeon_hd: pll_adjust: was: 172798, now: 172790 2942 KERN: radeon_hd: pll_compute_post_divider: vco = 600000 2943 KERN: radeon_hd: pll_compute_post_divider: postDiv = 3 2944 KERN: radeon_hd: pll_compute: using minimum reference divider 2945 KERN: radeon_hd: pll_compute: performing fractional feedback calculations 2946 KERN: radeon_hd: pll_compute: Calculated pixel clock of 172800 based on: 2947 KERN: radeon_hd: pll_compute: referenceFrequency: 27000; referenceDivider: 5 2948 KERN: radeon_hd: pll_compute: feedbackDivider: 96; feedbackDividerFrac: 0 2949 KERN: radeon_hd: pll_compute: postDivider: 3 2950 KERN: radeon_hd: pll_compute: pixel clock 172790 was changed to 172800 2951 KERN: radeon_hd: pll_set: table 1.3 2952 KERN: radeon_hd: pll_set: set adjusted pixel clock 172800 (was 172798) 2953 KERN: radeon_hd: display_crtc_ss 2954 KERN: radeon_hd: display_crtc_set_dtd called to do 1920x1080 2955 KERN: radeon_hd: display_crtc_fb_set: Framebuffer at: 0x0 2956 KERN: radeon_hd: display_crtc_fb_set: Set SurfaceAddress High: 0x0 2957 KERN: radeon_hd: display_crtc_fb_set: Set SurfaceAddress: 0x0 2958 KERN: radeon_hd: display_crtc_fb_set: fb: 1920x1080 (32 bpp) 2959 KERN: radeon_hd: display_crtc_fb_set: fb pitch: 1920 2960 KERN: radeon_hd: display_avivo_crtc_load_lut: crtcID 0 3001 KERN: radeon_hd: D1CRTC_STATUS Value: 0x20002 3002 KERN: radeon_hd: D2CRTC_STATUS Value: 0x10009 3003 KERN: radeon_hd: D1CRTC_CONTROL Value: 0x410311 3004 KERN: radeon_hd: D2CRTC_CONTROL Value: 0x400310 3005 KERN: radeon_hd: D1GRPH_ENABLE Value: 0x1 3006 KERN: radeon_hd: D2GRPH_ENABLE Value: 0x1 3007 KERN: radeon_hd: D1SCL_ENABLE Value: 0x0 3008 KERN: radeon_hd: D2SCL_ENABLE Value: 0x0 3009 KERN: radeon_hd: D1CRTC_BLANK_CONTROL Value: 0x0 3010 KERN: radeon_hd: D2CRTC_BLANK_CONTROL Value: 0x0 ================================ 1360x768 3033 KERN: radeon_hd: radeon_set_display_mode: pll 1 selected for connector 1 3034 KERN: radeon_hd: pll_setup_flags: CRTC: 0, PLL: 1 3035 KERN: radeon_hd: pll_adjust: table 1.2 3036 KERN: radeon_hd: pll_adjust: was: 85478, now: 85470 3037 KERN: radeon_hd: pll_compute_post_divider: vco = 600000 3038 KERN: radeon_hd: pll_compute_post_divider: postDiv = 7 3039 KERN: radeon_hd: pll_compute: using minimum reference divider 3040 KERN: radeon_hd: pll_compute: performing fractional feedback calculations 3041 KERN: radeon_hd: pll_compute: Calculated pixel clock of 85628 based on: 3042 KERN: radeon_hd: pll_compute: referenceFrequency: 27000; referenceDivider: 5 3043 KERN: radeon_hd: pll_compute: feedbackDivider: 111; feedbackDividerFrac: 0 3044 KERN: radeon_hd: pll_compute: postDivider: 7 3045 KERN: radeon_hd: pll_compute: pixel clock 85470 was changed to 85628 3046 KERN: radeon_hd: pll_set: table 1.3 3047 KERN: radeon_hd: pll_set: set adjusted pixel clock 85628 (was 85478) 3048 KERN: radeon_hd: display_crtc_ss 3049 KERN: radeon_hd: display_crtc_set_dtd called to do 1360x768 3050 KERN: radeon_hd: display_crtc_fb_set: Framebuffer at: 0x0 3051 KERN: radeon_hd: display_crtc_fb_set: Set SurfaceAddress High: 0x0 3052 KERN: radeon_hd: display_crtc_fb_set: Set SurfaceAddress: 0x0 3053 KERN: radeon_hd: display_crtc_fb_set: fb: 1360x768 (32 bpp) 3054 KERN: radeon_hd: display_crtc_fb_set: fb pitch: 1408 3055 KERN: radeon_hd: display_avivo_crtc_load_lut: crtcID 0 3096 KERN: radeon_hd: D1CRTC_STATUS Value: 0x20002 3097 KERN: radeon_hd: D2CRTC_STATUS Value: 0x10009 3098 KERN: radeon_hd: D1CRTC_CONTROL Value: 0x410311 3099 KERN: radeon_hd: D2CRTC_CONTROL Value: 0x400310 3100 KERN: radeon_hd: D1GRPH_ENABLE Value: 0x1 3101 KERN: radeon_hd: D2GRPH_ENABLE Value: 0x1 3102 KERN: radeon_hd: D1SCL_ENABLE Value: 0x0 3103 KERN: radeon_hd: D2SCL_ENABLE Value: 0x0 3104 KERN: radeon_hd: D1CRTC_BLANK_CONTROL Value: 0x0 3105 KERN: radeon_hd: D2CRTC_BLANK_CONTROL Value: 0x0
comment:5 by , 9 years ago
could you get the mode-line of 1920x1080 under linux?
grep Modeline /var/log/Xorg.0.log
comment:6 by , 9 years ago
Can you see from that what refresh rate it should be applying? I'm asking for it to do 60Hz on both occasions, but I know for sure it does 75Hz on the 1360x768 one. To add mode the 'screenmode' command shows 60Hz on the 1360x768, although my display then comes up as 75Hz.
Yes I can do that. I can get you any information from R1A4 also (where everything IS working).
comment:7 by , 9 years ago
Here's paste of the output from that under Xubuntu 15:
Do note though: Although under Xubuntu that resolution is working, I need to force my display (since it is a TV) to "Underscan", or the image area is wrong.
Under Haiku R1A4, I can keep it on "Auto" and it works fine when using 1920x1080 resolution.
comment:8 by , 9 years ago
Keep in mind that R1A4 was likely using vesa and not radeon_hd for your card... so any tests on R1A4 are irrelevant.
With vesa, if your display wants a modeline that the card's vesa bios ROM isn't aware of mode setting will never work. If it did work under vesa you lucked out ;-)
comment:9 by , 9 years ago
I never managed to get 1920x1080 under VESA, sadly. (because that would be enough for me, Haiku's VESA driver is quite good for my purposes.)
Anyway, under R1A4 (as I have it installed here, on a different partition), listimage | grep radeon produces:
1022 /boot/system/add-ons/kernel/drivers/dev/graphics/radeon_hd 0x81136000 0x8113c000 0 0 1039 /boot/system/add-ons/accelerants/radeon_hd.accelerant 0x22a5000 0x22bf000 0 0
so I *think* the radeon_hd driver is in use here.
comment:10 by , 9 years ago
interesting... there were some changes to how Haiku calculates best modelines (outside of radeon_hd)... I wonder if that was a factor.
Here are the 1920x1080 modelines your display is offering over EDID:
Modeline "1920x1080"x60.0 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -hsync +vsync (67.1 kHz e) Modeline "1920x1080"x0.0 74.25 1920 2558 2602 2750 1080 1084 1089 1125 +hsync +vsync (27.0 kHz e) Modeline "1920x1080"x0.0 74.25 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (33.8 kHz e)
We're choosing the first one because it is the closest to 60.
Lets see which one Linux is choosing:
grep _active /var/log/Xorg.0.log
comment:11 by , 9 years ago
Ok, here's the output:
[ 29.824] (II) RADEON(0): h_active: 1280 h_sync: 1344 h_sync_end 1472 h_blank_end 1664 h_border: 0 [ 29.824] (II) RADEON(0): v_active: 768 v_sync: 771 v_sync_end 778 v_blanking: 798 v_border: 0 [ 29.824] (II) RADEON(0): h_active: 1360 h_sync: 1424 h_sync_end 1536 h_blank_end 1792 h_border: 0 [ 29.824] (II) RADEON(0): v_active: 768 v_sync: 771 v_sync_end 777 v_blanking: 795 v_border: 0 [ 29.824] (II) RADEON(0): h_active: 1920 h_sync: 2008 h_sync_end 2052 h_blank_end 2200 h_border: 0 [ 29.824] (II) RADEON(0): v_active: 1080 v_sync: 1084 v_sync_end 1089 v_blanking: 1125 v_border: 0 [ 29.824] (II) RADEON(0): h_active: 1920 h_sync: 2448 h_sync_end 2492 h_blank_end 2640 h_border: 0 [ 29.824] (II) RADEON(0): v_active: 540 v_sync: 542 v_sync_end 547 v_blanking: 562 v_border: 0 [ 29.824] (II) RADEON(0): h_active: 1920 h_sync: 2008 h_sync_end 2052 h_blank_end 2200 h_border: 0 [ 29.824] (II) RADEON(0): v_active: 540 v_sync: 542 v_sync_end 547 v_blanking: 562 v_border: 0 [ 29.824] (II) RADEON(0): h_active: 1280 h_sync: 1720 h_sync_end 1760 h_blank_end 1980 h_border: 0 [ 29.824] (II) RADEON(0): v_active: 720 v_sync: 725 v_sync_end 730 v_blanking: 750 v_border: 0 [ 29.824] (II) RADEON(0): h_active: 1280 h_sync: 1390 h_sync_end 1430 h_blank_end 1650 h_border: 0 [ 29.824] (II) RADEON(0): v_active: 720 v_sync: 725 v_sync_end 730 v_blanking: 750 v_border: 0
comment:12 by , 9 years ago
yup. Linux is choosing the last mode line. i'd bet if you set the first mode line on Linux you would get the same result as Haiku.
Now... why Linux chooses the last one.. no clue. However if the display advertises mode-lines that it doesn't support, that would be a bug in the tv's firmware.
comment:13 by , 9 years ago
That would be weird for the display to do alright :)
Anyway, if these are any help, I made pastebins of syslog from R1A4 (obviously on the same hardware), where everything is working:
pastebin.com/5KCqG4UK
and a 'grep MODE: syslog' if that'll help:
pastebin.com/H7Ptf08X
comment:14 by , 9 years ago
I've been reading a *bunch* of syslogs.. :) And installing/re-installing a bunch of nightlies... These are all x86-gcc2-hybrid builds (As is the R1A4), so the problem appears also there, and not only on that one x86-64 build.
Anyway, all builds that I tested: hrev47002 - working hrev47204 - working hrev47253 - working hrev47259 - working hrev47314 - not working hrev47380 - not working hrev47479 - not working hrev47902 - not working
so something happened betweehn 259 and 314 that broke the refreshrate selection (at least on my system). As you well know hrev47270 included 'Rework PLL picking code' and there's some radeon stuff edited in 260-ish, plus a modification to display modes in 304.
I can't download any builds between 259 and 314, but I'd bet a great deal that one of those (I'd bet hrev47270 ) is the one "responsible".
Unfortunately I have no idea how to fix it, now why it is happening here. I just know that on 259 everything (regarding to resolutions and refresh rates, obviously) works fine and on 314 it doesn't anymore.
I can provide any number of logs and outputs you require, just tell me what you want (And if it's obscure, maybe tell me how to get it :) I know my way around the normal *nix installations and have basic knowledge of where Haiku stores stuff, but I'm still a user, not a developer. [sadly, I'd like to be, but hey..]. Anyways, although I don't exactly NEED this functionality, I'd still like to have it and really want to help Haiku in any way).
So, anything you need, just tell. Also noteworthy: this is a testing/goofing around machine which isn't really used in anything important (Minecraft server being the most :D ) so if you need me to run any programs, I'm up for it. I don't need to worry if something happens to this system, I can always just reinstall everything. (heck, I've been wiping and installing multiple versions of Haiku just today...)
comment:15 by , 9 years ago
Just to confirm / Add info: Issue still exist with entirely different computer running hrev49548 (x86_gcc2_hybrid)
Radeon HD3650, BenQ 21" 1920x1080-capable monitor. Intel Core2 CPU.
Can provide logs and outputs from any needed Haiku builds, or relevant logs from a linux bootable usb (computer in question only has Haiku installed, no other OSes).
comment:16 by , 9 years ago
Please provide logs. The chances that it is the exact same issue on a completely different card / monitor are minimal.
listimage (drivers)