how to enable 24p 24hz on HD TVs with radeon, radeonhd ? (and nv)
I need a way to enable 24p on my Sony KDL W4000 fullhd TV.
This mode appears on the fglrx driver (wich is not stable) and works, but I tried to force modelines in xorg.conf and I can't get what I want.
Last edited by mirak63; 12-17-2008 at 03:27 AM.
It can be a bit confusing to to set up randr 1.2 configs in some cases. you may find this page useful:
I already tried using xrandr --newmode and it doesn't work either
the xrandr command isn't able to give the correct refresh rate and resolutions anyway
What version of xrandr are you using? Some old versions didn't support --newmode. Also, when you create a new mode you also have to add it to an output with --addmode and then switch to it. So an example sequence would be:
Originally Posted by mirak63
xrandr --newmode "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
xrandr --addmode DVI-0 "1024x768_60.00"
xrandr --output DVI-0 --mode "1024x768_60.00"
I tried on ubuntu Hardy
I added the mode, but it seemed to indicate at best 48hz, and the screen wasn't diplaying that he was in 24p, and it clearly wasn't in fact.
48hz would be ok anyway since it's a multiple of 24hz, but it didn't seemed to be right.
The problem seems to be that Xorg believe from the edid of the screen that the screen have a 48hz vertical range minimum, and discard any setting below this.
Last edited by mirak63; 12-16-2008 at 12:03 PM.
I think the screen *does* have a 48Hz minimum. It's hard to imagine a screen that supports 24Hz. It just needs to play 24FPS correctly, not blink 24 times per second :P
A good CRT that supports 24p for example would do this at 96Hz.
Last edited by RealNC; 12-16-2008 at 08:01 PM.
A lot of TVs have frame buffers for deinterlacing and frame rate conversion. In those cases you might be able to scan in at 24 fps and have the TV display at its native frequency. Without a frame buffer, I imagine the driver would have to pick a multiple that worked, eg 48 or 72 Hz, and double- or triple-up the frames. This is one of the reasons 120 Hz displays are interesting - that's the first fixed frequency that can handle both 30/60 fps TV and 24 fps film.
No mater how the TV handles it, it can be fed by a 24hz signal, where the TV put itself in a 24p mode and the computer vidéo card outputs 24 frames per seconds. (23.976 actually)
The question is how to trigger this mode.
Does radeon, radeonhd, and nv open source drivers kind of safe block the frequency below the native value of the TV which would be something like 48hz ?
The fglrx driver and the nvidia proprietary driver are able to force 24hz or 25hz, no matter what frequency is reported by Xorg.
Now maybe it could be interesting to gather the timings and modelines used by fglrx and nvidia when they are in such a mode. I don't know how to do that.
I think I will cross post on nvidia open source driver part, since I have this issue on both.
Last edited by mirak63; 12-17-2008 at 03:31 AM.
Yes 120hz is interesting, but if tv can physically do 48hz 50hz and 60hz it's fine. (In europe the standart is 50hz, so 120hz alone is not enough).
Originally Posted by bridgman
About the proprietary driver, it seems that on linux through xrandr or windows, when you switch to 24hz mode, the display server believes the logical maximum frefresh rate is 24 frames per seconds.
Therefore, when you use the sync to vblank option, on windows the games are really limited to a maximum of 24 frames per seconds. And on linux it's the same, because you clearly see everything is choppy.
There is a LOGICAL limitation.
What I don't know is
- if the video card really outputs 24hz and the TV is able to take a 24hz signal then do the conversion in it's frame buffer to match 48hz, 72hz, 96hz, or 120hz, depending on the model, newer models can, but olders are mostly 24p compatible and are doing a 3:2 pulldown to 60hz.
- if the video card is outputing 48hz, but makes believe to the display manager (for exemple Xorg) that it can't physically display faster than 24 frames per seconds.
However what is strange is that trying to create a modeline with a 48hz refresh rate doesn't seem to trigger the 24p mode of the TV, or even really be in 48hz, because I see judder and sttuters in 23.976 videos that doesn't happen when the 24hz mode is triggered.
You probably would need an HDTV to realise how the proprietary handle this.
What I am 100% sure is that right now, I can only get judder free 23.976fps (24p) videos with the nvidia and ati proprietary drivers.
I did some digging on this. Looks like feeding a multiple of 24 Hz won't work - you need to output at 24 (23.whatever) for the TV to recognize it properly. I imagine fglrx had to be coded to ignore the EDID info for the specific case of 24p and the open drivers will probably need something similar (although I believe there is already an option to ignore EDID, not sure if that will be enough).