Expectation for nvidia-driver-390 graphical performance.

Hello there!

First post so please forgive any faux pas that I may run into.

I'm trying to set up an old but decent spec'd laptop to run FreeBSD well. I've got a few HP Elitebook's from 2012 that are all similar spec, except one runs Mac OS, one runs Linux, etc. etc. Anyway I want one to run FreeBSD and run it well as I want to use it for some Ruby on Rails web development.

Currently it has an NVIDIA Quadro 1000M which is satisfied by the nvidia-driver-390 package, all well and good, but... it doesn't look that great. It has a Full HD screen but the scaling makes everything large and ungainly, as if it was a 1280x800 resolution screen. There's no DPI scaling in MATE settings or anything like that, so not sure why it's doing that. I can live with that particular issue.

The main complaint is that watching Youtube or any video streaming results in quite a lot of tearing and vsync issues, it's quite choppy and doesn't look great. It's definitely using the correct (nvidia-modeset) kernel module and X is set up using the nvidia-xconfig utility.

Don't get me wrong, I'm thankful that it works at all and that we have great systems like FreeBSD, GNU etc. to explore, play with and on, and work with, especially for what I pay for it, so in that respect I'm very happy with how far I've gotten with it, but I was hoping the video wouldn't be so choppy if at all possible.

Would I be better off ripping out the NVIDIA and sticking in an AMD FirePro M4000 card? I've heard AMD graphics card performance is "very good" - does that mean no tearing when watching videos, or is that to be expected with any card?

Please set my expectations. Thank you!

Specs:-
HP Elitebook 8560w (also tested on HP Elitebook 8760w, with quad core)
Intel 2nd Gen (Sandy Bridge, i think) i5 Dual Core.
16GB DDR3 SDRAM
SATA SSD
NVIDIA Quadro 1000M (MXM chip interface)
 

Attachments

  • xorg.conf
    1.6 KB · Views: 65
nVIDIA user here, hardware GT 630, x11/nvidia-driver-470 driver

First, don't use a xorg.conf single file. Use multiple files. For details see FreeBSD Handbook, chapter 5.4. Xorg Configuration.

It has a Full HD screen but the scaling makes everything large and ungainly, as if it was a 1280x800 resolution screen. There's no DPI scaling in MATE settings or anything like that,
Try setting the DPI from a Xorg configuration file

I had the problem with to small fonts. Setting the DPI corrected the issue.

/usr/local/etc/X11/xorg.conf.d/nvidia.conf
Code:
Section "Device"
    Identifier "Card0"
    Driver     "nvidia"
    Option     "UseEdidDpi" "False"
    Option     "DPI" "96 x 96"
EndSection

The main complaint is that watching Youtube or any video streaming results in quite a lot of tearing and vsync issues, it's quite choppy and doesn't look great. It's definitely using the correct (nvidia-modeset) kernel module and X is set up using the nvidia-xconfig utility.
Have you checked /var/log/Xorg.0.log if it's really the case?

I had also a slight screen-tearing problem, web streaming and local video files. Web searching found

which eliminated screen-tearing on my system. Instead per user configuration, I've created a sysem-wide configuration (copied from ~/.nvidia-settings-rc and modified for Xorg):

/usr/local/etc/X11/xorg.conf.d/nvidia-screen.conf
Code:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 460.73.01
#
# To correct NVIDIA screen tearing. File modified by administrator xxxx.


Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
 
Have you checked /var/log/Xorg.0.log if it's really the case?
Yep, see attached. Forum seems to restrict log files, changed extension to .txt.

I made your changes in the config files, thanks! The DPI settings and video tearing is much better.

Watching videos still has some stutters, however. especially noticeable as the sound clicks to realign itself. Have you also experienced that?
 

Attachments

  • Xorg.0.txt
    28.2 KB · Views: 55
Watching videos still has some stutters, however. especially noticeable as the sound clicks to realign itself. Have you also experienced that?
No, I did not. My systems issue wasn't that severe. No clicking in sound at all. The applied configuration eliminated all screen-tearing, the video playback is smooth since then. I'm not sure what else could be a possible cause on your system.

Maybe try the AMD FirePro M4000 with graphics/drm-kmod. Looking at the specs of the card, it has a little better performance values.
 
No, I did not. My systems issue wasn't that severe. No clicking in sound at all. The applied configuration eliminated all screen-tearing, the video playback is smooth since then. I'm not sure what else could be a possible cause on your system.

