Is it possible to use a nVidia GPU to render graphics if the monitor is connected to the motherboard video port?

08
2014-07
  • Massimo

    I have an Asus Z87 Deluxe motherboard, which has an integrated Intel HD 4600 GPU; I also have a nVidia GeForce GTX 560 TI graphics card; currently, my monitor is connected to the graphics card and the onboard GPU is unused.

    If I connect the monitor to one of the motherboard video ports (it has both HDMI or DisplayPort), the video output will be handled by the onboard GPU; in this situation, can I still use the nVidia card to render graphics, f.e. in games? Or can it be used only when physically connected to a monitor?

    The operating system is Windows 7 x64.

  • Answers
  • kobaltz

    In the scenario you describe, by default the on board graphics would be used. The game could not switch to offload the rendering of its graphics to the NVidia card. However, if the software/game had a specific setting for such a thing then this could be possible.

    For example, when doing Raytracing with Adobe After Effects, my primary cards are ATI Radeons. However, I have also an unused NVidia card which handles the raytracing. Graphic and Video Editing applications sometimes have certain settings where you can offload your computation needs to a graphics card that is not currently in use by your monitors.

    Another example would be using the NVidia card as a Dedicated Physx Card. While this may increase some performance, it would be application specific if this could be taken advantage of (typically moreso in games).

    Another example would be H264 Rendering with NVENC-export where you can pass a job to the NVidia card to handling the transcoding calculations.

  • Journeyman Geek

    Yes - using something like lucid logix virtu/mvp in igpu mode. I seem to recall it comes bundled with many intel motherboards but they seem to sell a separate software package (well 3) with additional features.

    It'll let you use your iGPU as your primary output, render and pass on things like games from your dGPU to your iGPU and power it down when not needed.

    This will work without a physical monitor plugged into your discrete gpu

  • DragonLord

    A program can access the dedicated graphics processor regardless of whether a display is attached to it, but additional software is needed to pass the output to the onboard GPU for display.

    As the dedicated video card is still accessible to applications, the GPU could be used to render graphics and perform computations (like video transcoding and PhysX) as usual, but it won't be able to draw the output on the display unless you use a third-party program to send output to the onboard GPU. An example of such a program is Virtu MVP, which does this by intelligently abstracting onboard and dedicated GPUs so that applications see them as one device while taking full advantage of the unique features of each.

  • GuruJR

    Unless you use 3rd party softwares, Graphics rendered by your GTX 560 Ti need to be outputted by it's Ports, but work can still be made by your GTX 560 Ti and be worth something without having a monitor plugged-in, just not live output from your video games.

    Your on-board GPU is most commonly a part of your CPU, It will most probably be an intel HD 4000 or something like that, which is technically from inside your processor chip. Using your "on-board GPU" is using a GPU Built-in your CPU Chip, what is on-board now a days is the hardware to connect that GFX part of your CPU to the ports and features offered by your motherboard depending on the architecture.

    About your "On-board Gpu"

    • Different processors will offer different features from the "on-board Gpu".
    • Using your "On-board Gpu" increase your overall cpu temperature.
    • If no monitors is plugged in your Motherboard ports, the "On-board Gpu" is still powered on, you need to disable it from your bios in order to save power and resources.
    • In your bios you can as well set the "On-board Gpu" primary or secondary.
    • Your "On-board Gpu" take most of it's video Ram off your Computer Ram.
    • If you have an HDTV you can use your "On-board Gpu" to play videos off it, without affecting much of your game Performance while you play or work on the GTX 560.
    • If you have something plugged in the "On-board Gpu" And in the "Add-on Card" POST Text will show on the first plugged Port of the "Primary card", the one your have chosen in your Bios,
    • Windows Login, will first show off first plugged Port of the Primary card. If you set another monitor to be the primary in the windows preference after that first login, the login screen should show off that chosen monitor.

    About The add-on Card (GTX 560 TI)

    • Your GTX 560 TI is much better then the intel HD 4000 for playing games.
    • Your GTX 560 has it's own Video Memory.
    • You may plug more then one monitor off your GTX 560 TI, more monitor will somewhat increase the load off your graphic card, but not by much.
    • If your "On-board Gpu" is set as Primary in the Bios, no POST text will show off your monitors plugged in the GTX 560 TI. Windows will still detect that you only have one monitor plugged in. And the login screen will eventually show up on your GTX 560.
    • If no monitors are plugged in your GTX 560 TI it will still be using it's "idle" power
    • If no monitors are plugged in your GTX 560 TI, you still can use it for specific task, like Coin mining, or Folding @ Home.

    Let me know if you want more infos about those differences.


  • Related Question

    In Linux, how do I correctly configure display geometry with multiple monitors on multiple GPUs (Intel and nVidia)?
  • ell

    My setup is as follows:

    • Linux Mint 14 x64
    • Intel Core i5-2500k
    • GeForce GTX 560 Ti Cu II
    • A monitor on the far left connected to the motherboard (integrated graphics on the i5)
    • A central monitor connected to the graphics card
    • A monitor on the far right connected to the graphics card

    My current xorg.conf is this:

    # nvidia-xconfig: X configuration file generated by nvidia-xconfig
    # nvidia-xconfig:  version 310.19  ([email protected])  Thu Nov  8 02:09:12 PST 2012
    
    Section "ServerLayout"
        Identifier     "Layout0"
        Screen      0  "Screen0"
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "Mouse0" "CorePointer"
    EndSection
    
    Section "Files"
    EndSection
    
    Section "InputDevice"
        # generated from default
        Identifier     "Mouse0"
        Driver         "mouse"
        Option         "Protocol" "auto"
        Option         "Device" "/dev/psaux"
        Option         "Emulate3Buttons" "no"
        Option         "ZAxisMapping" "4 5"
    EndSection
    
    Section "InputDevice"
        # generated from default
        Identifier     "Keyboard0"
        Driver         "kbd"
    EndSection
    
    Section "Monitor"
        Identifier     "Monitor0"
        VendorName     "Unknown"
        ModelName      "Unknown"
        HorizSync       28.0 - 33.0
        VertRefresh     43.0 - 72.0
        Option         "DPMS"
    EndSection
    
    Section "Device"
        Identifier     "Device0"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Device0"
        Monitor        "Monitor0"
        DefaultDepth    24
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
    

    Which gives the following effects:

    • The monitor on the far left works only when in terminal mode (ie, when you press ctrl-alt-f1)
    • The central monitor works as expected
    • The far right monitor works as expected

    In an attempt to make the far left screen work, I wrote my own xorg.conf:

    Section "ServerLayout"
        Identifier     "Layout0"
        Screen      0  "IntegratedGraphicsScreen0"
        Screen      1  "GraphicsCardScreen0"
        Screen      2  "GraphicsCardScreen1"
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "Mouse0" "CorePointer"
    EndSection
    
    Section "Files"
    EndSection
    
    Section "InputDevice"
        # generated from default
        Identifier     "Mouse0"
        Driver         "mouse"
        Option         "Protocol" "auto"
        Option         "Device" "/dev/psaux"
        Option         "Emulate3Buttons" "no"
        Option         "ZAxisMapping" "4 5"
    EndSection
    
    Section "InputDevice"
        # generated from default
        Identifier     "Keyboard0"
        Driver         "kbd"
    EndSection
    
    Section "Monitor"
        Identifier     "GraphicsCardMonitor0"
        VendorName     "Samsung"
        ModelName      "SyncMaster B2230"
        HorizSync       28.0 - 33.0
        VertRefresh     43.0 - 72.0
        Option         "DPMS"
    EndSection
    
    Section "Monitor"
        Identifier     "GraphicsCardMonitor1"
        VendorName     "ViewSonic"
        ModelName      "VG712s"
        HorizSync       28.0 - 33.0
        VertRefresh     43.0 - 72.0
        Option         "DPMS"
    EndSection
    
    Section "Monitor"
        Identifier    "IntegratedGraphicsMonitor0"
        VendorName    "Dell"
        ModelName     "156FPf"
    EndSection
    
    Section "Device"
        Identifier     "GraphicsCardDevice"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
    EndSection
    
    Section "Device"
        Identifier     "IntegratedGraphicsDevice"
        Driver         "i915"
    EndSection
    
    Section "Screen"
        Identifier     "GraphicsCardScreen0"
        Device         "GraphicsCardDevice"
        Monitor        "GraphicsCardMonitor0"
        DefaultDepth    24
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
    
    Section "Screen"
        Identifier     "GraphicsCardScreen1"
        Device         "GraphicsCardDevice"
        Monitor        "GraphicsCardMonitor1"
        DefaultDepth    24
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
    
    Section "Screen"
        Identifier    "IntegratedGraphicsScreen0"
        Device        "IntegratedGraphicsDevice"
        Monitor       "IntegratedGraphicsMonitor0"
        DefaultDepth    24
        SubSection     "Display"
            Depth       24
        EndSubSection
    EndSection
    

    Which gives these effects:

    • The far left monitor still doesn't work
    • The central monitor and far right monitor are a mirrored screen with a resolution of 640 * 480

    Deleting xorg.conf gives these effects:

    • The far left monitor still doesn't work
    • The central monitor and far right monitor are a mirrored screen with a resolution of 1024 * 768

    Obviously this is not what I intended - but then again I have never written my own xorg.conf before so I didn't expect it to. How can I get 3 individual screens? Any help is appreciated!

    EDIT: So, a year on I still have this problem. I'm now using the following xorg.config

    Section "ServerFlags"
        Option "DefaultServerLayout" "PrimaryLayout"
        Option "Xinemara" "off"
    EndSection
    
    Section "Module"
        Load "glx"
    EndSection
    
    Section "InputDevice"
        # generated from default
        Identifier     "Mouse0"
        Driver         "mouse"
        Option         "Protocol" "auto"
        Option         "Device" "/dev/psaux"
        Option         "Emulate3Buttons" "no"
        Option         "ZAxisMapping" "4 5"
    EndSection
    
    Section "InputDevice"
        # generated from default
        Identifier     "Keyboard0"
        Driver         "kbd"
    EndSection
    
    Section "Device"
        Identifier "Intel HD Graphics 3000"
        Driver     "intel"
    EndSection
    
    Section "Device"
        Identifier     "Geforce GTX 560 Ti MiniHDMI"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        Screen 0
    EndSection
    
    Section "Device"
        Identifier     "Geforce GTX 560 Ti DVI0"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        Screen 1
    EndSection
    
    Section "Device"
        Identifier     "Geforce GTX 560 Ti DVI1"
        Driver         "nvidia"
        VendorName     "NVIDIA Corporation"
        Screen 2
    EndSection
    
    Section "Monitor"
        Identifier "Samsung"
        Option "Primary" "true"
    EndSection
    
    Section "Monitor"
        Identifier "Dell"
    EndSection
    
    Section "Monitor"
        Identifier "ViewSonic"
    EndSection
    
    Section "Screen"
        Identifier "Samsung"
        Device "Geforce GTX 560 Ti DVI0"
        Monitor "Samsung"
        SubSection "Display"
            Depth 24
        EndSubSection
    EndSection
    
    Section "Screen"
        Identifier "Dell"
        Device "Intel HD Graphics 3000"
        Monitor "Dell"
        SubSection "Display"
            Depth 24
        EndSubSection
    EndSection
    
    Section "Screen"
        Identifier "ViewSonic"
        Device "Geforce GTX 560 Ti DVI1"
        Monitor "ViewSonic"
        SubSection "Display"
            Depth 24
        EndSubSection
    EndSection
    
    Section "ServerLayout"
        Identifier    "PrimaryLayout"
        Screen        "Dell"
        Screen        "Samsung" RightOf "Dell"
        Screen        "ViewSonic" RightOf "Samsung"
        InputDevice   "Keyboard0" "CoreKeyboard"
        InputDevice   "Mouse0" "CorePointer"
    EndSection
    

    Which has the following effect:

    • The far left monitor still doesn't work
    • The central and right monitors work as expected

    A little bit more info:

    • I'm on kernel 3.11.0-12-generic
    • I'm using nvidia proprietary driver version 331.67

  • Related Answers
  • Ярослав Рахматуллин

    When I was learning the ropes on Slackware, there was this excellent newbie guide to installing, configuring and maintaining the distro. It has changed somewhat over the years, may not seem relevant to Debian & Co., but I still think that the SlackBook is a good piece of introductory material.

    Not to pass any (imho due) judgement, but people seem to ignore the xorg manuals entirely. Maybe it's because they are made to believe that Xorg will "configure itself" as one may be accustomed with in Windows. This is not always the case and there is plenty of information out there on how to set up a dual monitor. I've answered at least two similar questions on this site about a very similar problem.

    To the point then;

    man xorg.conf
    
    SERVERLAYOUT SECTION
    (...)
    Screen  screen-num "screen-id" position-information
    (...)
    

    The details are in the man page. What you want looks something like:

    Section "ServerLayout"
        Identifier      "Three monitors"
        Screen  0       "Screen0" 0 0
        Screen  1       "Screen1" RightOf "Screen0"
        Screen  2       "Screen2" RightOf "Screen1"
    EndSection
    

    Checklist:

    • Screens use correct device and monitor identifiers
    • Screen has at least on Display sub section with a resolution and depth
    • Drivers are loaded for the used devices

    Notes:

    Dual-head video cards (device section) may need special options such as bus and display mode. ATI cards used to "copy" the output to both heads in the past. This was preventable by passing certain options in the device section. Use the manual page of the xorg driver.

    With recent versions of Xorg, xrandr can be used to configure and enable several monitors and to position them relative to each other. Having an xorg.config that configures several monitors is not really necessary, but may be more convenient.