1 (edited by Inspiration 2011-07-30 13:31:01)

Topic: New client option to choose the display adaptor to use

The purpose of this request is to make use of multiple graphics cards when available. At this moment there are situations where multiple accounts cause the frame rate to drop to abysmal regardless of graphics settings. This is NOT because one card has to do all the render work, but because the card that the display is connected too is NOT the card doing the rendering. All render output for display has to be transferred from one card to the other, and this incurs a horrific penalty in efficiency.

My situation is as follows (lets take this as a real world example):

3 monitors, two 2GB ATI cards (top of the line)

My primary card, controls a 30" display and a 24" display).
My secondary card, controls another 30" display.

This arrangement is needed as not all these displays can be hooked to one card, as is required for crossfireX. That and the fact that most games that you will play with multiple clients concurrently, will not support crossfireX anyway, make this the optimal arrangement.

A little known fact is that when you do enable crossfireX, in this setup you end up with only two displays as all  displays need to be connected to one card, which is not possible in this case.

The solution is quite elegant and simple, add a drop down or a command line switch to select the display to render to. Each connected display results in a "virtual" video card to be created and is visible to the client software. And as long as the output window is rendered on the same card as the display is connected too, everything works like a charm with perfect scaling. It is an easy way to use a secondary card for games like this.

Please....pretty please, can we have this soonish(tm)?

Re: New client option to choose the display adaptor to use

+1

Re: New client option to choose the display adaptor to use

+1 for my future rig big_smile

<GargajCNS> we maim to please

Re: New client option to choose the display adaptor to use

Being able to choose the adaptor even if it was through a text command to start with would be nice. Then add a UI element for the selection. Even if you have to use a free launcher selection window. (Depends where it needs to know the GPU to use)

Re: New client option to choose the display adaptor to use

Yes please, reading this explains to me why i have such *** fps with 2 cards and 5 screens

Re: New client option to choose the display adaptor to use

+1 i run 3 accounts on three monitors would make things much easier

Re: New client option to choose the display adaptor to use

I really don't understand the problem here, the card that the window is running on (ie the monitor) is the card that does the rendering.  To change the card that the game is being rendered by simply drag the window to another monitor.

Alternatively have your clients icon on the desktop of the monitor that you would like the client to start on.  of course to do this you need to be running in windowed mode (you are doing that are you not?)

Also your little know fact is definitely not little or unknown that is absolute basics of multi-gpu rendering as it is currently implemented. I also take it that you are not running 6xxx series cards then as if you were you could run all 3 monitors of the on card (display port).

All adding a render device option ingame will do is tell windows which monitors to exclude, you will also need to specify an attached monitor as well as card for that to work as you would like.
It is impossible with out coding to use cuda / OpenCL to offload processing then send results back to the primary card through the bus completley un-optimal and full of bottlenecks, or use crossfireX.

Re: New client option to choose the display adaptor to use

Tailn wrote:

I really don't understand the problem here, the card that the window is running on (ie the monitor) is the card that does the rendering.  To change the card that the game is being rendered by simply drag the window to another monitor.

This is not true, at least not on ATI cards as far as I can tell.  As soon as you move one client window to another monitor, frame rates go from near 60 to around 8 to 12.

Tailn wrote:

Alternatively have your clients icon on the desktop of the monitor that you would like the client to start on.  of course to do this you need to be running in windowed mode (you are doing that are you not?)

Yes I am running in windowed mode, else there would be only 1 display visible and it would still run from the primary card.

Tailn wrote:

Also your little know fact is definitely not little or unknown that is absolute basics of multi-gpu rendering as it is currently implemented. I also take it that you are not running 6xxx series cards then as if you were you could run all 3 monitors of the on card (display port).

You would be surprised and in fact I do run on a duel 6970 setup. And contrary to your suggestion, it cannot connect all three displays without additional converters since my monitors are true display port and not mini-display port as seems to be the rage these days. And the secondary DVI on these cards is not dual link, so my 30" displays running 2560x1200 resolution cannot be handled by that connector either. So without using converters this arrangement is the only one possible!

Besides connecting everything to one card without special support from the game software would not use the secondary graphics card and would therefore be pointless.

Tailn wrote:

All adding a render device option ingame will do is tell windows which monitors to exclude, you will also need to specify an attached monitor as well as card for that to work as you would like.
It is impossible with out coding to use cuda / OpenCL to offload processing then send results back to the primary card through the bus completley un-optimal and full of bottlenecks, or use crossfireX.

As explained CrossFile X cannot work given all these constraints, manual assignment of resources is needed. And my proposed solution does in fact fix the issue, as it does also work in EVE where I got the exact same situation.

That game does have the option to select one out of three adapters (those are the visualized ones for each display I have connected) and when I assign them properly, it runs very smooth. When i assign it in a way that there is no 1:1 relationship between the card it being renderer on and the display it is being displayed on, performance drops to 3-6 fps for obvious reasons!

In short, these sort of games are better tuned manually, its not an FPS where you only run one client and enlist a second card to beef up the FPS to unreal levels. The difference is night and day, and also consider the benefit of not having 4 clients compete for video memory for textures and the like. It is much better partitioned across two cards without special assumption riddled magic.

Re: New client option to choose the display adaptor to use

Inspiration wrote:

This is not true, at least not on ATI cards as far as I can tell.  As soon as you move one client window to another monitor, frame rates go from near 60 to around 8 to 12.

Then you have other problems i currently run 2 1080p screens off a 6870 and 2 1280x1024 screens on a 9800GTX (I have been running multiple monitors for over 12 years now) with no performance issues running clients on any combination of screens, I can also see the gfx load move from adapter to adapter as the window moves.

Inspiration wrote:

