PDA

View Full Version : HTPC linux hardware gotchas


avuton
12-28-2008, 02:46 PM
Hi,

Looking to finish off a HTPC for myself, now I need the key piece.

I'm looking for a passive (no fan) video card with native HDMI and video/audio that is (fully) linux compatible. So here's a few questions I have for this buying process. Any information is appreciated. Also, pretend there's no budget for this project. ;)

1. I prefer open source drivers (don't we all?), but will that come at the expense of broken video at 1080p (since nvidia's drivers now have the purevideo stuff that looks really tempting).

2. What do I need to know about HDMI audio? I know there is some hardware support through ALSA, but it appears to be touch and go. Some of the cards I have found with passive fans thus far don't appear in google searches for linux and ALSA.

3. HDMI video: What do I need to know about this? At this time, I make the assumption that it's pretty much plug and play; is there anything special I need to know about plugging it up to a TV?

chithanh
12-28-2008, 03:04 PM
I think your best bet is an RS690 or RS740 IGP, which is fully supported (2D, 3D and video acceleration) by open source drivers and supports HDMI audio with the latest radeonhd drivers (http://libv.livejournal.com/17763.html).

deanjo
12-28-2008, 03:19 PM
The RS690 has a hard enough time playing SD stuff. It absolutely chokes on HD stuff. If you want a nice solution for HD playback you should be looking at a nvidia 8200 based board that fully supports vdpau and then you can couple that with a low power variant of AMD cpu. Even the lowest sempron has no issues with HD playback on a high bitrate, 1080p x264/vc-1 video.

avuton
12-28-2008, 04:29 PM
Well, in that case, another question is, and based on this article (http://www.phoronix.com/scan.php?page=article&item=942&num=1), would it be wise to get a Radeon HD 2600PRO if I could find a passive one, use fgrlx and wait for the open source drivers to improve? Or maybe a Radeon HD 4550 (http://www.newegg.com/Product/Product.aspx?Item=N82E16814125250)?

val-gaav
12-28-2008, 07:58 PM
The RS690 has a hard enough time playing SD stuff. It absolutely chokes on HD stuff.
My rs890 handles HD stuff just fine, with the recent anti tearing patch it's in fact perfect.
That said wheter it has hard time playing this or that is not depending on the card it depends on the CPU.

If you want a nice solution for HD playback you should be looking at a nvidia 8200
you totally missed the point he would prefer open drivers ?

That said Avuton if anything the last thing I would recommend id using fglrx. First it had tearing/ corruption ... then even though they seemed to fix it, it still had small lags every 10 sec on my rs690 ... Fglrx is really like playing russian roullete with each release. They add A and fix B just to break C and D that was working in previous release.

The choice you have here is :

a) using a VDPAU + not that good CPU + nvidia binary blob.

b) if u want open source drivers the CPU should be powerfull because there is no technolgy like VDPAU in the open drivers currently. I think intel IGP would be also good here. Though the big question here is the TV out HDMI support. I really don't know from experience how it works. What I can tell you is my Turion x2 1700 + rs690 has no problem with playing HD content (h.264 mkvs with 1280x720 resolution)

BTW RS740 is AFAIK not supported by any open driver (by supported I mean 3d, Xv) so it's not good choice.

bridgman
12-28-2008, 08:14 PM
val-gaav, it's actually the 780 which does not have 3d/xv in the open drivers today. The 740 is very similar to a 690 in terms of driver code so if support for something is missing today relative to a 690 it should just need the addition of some device IDs.

deanjo
12-28-2008, 11:45 PM
My rs890 handles HD stuff just fine, with the recent anti tearing patch it's in fact perfect.
That said wheter it has hard time playing this or that is not depending on the card it depends on the CPU.

you totally missed the point he would prefer open drivers ?

No I did not miss that point, preference does not mean exclusively. You did seem to miss his point about 1080p though. Even a lowly 7200GS with blobs runs circles around the 690G for image quality , color and can squeak out 1080p playback on the same cpu that the 690g chokes on (granted you give up hdmi in the case with the 7200GS and use a dvi/spdif combo instead) and it doesn't even use vdpau.

val-gaav
12-29-2008, 02:26 AM
val-gaav, it's actually the 780 which does not have 3d/xv in the open drivers today. The 740 is very similar to a 690 in terms of driver code so if support for something is missing today relative to a 690 it should just need the addition of some device IDs.
Doh .... naming of AMD cards can really be confusing at times ...

