Kodi Community Forum
Linux HOW-TO achieve perfect playback at 23.97 or 59.94 Hz with NVIDIA GPU hardware - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Tips, tricks, and step by step guides (https://forum.kodi.tv/forumdisplay.php?fid=110)
+--- Thread: Linux HOW-TO achieve perfect playback at 23.97 or 59.94 Hz with NVIDIA GPU hardware (/showthread.php?tid=70068)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36


- RelicUK - 2010-07-11

hiya there, wonder if you guys can help me, i get these:

# --- Modes in ModePool for PANASONIC-TV (DFP-0) ---
# "nvidia-auto-select" : 1280 x 720 @ 50.0 Hz
# "1920x1080" : 1920 x 1080 @ 60.1 Hz Interlace
# "1920x1080_60i" : 1920 x 1080 @ 60.1 Hz Interlace
# "1920x1080_60i_0" : 1920 x 1080 @ 59.94/60 Hz (CEA-861B Format 5)
# "1920x1080_50i" : 1920 x 1080 @ 50.0 Hz Interlace
# "1280x720" : 1280 x 720 @ 50.0 Hz
# "1280x720_50" : 1280 x 720 @ 50.0 Hz
# "1280x720_60" : 1280 x 720 @ 60.0 Hz
# "1280x720_60_0" : 1280 x 720 @ 59.94/60 Hz (CEA-861B Format 4)
# "720x576" : 720 x 576 @ 50.0 Hz
# "720x576_50" : 720 x 576 @ 50.0 Hz
# "720x576_50i" : (1440)x 576 @ 50 Hz Interlace (CEA-861B Format 22)
# "720x480" : 720 x 480 @ 59.9 Hz
# "720x480_60" : 720 x 480 @ 59.9 Hz
# "720x480_60i" : (1440)x 480 @ 59.94/60 Hz Interlace (CEA-861B Format 7)
# "640x480" : 640 x 480 @ 59.94/60 Hz Interlace (CEA-861B Format 1)
# "640x480_60" : 640 x 480 @ 59.94/60 Hz Interlace (CEA-861B Format 1)
# --- End of ModePool for PANASONIC-TV (DFP-0): ---

I want to run in 720p...
I have added "1280x720_60_0" for 59.94 but i have no option for 24 Huh
How do i add this mode? do i have to add a modeline?
Can someone explain how i do this please? i have no clue.

I have a panasonic PX60 if thats any use to anyone

Cheers


- xanadu1979 - 2010-07-12

RelicUK Wrote:hiya there, wonder if you guys can help me, i get these:

# --- Modes in ModePool for PANASONIC-TV (DFP-0) ---
# "nvidia-auto-select" : 1280 x 720 @ 50.0 Hz
# "1920x1080" : 1920 x 1080 @ 60.1 Hz Interlace
# "1920x1080_60i" : 1920 x 1080 @ 60.1 Hz Interlace
# "1920x1080_60i_0" : 1920 x 1080 @ 59.94/60 Hz (CEA-861B Format 5)
# "1920x1080_50i" : 1920 x 1080 @ 50.0 Hz Interlace
# "1280x720" : 1280 x 720 @ 50.0 Hz
# "1280x720_50" : 1280 x 720 @ 50.0 Hz
# "1280x720_60" : 1280 x 720 @ 60.0 Hz
# "1280x720_60_0" : 1280 x 720 @ 59.94/60 Hz (CEA-861B Format 4)
# "720x576" : 720 x 576 @ 50.0 Hz
# "720x576_50" : 720 x 576 @ 50.0 Hz
# "720x576_50i" : (1440)x 576 @ 50 Hz Interlace (CEA-861B Format 22)
# "720x480" : 720 x 480 @ 59.9 Hz
# "720x480_60" : 720 x 480 @ 59.9 Hz
# "720x480_60i" : (1440)x 480 @ 59.94/60 Hz Interlace (CEA-861B Format 7)
# "640x480" : 640 x 480 @ 59.94/60 Hz Interlace (CEA-861B Format 1)
# "640x480_60" : 640 x 480 @ 59.94/60 Hz Interlace (CEA-861B Format 1)
# --- End of ModePool for PANASONIC-TV (DFP-0): ---

I want to run in 720p...
I have added "1280x720_60_0" for 59.94 but i have no option for 24 Huh
How do i add this mode? do i have to add a modeline?
Can someone explain how i do this please? i have no clue.

I have a panasonic PX60 if thats any use to anyone

Cheers

I'm not an expert at this stuff, but I think "1280x720_50" is your best bet.


- RelicUK - 2010-07-12

xanadu1979 Wrote:I'm not an expert at this stuff, but I think "1280x720_50" is your best bet.

I tried this as in my config files looks like:

Modes "1280x720_60_0" "1280x720_50"

but no matter which video i play when i press pause and press 'o' to it always displays the FPS as 59.94

Is there no possible way i can get 29.97? A modeline i can add perhaps?

Cheers


- Goga777 - 2010-07-12

Quote:The XBMC forum contains a lot of posts with messy xorg.conf settings, using options that are enabled by default, deprecated or unrelated to video playback.
This is all that is needed. Don't use options you don't understand! Explanations to all the options can be found in the NVIDIA drivers manual.
The ModeDebug option makes the nvidia driver print all the available modes to Xorg's log file.

what do you think about of such xorg option ? is it really useful ?

Quote:* Adding 'Option "TripleBuffer" "true"' to the Device section of xorg.conf (following the 'Driver nvidia' line) will allocate more memory buffers to 2D playback (and less to 3D).
Option "TripleBuffer" "True"



- JumJum - 2010-07-12

Goga777 Wrote:what do you think about of such xorg option ? is it really useful ?

From the NVIDIA drivers manual:
Enable or disable the use of triple buffering. If this option is enabled, OpenGL windows that sync to vblank and are double-buffered will be given a third buffer. This decreases the time an application stalls while waiting for vblank events, but increases latency slightly (delay between user input and displayed result).

Also, the triple buffer option used to mess up playback in XBMC. I can't really see what the benefit would be if it works either.


- modern69messiah - 2010-07-14

Script worked like a charm...


- burritoboy9984 - 2010-07-21

Code:
xbmc@XBMCLive:~$ for i in 24 60; do xrandr -r $i; nvidia-settings -q RefreshRate
| grep -o "[0-9][0-9].*Hz"; done
Can't open display

ERROR: The control display is undefined; please run `nvidia-settings --help`
       for usage information.

Can't open display

ERROR: The control display is undefined; please run `nvidia-settings --help`
       for usage information.

Any ideas? I tried just running the script anyways, but only 60 is there. And when I manually try the script, I run into issues with my modes.txt being blank. Sorry for the noobiness, I know I am missing something simple.

Thanks in advance as always!
-Erik


- JumJum - 2010-07-21

burritoboy9984 Wrote:
Code:
xbmc@XBMCLive:~$ for i in 24 60; do xrandr -r $i; nvidia-settings -q RefreshRate
| grep -o "[0-9][0-9].*Hz"; done
Can't open display

ERROR: The control display is undefined; please run `nvidia-settings --help`
       for usage information.

Can't open display

ERROR: The control display is undefined; please run `nvidia-settings --help`
       for usage information.

Any ideas? I tried just running the script anyways, but only 60 is there. And when I manually try the script, I run into issues with my modes.txt being blank. Sorry for the noobiness, I know I am missing something simple.

Thanks in advance as always!
-Erik

I'm guessing you're logged in through ssh or Xorg is not running. Try: export DISPLAY=:0.0 or if Xorg is not running, start it.


- burritoboy9984 - 2010-07-21

That worked!

Code:
xbmc@XBMCLive:~$ for i in 24 60; do xrandr -r $i; nvidia-settings -q RefreshRate
| grep -o "[0-9][0-9].*Hz"; done
Rate 24.0 Hz not available for this size
59.94 Hz
59.94 Hz

So I guess no 24hz for me. Sad

Thanks for your help!
-Erik


- kebirek - 2010-07-22

Script worked perfectly!

Been trying for ages to have XBMC auto switch to 23.97 and 59.94 Hz depending the video. This worked!!!! I can even watch some 50 Hz videos I had that would drop thousands of frames

Thank you!!! Thank you again!


- Tbtf - 2010-07-23

Quote:tj@XBMCLive:~$ for i in 24 60; do xrandr -r $i; nvidia-settings -q RefreshRate | grep -o "[0-9][0-9].*Hz"; done
Rate 24.0 Hz not available for this size
60.00 Hz
60.00 Hz

This is the modes .txt

Quote: --- Modes in ModePool for SANYO LCD (DFP-1) ---
"nvidia-auto-select" : 1280 x 720 @ 60.0 Hz (from: EDID)
"1920x1080" : 1920 x 1080 @ 60.1 Hz Interlace (from: EDID)
"1920x1080_60i" : 1920 x 1080 @ 60.1 Hz Interlace (from: EDID)
"1920x1080_60i_0" : 1920 x 1080 @ 59.94/60 Hz (CEA-861B Format 5) (from: ED$
"1440x480" : 1440 x 480 @ 60.1 Hz Interlace (from: EDID)
"1440x480_60i" : 1440 x 480 @ 60.1 Hz Interlace (from: EDID)
"1280x720" : 1280 x 720 @ 60.0 Hz (from: EDID)
"1280x720_60" : 1280 x 720 @ 60.0 Hz (from: EDID)
"1280x720_60_0" : 1280 x 720 @ 59.94/60 Hz (CEA-861B Format 4) (from: ED$
"1024x768" : 1024 x 768 @ 60.0 Hz (from: EDID)
"1024x768_60" : 1024 x 768 @ 60.0 Hz (from: EDID)
"800x600" : 800 x 600 @ 60.3 Hz (from: EDID)
"800x600_60" : 800 x 600 @ 60.3 Hz (from: EDID)
"720x480" : 720 x 480 @ 59.9 Hz (from: EDID)
"720x480_60" : 720 x 480 @ 59.9 Hz (from: EDID)
"720x480_60i" : (1440)x 480 @ 59.94/60 Hz Interlace (CEA-861B Format 6)$
"640x480" : 640 x 480 @ 59.9 Hz (from: EDID)
"640x480_60" : 640 x 480 @ 59.9 Hz (from: EDID)

xorg.conf file
Quote:Section "Device"
Identifier "nvidia"
Driver "nvidia"
Option "NoLogo" "true"
Option "DynamicTwinView" "false"
Option "FlatPanelProperties" "Scaling = Native"
Option "ModeValidation" "NoVesaModes, NoXServerModes, NoVertRefre$
Option "UseDisplayDevice" "DFP-1"
Option "ModeDebug" "true"
Option "HWCursor" "false"
EndSection

Section "Screen"
Identifier "screen"
Device "nvidia"
SubSection "Display"
Modes "1280x720_60_0"
EndSubSection
EndSection


Any help i am getting jittery playback and some one told me its because i am running 60Hz when the movie is 29.96 Hz


- burritoboy9984 - 2010-07-27

plz don't post the same thing in multiple places. And if you had bothered to read 3 posts above yours, I had the same issue.

-Erik


- danz0l - 2010-08-05

OK i originally did all this manually and had the same issue and I THINK i know the reasons why but here goes on possible solutions.

My TV is a Sharp Aquos 32DH510E which i think is only HD ready and not full HD.

I can get 24hz default working perfectly in 1920x1080 but my problems lay with 60hz or even 50hz not working at that resolution. XBMC switches to these resolutions on detecting 25fps content but the TV states a "NO SIGNAL" response. So I can have 23.976fps playing perfect but no 25fps display at all.

Heres what modes.txt outputted

Code:
#  --- Modes in ModePool for SHARP HDMI (DFP-0) ---
#  "nvidia-auto-select" : 1280 x  720 @  50.0 Hz  
#  "1920x1080"          : 1920 x 1080 @  60.0 Hz  
#  "1920x1080_60"       : 1920 x 1080 @  60.0 Hz  
#  "1920x1080_60_0"     : 1920 x 1080 @ 59.94/60 Hz (CEA-861B Format 16)
#  "1920x1080_50"       : 1920 x 1080 @  50.0 Hz  
#  "1920x1080_24"       : 1920 x 1080 @ 23.97/24 Hz (CEA-861B Format 32)
#  "1920x1080_60i"      : 1920 x 1080 @ 59.94/60 Hz (CEA-861B Format 5)
#  "1920x1080_50i"      : 1920 x 1080 @ 50 Hz Interlace (CEA-861B Format 20)
#  "1400x1050"          : 1400 x 1050 @  60.0 Hz  
#  "1400x1050_60"       : 1400 x 1050 @  60.0 Hz  
#  "1360x768"           : 1360 x  768 @  60.0 Hz  
#  "1360x768_60"        : 1360 x  768 @  60.0 Hz  
#  "1280x1024"          : 1280 x 1024 @  60.0 Hz  
#  "1280x1024_60"       : 1280 x 1024 @  60.0 Hz  
#  "1280x720"           : 1280 x  720 @  50.0 Hz  
#  "1280x720_50"        : 1280 x  720 @  50.0 Hz  
#  "1280x720_60"        : 1280 x  720 @  60.0 Hz  
#  "1280x720_60_0"      : 1280 x  720 @ 59.94/60 Hz (CEA-861B Format 4)

And heres my xorg.conf

Code:
Section "Device"
        Identifier "nvidia"
        Driver  "nvidia"
        Option  "NoLogo"              "true"
        Option  "DynamicTwinView"     "false"
        Option  "FlatPanelProperties" "Scaling = Native"
        Option  "ModeValidation"      "NoVesaModes, NoXServerModes, NoVertRefreshCheck, NoHorizSyncCheck"
        Option  "UseDisplayDevice"    "DFP-1"
        Option  "ModeDebug"           "true"
    Option  "HWCursor"            "false"
EndSection

Section "Screen"
        Identifier      "screen"
        Device          "nvidia"
        SubSection      "Display"
                Modes "1920x1080_60_0" "1920x1080_24"
        EndSubSection
EndSection

Section "Extensions"
        Option  "Composite"           "false"
EndSection

I've run manually and using the script with the same results.

So what i'm assuming is that being its only HD ready and not FULL HD i can't use the higher refresh rates above 24hz at 1920x1080 even though its telling me those rates are available, is that correct ?

So if this is true then the best i can expect is 1280x720 at 60hz or should i go for 1280x720 at 59.94hz for all content ? Or would it be possible to use modelines and if so where can i find settings for this tv or advice on how to use modelines ?

Any help really appreciated.


- danz0l - 2010-08-05

running startx -- -logverbose 6 gives me

Code:
(II) Aug 05 19:16:43 NVIDIA(0):   Validating Mode "1920x1080":
(II) Aug 05 19:16:43 NVIDIA(0):     1920 x 1080 @ 24 Hz
(II) Aug 05 19:16:43 NVIDIA(0):     Mode Source: EDID
(II) Aug 05 19:16:43 NVIDIA(0):       Pixel Clock      : 74.16 MHz
(II) Aug 05 19:16:43 NVIDIA(0):       HRes, HSyncStart : 1920, 2558
(II) Aug 05 19:16:43 NVIDIA(0):       HSyncEnd, HTotal : 2602, 2750
(II) Aug 05 19:16:43 NVIDIA(0):       VRes, VSyncStart : 1080, 1084
(II) Aug 05 19:16:43 NVIDIA(0):       VSyncEnd, VTotal : 1089, 1125
(II) Aug 05 19:16:43 NVIDIA(0):       H/V Polarity     : +/+
(II) Aug 05 19:16:43 NVIDIA(0):     Mode (1920 x 1080) is too large for DFP Native Resolution
(II) Aug 05 19:16:43 NVIDIA(0):         (Max: 1280 x 720); mode will not be allowed to scale
(II) Aug 05 19:16:43 NVIDIA(0):         to the DFP's native resolution.
(II) Aug 05 19:16:43 NVIDIA(GPU-0):     BestFit Scaled and BestFit AspectScaled are identical;
(II) Aug 05 19:16:43 NVIDIA(GPU-0):         collapsing BestFit AspectScaled.
(II) Aug 05 19:16:43 NVIDIA(GPU-0):     BestFit Centered and BestFit Scaled are identical;
(II) Aug 05 19:16:43 NVIDIA(GPU-0):         collapsing BestFit Scaled.
(II) Aug 05 19:16:43 NVIDIA(GPU-0):     BestFit Centered         1920x1080
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Horizontal Taps        0
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Vertical Taps          0
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Base SuperSample       x1
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Base Depth             32
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Distributed Rendering  1
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Overlay Depth          32
(II) Aug 05 19:16:43 NVIDIA(0):     Mode is valid.
(II) Aug 05 19:16:43 NVIDIA(0):
(II) Aug 05 19:16:43 NVIDIA(0):   Validating Mode "1920x1080":
(II) Aug 05 19:16:43 NVIDIA(0):     1920 x 1080 @ 50 Hz
(II) Aug 05 19:16:43 NVIDIA(0):     Mode Source: EDID
(II) Aug 05 19:16:43 NVIDIA(0):       Pixel Clock      : 74.25 MHz
(II) Aug 05 19:16:43 NVIDIA(0):       HRes, HSyncStart : 1920, 2448
(II) Aug 05 19:16:43 NVIDIA(0):       HSyncEnd, HTotal : 2492, 2640
(II) Aug 05 19:16:43 NVIDIA(0):       VRes, VSyncStart : 1080, 1084
(II) Aug 05 19:16:43 NVIDIA(0):       VSyncEnd, VTotal : 1094, 1124
(II) Aug 05 19:16:43 NVIDIA(0):       H/V Polarity     : +/+
(II) Aug 05 19:16:43 NVIDIA(0):       Extra            : Interlace
(II) Aug 05 19:16:43 NVIDIA(0):     Mode (1920 x 1080) is too large for DFP Native Resolution
(II) Aug 05 19:16:43 NVIDIA(0):         (Max: 1280 x 720); mode will not be allowed to scale
(II) Aug 05 19:16:43 NVIDIA(0):         to the DFP's native resolution.
(II) Aug 05 19:16:43 NVIDIA(GPU-0):     BestFit Scaled and BestFit AspectScaled are identical;
(II) Aug 05 19:16:43 NVIDIA(GPU-0):         collapsing BestFit AspectScaled.
(II) Aug 05 19:16:43 NVIDIA(GPU-0):     BestFit Centered and BestFit Scaled are identical;
(II) Aug 05 19:16:43 NVIDIA(GPU-0):         collapsing BestFit Scaled.
(II) Aug 05 19:16:43 NVIDIA(GPU-0):     BestFit Centered         1920x1080
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Horizontal Taps        0
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Vertical Taps          0
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Base SuperSample       x1
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Base Depth             32
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Distributed Rendering  1
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Overlay Depth          32
(II) Aug 05 19:16:43 NVIDIA(0):     Mode is valid.
(II) Aug 05 19:16:43 NVIDIA(0):
(II) Aug 05 19:16:43 NVIDIA(0):   Validating Mode "1920x1080":
(II) Aug 05 19:16:43 NVIDIA(0):     1920 x 1080 @ 60 Hz
(II) Aug 05 19:16:43 NVIDIA(0):     Mode Source: EDID
(II) Aug 05 19:16:43 NVIDIA(0):       Pixel Clock      : 74.18 MHz
(II) Aug 05 19:16:43 NVIDIA(0):       HRes, HSyncStart : 1920, 2008
(II) Aug 05 19:16:43 NVIDIA(0):       HSyncEnd, HTotal : 2052, 2200
(II) Aug 05 19:16:43 NVIDIA(0):       VRes, VSyncStart : 1080, 1084
(II) Aug 05 19:16:43 NVIDIA(0):       VSyncEnd, VTotal : 1094, 1124
(II) Aug 05 19:16:43 NVIDIA(0):       H/V Polarity     : +/+
(II) Aug 05 19:16:43 NVIDIA(0):       Extra            : Interlace
(II) Aug 05 19:16:43 NVIDIA(0):     Mode (1920 x 1080) is too large for DFP Native Resolution
(II) Aug 05 19:16:43 NVIDIA(0):         (Max: 1280 x 720); mode will not be allowed to scale
(II) Aug 05 19:16:43 NVIDIA(0):         to the DFP's native resolution.
(II) Aug 05 19:16:43 NVIDIA(GPU-0):     BestFit Scaled and BestFit AspectScaled are identical;
(II) Aug 05 19:16:43 NVIDIA(GPU-0):         collapsing BestFit AspectScaled.
(II) Aug 05 19:16:43 NVIDIA(GPU-0):     BestFit Centered and BestFit Scaled are identical;
(II) Aug 05 19:16:43 NVIDIA(GPU-0):         collapsing BestFit Scaled.
(II) Aug 05 19:16:43 NVIDIA(GPU-0):     BestFit Centered         1920x1080
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Horizontal Taps        0
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Vertical Taps          0
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Base SuperSample       x1
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Base Depth             32
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Distributed Rendering  1
(II) Aug 05 19:16:43 NVIDIA(GPU-0):       Overlay Depth          32
(II) Aug 05 19:16:43 NVIDIA(0):     Mode is valid.

Now i'm guessing this is telling me the real issue

Code:
Mode (1920 x 1080) is too large for DFP Native Resolution
(II) Aug 05 19:16:43 NVIDIA(0):         (Max: 1280 x 720); mode will not be allowed to scale


tried setting the modeline with the following
Code:
modeline "1920x1080_60" 74.18 1920 2008 2052 2200 1080 1084 1094 1124 +hsync +vsync

But that resulted in xwindows not being able to start.


- LB06 - 2010-08-06

Thanks! Your script worked, sort of. I'm running a server install with only the bare minimums for XBMC. So no GDM or nvidia-settings for me. I installed nvidia-settings, but I worked around GDM by just running `X` and pressing ctrl+c as needed Smile.

I already had everything running, but your script works better, because it doesn't add any custom modelines, at least not for me. I had some custom modelines configured, pretty much using the same way you compile your ModePool (using X debug output). My main problem was that my TV's EDID defines 48Hz as the lower bound, which is ridiculous of course. Basically what I did was disable EDID entirely and set my own modelines.

But you just override this 'restriction' and use the actual EDID info, which is much more convenient when switching displays for instance. Tnx mate!