I transferred the installation SSD over to the other laptop which has a Quadro 3000M, quad-core, and generally improved hardware and the popping/glitching issue persists. Doing some thinkering with my brainbox, wondering if that particular issue might be related to PulseAudio rather than the graphics itself (although it does cause the video to stutter slightly, perhaps as resync).

I will adventure down that particular rabbit-hole.

For now, the screen-tearing and then DPI issue is resolved, so thank you for your assistance.
 
In a PC in the office I have a nvidia card which also uses the 390 driver (GT 5xx, I don't remember the exact model), I didn't apply any particular settings and I never noticed issues with video playback. It's running a KDE Plasma desktop.

You mentioned using MATE. Do you use its built-in display compositor or a standalone one (picom...)? I've had a disappointing experience (tearing, etc.) with MATE's own compositor every time I tried it. You can try disabling it and running x11-wm/picom instead (try at least both picom --backend glx --vsync and picom --legacy-backends --backend glx --vsync). Using x11-wm/xfce4-wm (which has a better built-in compositor) instead of the MATE WM is also worth a try ( xfwm4 --replace).
 
Using x11-wm/xfce4-wm (which has a better built-in compositor) instead of the MATE WM is also worth a try ( xfwm4 --replace).

Interesting, I replaced the window manager using the command above and it does seem a tiny bit smoother now. It also said I was using Metacity (Marco).

What's the easiest way to make the xfwm4 change permanent? .xinitrc file?

picom also seems to be in the "Startup Applications" section, I've changed the command to
Bash:
picom --legacy-backends --backend glx --vsync
as you suggest, also.
 
I don't know MATE enough to recommend you a way to change the default WM but you can follow suggestions in https://wiki.archlinux.org/title/MATE#Use_a_different_window_manager

If you want to keep using xfwm4 and are satisfacted by its performance, no need for picom. Of course you can use xfwm4 with its compositor disabled and run picom on top of that, but the result should be quite similar to marco + picom.

If you want to use picom, rather than setting options in its startup command you may prefer using a configuration file (~/.config/picom.conf) where you can set all the options you want. Picom offers lots of configuration options, my suggested command line is just a basic configuration to test how it behaves. The only thing which needs to be specified on the startup command (not possible in the configuration file) is --legacy-backends if that's what you want.

This is for example the picom.conf of the computer I'm writing from (which has neither MATE nor a nvidia GPU):
Code:
backend = "glx" ;

vsync = true ;

shadow = true ;

wintypes:
{
        dnd     = { shadow = false } ;
        tooltip = { shadow = false } ;
        utility = { shadow = false } ;
} ;

shadow-exclude =
[
        " (class_g = 'firefox') && (window_type = 'popup_menu') " ,
        " (class_g = 'thunderbird') && (window_type = 'popup_menu') " ,
        " class_g = 'MPlayer' "
] ;
 
Thanks all, I've tested extensively and it appears to be working well.

I've actually gotten a bit carried away today, installed Steam via linux-steam-utils which works, but 3D games fail with a Segmentation fault. (Specifically the Linux editions of Portal and Tomb Raider)

I get the same issue if I try to run native Xmoto. Neverball works fine though. Further research suggests this is a fault with the driver itself.

No big deal, can play those games on other operating systems, just wanted to stretch the legs of the new FreeBSD build =)
 
A few months later...

I have a few machines on FreeBSD 13.2 now. Two identical laptops, one with a Radeon, the other with a NVIDIA, and a couple of similar desktops with graphics cards that I can swap out and mix and match.

I've noticed an issue that appears to be common is a noticeable "cough" or stutter (maybe freezes for 0.1 of a second) that Chromium does, frequency once every couple of minutes.

The machines also run hotter.

I'm going to try recompiling Chromium from ports and see where that gets me, as I'm using the pkg binaries at the minute.

Not very scientific or conclusive, I might as well have told you that I read it in my crystal ball, but worth noting.... probably... not :)
 
I'm going to try recompiling Chromium from ports and see where that gets me, as I'm using the pkg binaries at the minute.
It will get you one giant circle.
Packages are built from ports. So unless you change port options for Chromium a compilation will yield exactly the same results.
 
It will get you one giant circle.
Packages are built from ports. So unless you change port options for Chromium a compilation will yield exactly the same results.
Not necessarily, my CPU might not have newer features which may force different build options.

I'm going to try Google Chrome on the Linuxulator first. Mostly for fun.
 
Back
Top