You would be surprised and in fact I do run on a duel 6970 setup. And contrary to your suggestion, it cannot connect all three displays without additional converters since my monitors are true display port and not mini-display port as seems to be the rage these days. And the secondary DVI on these cards is not dual link, so my 30" displays running 2560x1200 resolution cannot be handled by that connector either. So without using converters this arrangement is the only one possible!

Besides connecting everything to one card without special support from the game software would not use the secondary graphics card and would therefore be pointless.

Your initial statement was that you were *unable* to run more than 2 monitors per card that is obviously not the case and is only due to the fact that you do not have suitable components to do so.

Inspiration wrote:
Tailn wrote:

All adding a render device option ingame will do is tell windows which monitors to exclude, you will also need to specify an attached monitor as well as card for that to work as you would like.
It is impossible with out coding to use cuda / OpenCL to offload processing then send results back to the primary card through the bus completley un-optimal and full of bottlenecks, or use crossfireX.

As explained CrossFile X cannot work given all these constraints, manual assignment of resources is needed. And my proposed solution does in fact fix the issue, as it does also work in EVE where I got the exact same situation.

That game does have the option to select one out of three adapters (those are the visualized ones for each display I have connected) and when I assign them properly, it runs very smooth. When i assign it in a way that there is no 1:1 relationship between the card it being renderer on and the display it is being displayed on, performance drops to 3-6 fps for obvious reasons!

The simple way to manually assign the resources is to move the window to a separate monitor.  You should have started of with defining the problem you actually have and then postulating your solution.

I would hazard a guess that the performance issue you are seeing right now is in fact exactly what you are identifying, however the cause will most likely be a result of spanning 2 monitors (and 2 cards) or some quirk of your system configuration / drivers.  The low FPS has been a Direct-X issue for many years when you attempt to display a 3d render across multiple display devices (recent cool stuff from ATI has worked around this some what but only for single output devices).  Running multiple clients on separate cards with v-sync disabled has no impact on fps for myself and a number of other people I know who are running multi-monitor setups.

Re: New client option to choose the display adaptor to use

Perpetuum.exe -adapter N will be in the next version, as well as storing the window positions.

[14:15:15] <Freya Sabbat> ...Dear god, the Devs are as bad as us

Re: New client option to choose the display adaptor to use

Awesome smile

<GargajCNS> we maim to please

Re: New client option to choose the display adaptor to use

DEV Gargaj wrote:

Perpetuum.exe -adapter N will be in the next version, as well as storing the window positions.

Awesome work, I am starting to get VERY impressed by the speed at which the DEVs of this game operate and respond to user feedback.

Count this as a further extension of my accounts real soon!

Re: New client option to choose the display adaptor to use

Great work love your style DEV's

Re: New client option to choose the display adaptor to use

Wonderful, all my 4 clients now are a tad above 30 FPS, which I am quite happy with. Both cards are at approximately 80% load now (I also enabled decorative plants and maxed the AF and Terain detail, I already had maximum draw distance).

I needed to turn off vsync to reach this FPS level however, which might indicate FPS is quite variable, with a lot of half rendered frames being tossed away when vsync is on.

Overall, I am very pleased....could not have asked for a better birthday present smile

Re: New client option to choose the display adaptor to use

Please add this to the patch notes. Thank you. smile

Re: New client option to choose the display adaptor to use

Yep, this one was left out accidentally.

Re: New client option to choose the display adaptor to use

Ok i must be doing something wrong but i cant get Perpetuum to run on my second screen through my 6970 unless i drag the window over.

Re: New client option to choose the display adaptor to use

What is our card setup? I've only used two different cards once before and it wasn't on Windows 7 so I am not sure what the "Correct" setup for these cards are to make them work independently.

Re: New client option to choose the display adaptor to use

For two card to work fully independent, you have to turn off CrossfireX in your Catalyst Control Center (CCC).  Then you have to connect one monitor to each card (or @=1 or 2+2) and add the startup parameter to each client shortcut to designate which card the should be rendered on.

Then as a final act, make sure you move your client windows to the correct display. Correct being the display matched the card being rendered on.

You may need to turn vsync off as I needed to to have the maximum effect. Mine setup works on windows 7, and also uses dual ATI cards. Your setup doesn't seem to be too different from mine, so should work just the same.

PS.

You can leave the CrosFire bridge between your cards connected, just disable crossfire in the CCC and reboot, thats all the hard work really.

Re: New client option to choose the display adaptor to use

Im running one 6970 with 3 monitors

Re: New client option to choose the display adaptor to use

There's an interesting possible issue which I thought of about a minute ago - I do a sanity check on the stored window coordinates before opening the window to make sure your window doesn't get opened in your kitchen and you wondering WTF is going on. However, my theory is that if you have a multi-desktop setup, then it's possible that your desktop doesn't start from (0,0) but from some negative value (which I clamp back to 0 for the above reasons).

[14:15:15] <Freya Sabbat> ...Dear god, the Devs are as bad as us

Re: New client option to choose the display adaptor to use

Okay, fixed the issue, turns out I was right and the coords can be all over the place, but luckily there are still a few convenient ways to fetch TEH DATAS.

[14:15:15] <Freya Sabbat> ...Dear god, the Devs are as bad as us

Re: New client option to choose the display adaptor to use

Sweet so does this mean i can now run 3 client each on its own monitor running on the one graphics card? (6970)

If so how do i set it up?

Re: New client option to choose the display adaptor to use

First, you wait for the patch to come out... wink

[14:15:15] <Freya Sabbat> ...Dear god, the Devs are as bad as us

Re: New client option to choose the display adaptor to use

I love you guys... you need the best DEV's award in any MMO
Just as soon as the NPC upgrade comes smile