Announcement

Collapse
No announcement yet.

Nvidia driver plays havoc with character sizes

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Nvidia driver plays havoc with character sizes

    This is a problem I have had with 15.10 and 14.04.

    When I install the Nvidia driver and reboot, all the character sizes are enormous. The window outlines, the little icons at the top RH corner, the screen backgrounds are all fine. But characters are huge. Yet, the default character size is 9.

    Does X11 use a special software library to manage window contents?

    On 15.10, I managed to uninstall Nvidia and then it's ok.

    My card is a GeForce GT 740 and I am on 50 Hz, if that should be a possible source of problem. I would not think so, since only characters seem to be infected.
    'I must have a prodigious quantity of mind; it takes me as much as a week sometimes to make it up.' Mark Twain

    #2
    You have INFECTED (infecté) fonts? What next - Zombies?!?! LOL. I know you meant affecté fonts, but I couldn't resist.

    I'm using 15.04 with nvidia-355 and a GTX780 and have never seen this issue. Sounds like your DPI isn't being detected properly. I assume you're using the Nouveau drivers?

    Do this, open a terminal and type;

    xdpyinfo | egrep "reso|dim"

    Then save the results. Than re-install the nvidia drivers and do it again, and compare and post here.

    Please Read Me

    Comment


      #3
      Originally posted by oshunluvr View Post
      You have INFECTED (infecté) fonts? What next - Zombies?!?! LOL. I know you meant affecté fonts, but I couldn't resist.
      Ha! I think I met "affected", but "infected" is not bad.

      I will try that tomorrow morning. Thanks for the tip.
      'I must have a prodigious quantity of mind; it takes me as much as a week sometimes to make it up.' Mark Twain

      Comment


        #4
        xdpyinfo -- very interesting...

        I ran xdpyinfo as suggested with and without the nvidia driver.

        With nouveau:

        dimensions: 1920x1200 pixels (508x317 millimeters)
        resolution: 96x96 dots per inch

        which is fine. But, with nvidia:

        dimensions: 1920x1200 pixels (160x90 millimeters)
        resolution: 305x339 dots per inch

        which is not. 305x339? Where the ... did it get that?

        Suggestions? (And thanks for the tip.)
        'I must have a prodigious quantity of mind; it takes me as much as a week sometimes to make it up.' Mark Twain

        Comment


          #5
          Have you tried forcing font dpi?

          SystemSettings>Fonts>Check "Force Font DPI" 96
          Relog into kde

          Comment


            #6
            That helps, but Nvidia settings still reports 305x339 and the logon screen is a mess. Must be a better way. Why does nvidia get it wrong?
            'I must have a prodigious quantity of mind; it takes me as much as a week sometimes to make it up.' Mark Twain

            Comment


              #7
              It's usually a problem with EDID info not being read correctly by Xorg, but no matter - the task ahead is to fix it.

              Since 14.04 or so, xorg deletes your xorg.conf file rather regularly (it's a new "feature" ) so you have to go about fixing this a different way.

              Try this, create the file /etc/X11/Xsession.d/65nvidia and then put a Device section in it like you would an xorg.conf file, like this:

              Section "Device"
              Identifier "Device0"
              Driver "nvidia"
              VendorName "NVIDIA Corporation"
              BoardName "GeForce GT 740"
              Option "UseEdidDpi" "False"
              Option "DPI" "96 x 96"
              EndSection

              This should fix it. You can also put other options in here. Here's mine:

              Option "Coolbits" "12"
              Option "TripleBuffer" "True"
              Option "BackingStore" "True"

              Use caution on the "Coolbits" option. I'd research your card before doing and coolbits options.

              If the above doesn't fix it, then you'll have to go the xrandr route. It's basically the same thing except name the file 45_custom_xrandr-settings and put this in it:

              xrandr --dpi 96

              I prefer the first way becasue it gives you a place to put other fine-tuning options for your video.

              Let me know if this doesn't work. With linux, there's always more than one way to skin a cat!

              Please Read Me

              Comment


                #8
                65nvidia got things correct once I am logged in. But the logon screen is still a mess and the nividia settings app still says 305x339. I understand the 65nvidia info is taken into account only when X11 starts, which explains that. But nvidia should get it right from the beginning, it seems to me.

                I tried googling the problem, but can only find that 305x229mm is the size of the chip. Not much help.

                This is interesting, maybe...

                $ grep -i DPI /var/log/Xorg.0.log
                /usr/share/fonts/X11/100dpi/:unscaled,
                /usr/share/fonts/X11/75dpi/:unscaled,
                /usr/share/fonts/X11/100dpi,
                /usr/share/fonts/X11/75dpi,
                [ 4.484] (==) NOUVEAU(0): DPI set to (96, 96)
                [ 4.493] (==) intel(G0): DPI set to (96, 96)
                jon@jon-desktop:~/mnt-tmp/var/log$ grep -i DPI Xorg.0.log
                [ 9.672] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
                [ 9.672] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
                [ 9.672] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
                [ 9.672] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
                [ 10.370] (--) NVIDIA(0): DPI set to (304, 338); computed from "UseEdidDpi" X config
                [ 10.370] (==) intel(G0): DPI set to (96, 96)

                So it starts out wrong at 304,338 then apparently finds th 65nvidia file and resets it to 96,96.

                I found one discussion where they are convinced it is related to HDMI (My Samsung is attached by HDMI). (https://bbs.archlinux.org/viewtopic.php?id=171374)

                One site (http://www.techytalk.info/lubuntu-ch...nvidia-driver/) suggests generating an xorg.conf telling nvidia to ignore info from the screen, but that sounds like what you suggested and I have done.

                Btw, why is that file called 65nvidia? Does 65 just set the sequence and the rest is a simple mnemonic?

                THanks for yhour help.
                'I must have a prodigious quantity of mind; it takes me as much as a week sometimes to make it up.' Mark Twain

                Comment


                  #9
                  Originally posted by joneall View Post

                  This is interesting, maybe...

                  jon@jon-desktop:~/mnt-tmp/var/log$ grep -i DPI Xorg.0.log
                  [ 9.672] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
                  [ 9.672] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
                  [ 9.672] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
                  [ 9.672] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
                  [ 10.370] (--) NVIDIA(0): DPI set to (304, 338); computed from "UseEdidDpi" X config
                  [ 10.370] (==) intel(G0): DPI set to (96, 96)
                  Doesn't this suggest that UseEdidDpi, whatever that may be, is screwing up?
                  'I must have a prodigious quantity of mind; it takes me as much as a week sometimes to make it up.' Mark Twain

                  Comment


                    #10
                    Well it seems sddm is using Edid before you get to xorg.

                    Try this: Edit the script /usr/share/sddm/scripts/Xsetup and add the line xrandr --dpi 96 like this;

                    #!/bin/sh
                    # Xsetup - run as root before the login dialog appears


                    if [ -e /sbin/prime-offload ]; then
                    echo running NVIDIA Prime setup /sbin/prime-offload
                    /sbin/prime-offload
                    fi

                    xrandr --dpi 96
                    This should solve it.

                    Please Read Me

                    Comment


                      #11
                      If you're interested to see your Edid data: http://manpages.ubuntu.com/manpages/...et-edid.1.html

                      Oh, and yes the 65 just sets the sequence. I put mine there on advice from some web page I read somewhere and it works fine here so I figured, why mess with it?
                      Last edited by oshunluvr; Apr 03, 2016, 06:17 AM.

                      Please Read Me

                      Comment


                        #12
                        For fun, I did an Edid dump to see what mine says. Install the package "read-edid" to get the two commands (get-edid and parse-edid) then string them together;
                        Code:
                        stuart@office:~$ sudo get-edid | parse-edid
                        This is read-edid version 3.0.1. Prepare for some fun.
                        Attempting to use i2c interface
                        No EDID on bus 0
                        No EDID on bus 1
                        No EDID on bus 2
                        No EDID on bus 4
                        No byte reading on this bus...
                        Problem requesting slave address: Bad file descriptor
                        2 potential busses found: 3 5
                        Will scan through until the first EDID is found.
                        Pass a bus number as an option to this program to go only for that one.
                        256-byte EDID successfully retrieved from i2c bus 3
                        Looks like i2c was successful. Have a good day.
                        Checksum Correct
                        
                        
                        Section "Monitor"
                         Identifier "S24C200"
                         ModelName "S24C200"
                         VendorName "SAM"
                         # Monitor Manufactured week 40 of 2013
                         # EDID version 1.3
                         # Digital Display
                         DisplaySize 520 290
                         Gamma 2.20
                         Option "DPMS" "true"
                         Horizsync 30-81
                         VertRefresh 56-75
                         # Maximum pixel clock is 170MHz
                         #Not giving standard mode: 1152x864, 75Hz
                         #Not giving standard mode: 1280x720, 60Hz
                         #Not giving standard mode: 1280x800, 60Hz
                         #Not giving standard mode: 1280x1024, 60Hz
                         #Not giving standard mode: 1440x900, 60Hz
                         #Not giving standard mode: 1600x900, 60Hz
                         #Not giving standard mode: 1680x1050, 60Hz
                        
                        
                         #Extension block found. Parsing...
                         Modeline  "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync 
                         Modeline  "Mode 1" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync 
                         Modeline  "Mode 2" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync 
                         Modeline  "Mode 3" 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync 
                         Modeline  "Mode 4" 27.00 720 732 796 864 576 581 586 625 -hsync -vsync 
                        EndSection
                        stuart@office:~$
                        and then did it again to read bus 5:
                        Code:
                        stuart@office:~$ sudo get-edid -b 5 | parse-edid5
                        This is read-edid version 3.0.1. Prepare for some fun.
                        Attempting to use i2c interface
                        No EDID on bus 0
                        No EDID on bus 1
                        No EDID on bus 2
                        No EDID on bus 4
                        No byte reading on this bus...
                        Problem requesting slave address: Bad file descriptor
                        2 potential busses found: 3 5
                        Only trying 5 as per your request.
                        256-byte EDID successfully retrieved from i2c bus 5
                        Looks like i2c was successful. Have a good day.
                        Checksum Correct
                        
                        
                        Section "Monitor"
                         Identifier "S24C200"
                         ModelName "S24C200"
                         VendorName "SAM"
                         # Monitor Manufactured week 43 of 2013
                         # EDID version 1.3
                         # Digital Display
                         DisplaySize 520 290
                         Gamma 2.20
                         Option "DPMS" "true"
                         Horizsync 30-81
                         VertRefresh 56-75
                         # Maximum pixel clock is 170MHz
                         #Not giving standard mode: 1152x864, 75Hz
                         #Not giving standard mode: 1280x720, 60Hz
                         #Not giving standard mode: 1280x800, 60Hz
                         #Not giving standard mode: 1280x1024, 60Hz
                         #Not giving standard mode: 1440x900, 60Hz
                         #Not giving standard mode: 1600x900, 60Hz
                         #Not giving standard mode: 1680x1050, 60Hz
                        
                        
                         #Extension block found. Parsing...
                         Modeline  "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync 
                         Modeline  "Mode 1" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync 
                         Modeline  "Mode 2" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync 
                         Modeline  "Mode 3" 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync 
                         Modeline  "Mode 4" 27.00 720 732 796 864 576 581 586 625 -hsync -vsync 
                        EndSection
                        stuart@office:~$
                        Interesting thing here is I have three monitors connected and only two show up. These two are identical; one is connected via DVI the other HDMI. The missing one is connected by DP (display port) so I suspect that's why it's not detected here. DP must use a different way to communicate with the video subsystem.
                        Last edited by oshunluvr; Apr 03, 2016, 06:26 AM.

                        Please Read Me

                        Comment


                          #13
                          Had to resort to nvidia-settings to get the edid from the third monitor:
                          Code:
                          stuart@office:~$ cat dell_edid.bin |parse-edid
                          Checksum Correct
                          
                          
                          Section "Monitor"
                           Identifier "DELL U2414H"
                           ModelName "DELL U2414H"
                           VendorName "DEL"
                           # Monitor Manufactured week 9 of 2015
                           # EDID version 1.4
                           # Digital Display
                           DisplaySize 530 300
                           Gamma 2.20
                           Option "DPMS" "true"
                           Horizsync 30-83
                           VertRefresh 56-76
                           # Maximum pixel clock is 170MHz
                           #Not giving standard mode: 1152x864, 75Hz
                           #Not giving standard mode: 1280x1024, 60Hz
                           #Not giving standard mode: 1600x900, 60Hz
                           #Not giving standard mode: 1600x1200, 60Hz
                           #Not giving standard mode: 1920x1080, 60Hz
                          
                          
                           #Extension block found. Parsing...
                           Modeline  "Mode 13" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync 
                           Modeline  "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync 
                           Modeline  "Mode 1" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
                           Modeline  "Mode 2" 74.250 1920 2008 2052 2200 1080 1082 1087 1125 +hsync +vsync interlace
                           Modeline  "Mode 3" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
                           Modeline  "Mode 4" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
                           Modeline  "Mode 5" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
                           Modeline  "Mode 6" 27.027 1440 1478 1602 1716 480 484 487 525 -hsync -vsync interlace
                           Modeline  "Mode 7" 27.000 1440 1464 1590 1728 576 578 581 625 -hsync -vsync interlace
                           Modeline  "Mode 8" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
                           Modeline  "Mode 9" 74.250 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace
                           Modeline  "Mode 10" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
                           Modeline  "Mode 11" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
                           Modeline  "Mode 12" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
                           Modeline  "Mode 14" 74.25 1920 2008 2052 2200 540 542 547 562 +hsync +vsync interlace
                           Modeline  "Mode 15" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync 
                           Modeline  "Mode 16" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync 
                           Option "PreferredMode" "Mode 13"
                          EndSection
                          stuart@office:~$

                          Please Read Me

                          Comment


                            #14
                            Originally posted by oshunluvr View Post

                            Oh, and yes the 65 just sets the sequence. I put mine there on advice from some web page I read somewhere and it works fine here so I figured, why mess with it?
                            ?,,,,,,,,,,I was under the impression that a custom xorg.conf should (as per the Debian way) be put into "/etc/X11/xorg.conf.d/xorg.conf"

                            VINNY
                            i7 4core HT 8MB L3 2.9GHz
                            16GB RAM
                            Nvidia GTX 860M 4GB RAM 1152 cuda cores

                            Comment


                              #15
                              It's been a good while since I've had to mess with X initialization so I could be wrong, but doesn't Xsession run after user login (and xsession selection)...so the settings won't affect the display/login manager (at least that would explain why the settings don't affect the login screen).

                              I would at least try putting the monitor/device configuration in /etc/X11/xorg.conf.d/ rather than /etc/X11/Xsession.d/

                              Comment

                              Working...
                              X