No I did not miss that point, preference does not mean exclusively. You did seem to miss his point about 1080p though. Even a lowly 7200GS with blobs runs circles around the 690G for image quality , color and can squeak out 1080p playback on the same cpu that the 690g chokes on (granted you give up hdmi in the case with the 7200GS and use a dvi/spdif combo instead) and it doesn't even use vdpau.
1080p is not that much bigger then 1280x720 ... Then again as I said all I can tell is that h.264 mkvs with 1280x720 resolution work just fine for me.

deanjo
12-29-2008, 04:24 AM
Doh .... naming of AMD cards can really be confusing at times ...


1080p is not that much bigger then 1280x720 ... Then again as I said all I can tell is that h.264 mkvs with 1280x720 resolution work just fine for me.

1080p does require a fairly substantial boost in system requirements over 720p especially as the bitrates gets higher. Don't forget your rendering over twice the number of pixels in 1080p (2,073,600 vs 921,600). Try running 1080p at bluray bitrates and you will be greeted with about 5-10 fps on a 690g in linux even with a dual core proc helping out. Even with hardware acceleration in windows, playing a high bitrate source on a 690g such as a bluray will result in dropping of frames.

mirak63
12-29-2008, 09:50 AM
you should know that open source drivers, nvidia and ati as well are not able to enable 24p (24hz or multiple, whatever) on the TV that supports it.
Proprietary drivers can, and when you have 23.976 frame per seconds videos to display, like almost all movies and tv shows, this is very nice to not have any stutter or judder.

avuton
12-30-2008, 11:20 PM
you should know that open source drivers, nvidia and ati as well are not able to enable 24p (24hz or multiple, whatever) on the TV that supports it.
Proprietary drivers can, and when you have 23.976 frame per seconds videos to display, like almost all movies and tv shows, this is very nice to not have any stutter or judder.

OK, from my understanding that doesn't affect someone watching NTSC/Pal movies (non-drm Bluray or the such, right?)

Thanks again;

bridgman
12-31-2008, 12:12 AM
EDIT - starting over ;)

Looks like 1080p/24 is supported by :

- BluRay disks (where 247Hz output from player to display is common),

- ATSC (North American digital TV standard) using H.254, although since most digital TVs only handle MPEG2 there probably won't be that much 1080p/24 broadcasts for a while

- some DVDs (I didn't know this before, not sure if any players will output 24Hz from an appropriate DVD)

NTSC and PAL broadcasts do not have a 24 Hz option. Not sure about non-US digital TV standards but will check.

Anyways, unless you have a very spiffy-new 120 Hz TV it's not clear that you get a benefit by sending 24 Hz to the TV and having the TV do 24-60 Hz vs having the 24-60 Hz conversion done in the player application and outputting directly at 60 Hz.

mirak63
12-31-2008, 08:24 AM
Anyways, unless you have a very spiffy-new 120 Hz TV it's not clear that you get a benefit by sending 24 Hz to the TV and having the TV do 24-60 Hz vs having the 24-60 Hz conversion done in the player application and outputting directly at 60 Hz.

First HDTVs were just "24p compatible" wich ment that when input was 24p they where doing the 3:2 pulldown conversion, from 2fps to 60hz or 50hz.

However some recent TVs, of about half a year old are doing real 24p and display in a refresh rate multiple of 24hz. My TV supports it, and you really get a judder free playback.
My TV is not 120hz, I think it just physically supports 48hz, it's a Sony KDL W4000. However the proprietary drivers tricks Xorg to believe he is really in 24hz.
Most TV shows I downloaded (since I don't live in US) have a frame rate of 23.976, and I guess they are broadcasted like this.

If you don't think there is a noticeable difference between a real 24hz playback and 3:2 pulldown to 60hz, then you probably did not experienced it. The difference is really noticeable on large flat panels. That's not just marketing, it removes stutters.

Opensource drivers will probably supports it one day, when more people will request it, and once developpers realise how benefical it is to the quality of the playback, and also how the proprietary drivers are triggering it.

bridgman
12-31-2008, 12:33 PM
Yeah, the 48Hz native refresh option is the interesting one. I have heard about it for a while but when I try to find confirmation I didn't have much luck. There seems to be a lot of debate about how the KDL W4000 actually works, but I agree that 24Hz input doubled to 48Hz refresh seems the most likely.

Given that 48 Hz is so close to 50 Hz maybe this is something which makes sense in PAL and SECAM markets but not so much in NTSC-land. I'll have to look at European TVs and see what I find there (actually I guess I'll start with the model you identified ;)).

