Multiple Video Card, Separate Monitors, How does it work?
I have two monitors, one is plugged in to my GTX 670 as my main display. I have a second one plugged in to my on board (HD4000) which i just use for general 2D windows stuff, like Voice chat sofware, forums, reading PDF files etc. I had originally set it up this way as I didn't want the second monitor having an effect on performance of the main monitor, even if it was very little. I also wanted access to quick sync without using Virtu, which I'm not sure will end up working. This plan was dashed when I was playing with some different settings in some games and flipped to window mode, at which point I noticed that I can take a game window and place it so that it's half on each monitor, but frame rate doesn't seem to be affected.
So a few questions popped up. Primarily, how does this even function? Is the 3D data being processed and rendered by both cards anyway, or does the primary cards frame buffer get copied to main memory for display by the second card, or does the second card just address the memory of the main card for use like an overlay? I can't really wrap my head around the data flow to even guess how it's working. Does it work differently if two dedicated cards are used? (Say my 670 and my old 5770?)
I couldn't find any benchmarking data that tests setups like these, so how does this effect performance? Can anyone point to links that benchmark things like both monitors on one card, the secondary on a second card, the secondary on the on board? I haven't been able to locate any good resources. I will probably end up doing it myself, but I would really like to read up on the topic some before hand.
It would be an interesting experiment. I went to see if I could test this myself only to find I evidently lost track of my DP to DVI adapter somewhere. Maybe I can grab one to test at some point, but I do recall doing some multi-display benchmarking a while back with and without the 4th accessory display connected and from what I remember there was no measurable performance impact when adding the extra display.
I didn't have much time yesterday to test, so I only did one quick run through with Passmark's Performance Test 8 . . . I couldn't notice a difference if I ran nothing else and let the software run through all of the tests with the secondary (in this case the on board HD4000) card enabled or disabled.
The next test I ran with their advanced 3D test (with the trees and meteors). I ran through 4 runs, using the DX10 test, 1366x768, overlay off, vsync off, windows mode, 50 islands/250 meteors, 180 second tests.
The first test I just moved the window on the primary monitor (since I had to move it on subsequent runs, there is no way to pre-position it) and ended up with a base line of:
33.18 fps / 30.14ms per frame / 0.95ms Jitter (3.16%)
Run two I moved the window to the second monitor, it came up as:
6.26 fps / 159.85ms per frame / 6.32ms Jitter (3.95%)
Test 3 I moved the window so that it was approx 2/3 on the primary, and 1/3 on the secondary:
21.03 fps / 47.56ms per frame / 2.85ms Jitter (6.00%)
Test 4, 1/3 Primary and 2/3 Secondary:
6.06 fps / 164.97ms per frame / 3.95ms Jitter (2.40%)
This seems to show that with this software the rendering functions actually follow wherever most of the window is displayed. Then the secondary card gets the data some how to display the other section of the window, I assume by either the render card sending the other one the data, or by the non-render card picking up the data from the render card . . . or possibly the render card copies the frame buffer to system ram and the non-render card reads it from there? That would explain the huge impact to performance in test 3.
This morning before I left for work I did a quick test with a game I play. I logged in, set it to 1366x768, vsync off . . . and just stood still in a place looking out over some buildings. On my main screen I was pulling about 45FPS (fraps), but then dragging the window over to the second monitor it dropped to about 30FPS. This seems to point to the opposite of the previous test, where rendering function remained on the primary card and the display data is somehow sent to the secondary card.
I still haven't found the time to test things like both monitors on the 670 with the on board disabled, vs both on the 670 with the on board enabled. I would also like to run some tests of things like both monitors on the 670 while gaming on the primary and showing a stream on the secondary, vs using the on board as the secondary with the stream. I'm not sure I have many games with built in benchmarks . . . but my steam library seems ever-growing so I may be able to get some better actual game testing done this weekend.
To be honest, when I first moved the window half way between the monitors I just expected it to either be a black window or something bad to happen . . . it didn't even occur to me that it would just keep on working showing the contents to two different video cards. It triggered me to go on this quest to figure out how the heck it works.
Do you happen to know the path the data takes when a window needs to be displayed through multiple cards?
|All times are GMT -7. The time now is 12:21 AM.|