I agree completely that if the TV can display at 48 Hz without doing any more than frame doubling or interpolation then having a 24 Hz output from the card is definitely something useful.

EDIT - many of the Google hits on 48 Hz display of 24 Hz material lead back to this thread :D

bridgman
01-01-2009, 07:12 AM
My TV is not 120hz, I think it just physically supports 48hz, it's a Sony KDL W4000.

OK, I did some more digging. It seems pretty likely that your set *is* 120Hz.

The 3000 series took 24p and displayed at 48 but most indications are that the W4000 series displays at 120 Hz.

Nice :D

mirak63
01-01-2009, 09:27 AM
OK, I did some more digging. It seems pretty likely that your set *is* 120Hz.

The 3000 series took 24p and displayed at 48 but most indications are that the W4000 series displays at 120 Hz.

Nice :D

The european version of w4000 is different and i think not 120hz at all.
If it was just a edid limitation it would be nice, but for europe models i doubt it is.

bridgman
01-01-2009, 09:35 AM
According to all the posts I saw the Euro model (W4000) and the NA model (W4100) are identical internally. It's always hard to be sure though...

Anyways, the one clear thing is that all we need is 24-ish Hz output, no need to worry about 48 or 72.

bitnick
01-01-2009, 11:14 AM
What stops the OSS drivers from outputting at 24 Hz? Without knowing any specifics, it seems strange that the X server/xrandr would reject those specific modes?

I know there are "soft" limits to vertical and horizontal refresh rates (to prevent people from destroying very old monitors?), but those can (could?) be circumvented with the VertRefresh and HorizSync options in the Monitor section of xorg.conf.

bridgman
01-01-2009, 11:50 AM
Honestly, I think the "big problem" is that the issue hasn't come up before so nobody has really looked at it -- and most of the devs are off doing other things today (or are still hung over ;)). There's probably a 50/50 chance that the current drivers can be made to work with the right combination of settings, and if that doesn't work the changes would probably be small.

mirak63
02-17-2009, 01:16 PM
hi,

have any update on this bridgman

TechMage89
02-17-2009, 03:18 PM
Is this just a matter of plugging a modeline into randr? Or do there need to be modifications to the modesetting code?

I'm not one of the fortunate ones with a 120hz TV, so I can't check this myself.

mirak63
02-17-2009, 05:26 PM
you don't need a 120hz tv, mine is not

just changing modelines doesn't work, it seems Xorg or the open source drivers resist to beeing put into 24hz

I would say it's about the driver, since nvidia and fglrx manage to do 24p

agd5f
02-17-2009, 07:43 PM
you don't need a 120hz tv, mine is not

just changing modelines doesn't work, it seems Xorg or the open source drivers resist to beeing put into 24hz

I would say it's about the driver, since nvidia and fglrx manage to do 24p

It should respect the modeline you specify. There's no code (in radeon at least) to not accept 24p modes. What happens when you try and specify one with xrandr?

xrandr --newmode <24p modeline>
xrandr --addmode <output> <24p mode name>
xrandr --output <output> --mode <24p mode name>

e.g. (change the output and mode bits to your setup),
xrandr --newmode "1920x1080_24.00" 63.00 1920 1976 2160 2400 1080 1083 1088 1098 -hsync +vsync
xrandr --addmode DVI-0 "1920x1080_24.00"
xrandr --output DVI-0 --mode "1920x1080_24.00"

mirak63
02-18-2009, 05:51 AM
It should respect the modeline you specify. There's no code (in radeon at least) to not accept 24p modes. What happens when you try and specify one with xrandr?

xrandr --newmode <24p modeline>
xrandr --addmode <output> <24p mode name>
xrandr --output <output> --mode <24p mode name>

e.g. (change the output and mode bits to your setup),
xrandr --newmode "1920x1080_24.00" 63.00 1920 1976 2160 2400 1080 1083 1088 1098 -hsync +vsync
xrandr --addmode DVI-0 "1920x1080_24.00"
xrandr --output DVI-0 --mode "1920x1080_24.00"


I tried by adding modelines directly in xorg.conf and it didn't worked.
At best Xorg and xvidtune showed it was in 48hz, however it was like it was in 50hz, with juddering during playback.

Kano
02-18-2009, 06:05 AM
That's normal, some TVs use build-in optimizations, also integrated pull-down, so 24 hz is not better than 60 hz. In the cinema you don't see more than 24 pics, but a little trick is used there. You see 2x or 3x the same pic but with black inbetween. That increases the rate from 24 to 72. That trick with black inbetween pictures use some 200 hz models. Don't think using an extra cheap tv with 24 hz will give better results, that's mainly pure optimization in the tv itself how good it will look.

mirak63
02-18-2009, 06:12 AM
That's normal, some TVs use build-in optimizations, also integrated pull-down, so 24 hz is not better than 60 hz. In the cinema you don't see more than 24 pics, but a little trick is used there. You see 2x or 3x the same pic but with black inbetween. That increases the rate from 24 to 72. That trick with black inbetween pictures use some 200 hz models. Don't think using an extra cheap tv with 24 hz will give better results, that's mainly pure optimization in the tv itself how good it will look.

my tv is doing real 24p, so does the nvidia and ati proprietary drivers

we don't care how the TV displays it, what we know is that it needs 24hz input, and that proprietary drivers are doing something that the opensource drivers can't

Kano
02-18-2009, 06:13 AM
Truth is something else than what you think to know.

mirak63
02-18-2009, 07:23 AM
Truth is something else than what you think to know.

If you believe opensource drivers can do it then just show us how.

Any input is welcome, but at this point, theorical asumptions on hardware you don't own doesn't help much.

Even if the TV is doing tricks, obviously and you see that when you do real tests, you need something to enable them, and bridgman said the trick is that the video card output 24hz.

Now for some reason, nv and radeon drivers don't allow me to be in 24hz.

By the way, I guess it's you who banned me from #mplayer-dev ...

agd5f
02-18-2009, 10:00 AM
I tried by adding modelines directly in xorg.conf and it didn't worked.
At best Xorg and xvidtune showed it was in 48hz, however it was like it was in 50hz, with juddering during playback.

It sounds like something wasn't configured properly. Can you try the method I suggested or pastebin your xorg log with the modeline you tried to use?

mirak63
02-18-2009, 05:38 PM
actually I run windows since hd4850 video drivers sucks
however I think I posted modelines I used here already
I will let you know

mirak63
03-01-2009, 10:51 AM
It should respect the modeline you specify. There's no code (in radeon at least) to not accept 24p modes. What happens when you try and specify one with xrandr?

xrandr --newmode <24p modeline>
xrandr --addmode <output> <24p mode name>
xrandr --output <output> --mode <24p mode name>

e.g. (change the output and mode bits to your setup),
xrandr --newmode "1920x1080_24.00" 63.00 1920 1976 2160 2400 1080 1083 1088 1098 -hsync +vsync
xrandr --addmode DVI-0 "1920x1080_24.00"
xrandr --output DVI-0 --mode "1920x1080_24.00"


I tried something else with proprietary drivers, I didn't came back to opensource drivers since they don't have vdpau.

$ gtf 1920 1080 50

# 1920x1080 @ 50.00 Hz (GTF) hsync: 55.60 kHz; pclk: 141.45 MHz
Modeline "1920x1080_50.00" 141.45 1920 2032 2232 2544 1080 1081 1084 1112 -HSync +Vsync

$ xrandr --newmode 1920x1080i50_5 141.45 1920 2032 2232 2544 1080 1081 1084 1112 -HSync +Vsync Interlace
$ xrandr --addmode default 1920x1080i50_5
$ xrandr --output default --mode 1920x1080i50_5

This should enable 1080i50, however the screen only goes to 1080p
This happens with the nvidia driver.

The problem is similar with custom modelines through xrandr and the radeon,radeonhd,nv drivers.

I didn't tried for proprietary driver in xorg.conf modelines, but for opensources drivers it doesn't work in xorg.conf


$ gtf 1920 1080 24
# 1920x1080 @ 24.00 Hz (GTF) hsync: 26.28 kHz; pclk: 61.81 MHz
Modeline "1920x1080_24.00" 61.81 1920 1944 2136 2352 1080 1081 1084 1095 -HSync +Vsync

$ xrandr --newmode 1920x1080p24 61.81 1920 1944 2136 2352 1080 1081 1084 1095 -HSync +Vsync
$ xrandr --addmode default 1920x1080p24
$ xrandr --output default --mode 1920x1080p24

this one works with proprietary driver


edit:
I tried, and none of that works on the nv driver, even by adding modes to xorg.conf

$ xrandr --output default --mode 1920x1080p24

xrandr: Configure crtc 0 failed

agd5f
03-01-2009, 12:01 PM
I can only help debug this on the open source radeon driver. I'm not familiar with the nv driver or nv hardware.