Re: [gentoo-user] how to use two graphics cards with one display

2016-06-13 Thread Andrew Savchenko
Hi,

On Thu, 09 Jun 2016 23:16:37 +0200 lee wrote:
> > As far as I understand your e-mail, you are trying to mux video
> > outputs of two GPU cards to a single monitor (excuse me if I'm
> > wrong, but it is hard to understand what your hardware is), this is
> > also doable if your monitor supports dual input (most modern
> > monitors do). This way separate X screens may be used to achive
> > your goal. (Xinerama setup is also possible, but GL acceleration
> > will be limited to abilities of the weakest card).
> 
> Exactly, but I don't want to use the picture-in-picture feature of the
> monitor, and I don't want separate X screens, and I don't have room to
> fit another monitor on my desk.
>
> I simply want to use one of the graphics cards to handle an application
> that uses open gl and the other one to play a video.

Let's suppose that you connected video outputs of both your cards
to the same monitor. It is possible to use single X screen with
xinerama here and configure it to mirror outputs on both cards,
e.g. (output names may vary depending on hardware):
  xrandr --output LVDS1 --same-as VGA1
This way you can select using monitor's hardware switch from what
input to take picture. So you'll have dual-monitor mirrored output,
where both outputs are connected to the same single monitor.

But the last time I tried similar scheme, OpenGL acceleration is
limited to the lowest card capabilities. This was several years
ago, maybe things are changed since and you'll be able to use full
power of a newer card. In order to select which card to use you can
select xinerama screen (mplayer can do that, not sure about others).

> > But honestly I don't get why you need this: if you have a powerful
> > GPU and it is not a laptop, where power consumption is critical,
> > why just don't use that card? Most cards have multiple outputs, so
> > it is not a problem to setup multihead with a single card either.
> 
> The GPU isn't quite powerful enough for some of what I'm doing.
> Otherwise, it's a perfectly good card.
> 
> So I need to get a better graphics card, and once I do, it would be a
> pity to have the current one laying around uselessly.  I wouldn't get
> much if I tried to sell it, so I rather keep it in case I need a spare.
> Buying another one which is the same, to use SLI, won't help, either.
> 
> IIUC, it takes some processing power to decode a video, so why not use
> one of the cards for just that?  Multiple cards should be able to work
> together.

There is a severe problem here: how to multiplex outputs of
different cards to the same monitor? Either outputs should be
independent (as described above), or single video output should be
used and hence one card must write to the buffer of another.

It is possible to done this either via SLI (not your case
apparently) or PCI Express. The latter solution requires very
special driver support (e.g. NVidia Optimus or ATI Hybrid
Graphics). AFAIK both of them work only on IGP <-> PCI-E setup,
where one card is Integrated Graphics Processor using system
memory and another one is powerful (and energy consuming) PCI-E
graphics card. On such setup driver allows to transfer display
surface from GPU frame buffer, to system RAM mapped for IGP and
then IGP is used to display this surface.

IOW such solution will not work if you have a couple of fully
fledged PCI-E GPU cards with their own memory. In theory it should
be possible to rewrite GPU driver in a way that will allow to
transfer display surface from one video card RAM to another using
PCI-E bus, but no sane developer will do this: coding efforts will
be tremendous and benefits are unclear up to the point when PCI-E
will be a bottleneck.

I still don't understand why you need an older card for a video
decoding, since newer one can do this perfectly.

Still there is a place to use both cards: GPGPU computing, both
cards can be used to run OpenCL or CUDA applications or one card
may be used for a vdpau video decoding, while another one will mine
you bitcoins :)

Be warned however, that if you will use both card for the same
GPGPU application (e.g. OpenCL or CUDA), care should be taken to
allow asynchronous computing of such application. Since cards will
operate on different speeds, memory and number of cores,
synchronous application will be faster no more then as twice as the
same app on the slowest card, which will be likely slow than runnig
the same app only on the fastest card. Also you must remember, then
PCI-E is terribly slow compared to in-GPGPU data exchange rate, so
it will likely be a bottleneck for your tasks. Of course, most
OpenCL/CUDA apps are synchronous and will not be able to run
properly on heterogeneous GPGPU setup.

So probably your best option will be to use one card solely for
GPGPU computing, while another one for rendering and output.
Another interesting application is that some codecs (e.g.
x264) allow to use OpenCL, though from tests I saw it still gives
worse results then vdpau-based decoding.


Re: [gentoo-user] how to use two graphics cards with one display

2016-06-11 Thread lee
R0b0t1  writes:

> On Jun 9, 2016 4:25 PM, "lee"  wrote:
>>
>> R0b0t1  writes:
>>
>> > Use Bumblebee. It is the FOSS version of Optimus.
>>
>> That seems to be for laptops having peculiar hardware.
>>
>
> Nope. Works regardless.

If that works with two NVIDIA cards, the PCI bus might not be fast
enough.  Even if it's fast enough, I have no idea how it would perform,
considering that it's possible (even likely) that not both PCI slots for
the graphics cards are connected to the same CPU --- however they do
that on boards that have two, it might not be an issue at all or perform
much worse than using a single card.

Do you have such a setup in use?


And the docs say:


"WARNING:You must install the Nvidia binaries in a way that will not
break Mesa’s LibGL, it is needed for 3D acceleration on the Intel
card. This means that on most distros you will need a Bumblebee specific
package for it to run, the stock packages on most cases will break
LibGL."[1]


I do not have an Intel card.  And what are these Optimus cards they
mention?

Besides, IIUC this is intended for /switching between/ different
cards. I do not want to switch between cards but /use both of them at
the same time/.  There's no point in switching between them, and
apparently that would be more a disadvantage than anything else due to
the overhead involved.


[1]: https://github.com/Bumblebee-Project/Bumblebee/wiki/Supported-drivers



Re: [gentoo-user] how to use two graphics cards with one display

2016-06-09 Thread R0b0t1
On Jun 9, 2016 4:25 PM, "lee"  wrote:
>
> R0b0t1  writes:
>
> > Use Bumblebee. It is the FOSS version of Optimus.
>
> That seems to be for laptops having peculiar hardware.
>

Nope. Works regardless.


Re: [gentoo-user] how to use two graphics cards with one display

2016-06-09 Thread lee
Andrew Savchenko  writes:

> Hi,
>
> On Sun, 05 Jun 2016 19:34:15 +0200 lee wrote:
>> Hi,
>> 
>> is there a way to reasonably use two graphics cards with a single
>> display?
>> 
>> SLI won't work because it's retarded in requiring the GPUs to be the
>> same, which they aren't --- not to mention that the cards would be too
>> far away from each other in the slots for a bridge to fit.
>> 
>> So what I'm thinking of is like using one card as a default and being
>> able to use the other one to play a video in some window on the same
>> display, preferably managed by the same fvwm, with the window optionally
>> being fullscreen in size.  I'd like to do that because the card I have
>> isn't powerful enough to play a video while an open gl application is
>> running at the same time.
>> 
>> I'll probably get a better card once prices come down a bit, but it
>> might have the same problem, and why would I want to waste an otherwise
>> perfectly good graphics card.
>
> Yes, but it depends on your hardware setup. What's yours and why
> you need such unusual thing: connect two video cards to a single
> monitor, or do you mean by display X display spawn over multiple
> monitors?

a single monitor

> In case of laptops such configuration is quite common: they may
> have two video cards with single switchable output: intel card is
> used for general work to save power and nvidia card is used for
> applications, requiring high GPU performance. Switching is done
> using sys-power/bbswitch. But looks like this is not your case,
> since you are talking about card replacement, since most laptop GPU
> cards are not replaceable.

Right, it's not a laptop, and I don't want to switch between different
cards.

> If you want a multihead setup using two cards, this is trivial using
> either xinerama or X screens depending on your taste.

That is only simple when you have multiple monitors.

> As far as I understand your e-mail, you are trying to mux video
> outputs of two GPU cards to a single monitor (excuse me if I'm
> wrong, but it is hard to understand what your hardware is), this is
> also doable if your monitor supports dual input (most modern
> monitors do). This way separate X screens may be used to achive
> your goal. (Xinerama setup is also possible, but GL acceleration
> will be limited to abilities of the weakest card).

Exactly, but I don't want to use the picture-in-picture feature of the
monitor, and I don't want separate X screens, and I don't have room to
fit another monitor on my desk.

I simply want to use one of the graphics cards to handle an application
that uses open gl and the other one to play a video.

> But honestly I don't get why you need this: if you have a powerful
> GPU and it is not a laptop, where power consumption is critical,
> why just don't use that card? Most cards have multiple outputs, so
> it is not a problem to setup multihead with a single card either.

The GPU isn't quite powerful enough for some of what I'm doing.
Otherwise, it's a perfectly good card.

So I need to get a better graphics card, and once I do, it would be a
pity to have the current one laying around uselessly.  I wouldn't get
much if I tried to sell it, so I rather keep it in case I need a spare.
Buying another one which is the same, to use SLI, won't help, either.

IIUC, it takes some processing power to decode a video, so why not use
one of the cards for just that?  Multiple cards should be able to work
together.



Re: [gentoo-user] how to use two graphics cards with one display

2016-06-09 Thread lee
R0b0t1  writes:

> Use Bumblebee. It is the FOSS version of Optimus.

That seems to be for laptops having peculiar hardware.



Re: [gentoo-user] how to use two graphics cards with one display

2016-06-07 Thread R0b0t1
Use Bumblebee. It is the FOSS version of Optimus.


Re: [gentoo-user] how to use two graphics cards with one display

2016-06-06 Thread Andrew Savchenko
Hi,

On Sun, 05 Jun 2016 19:34:15 +0200 lee wrote:
> Hi,
> 
> is there a way to reasonably use two graphics cards with a single
> display?
> 
> SLI won't work because it's retarded in requiring the GPUs to be the
> same, which they aren't --- not to mention that the cards would be too
> far away from each other in the slots for a bridge to fit.
> 
> So what I'm thinking of is like using one card as a default and being
> able to use the other one to play a video in some window on the same
> display, preferably managed by the same fvwm, with the window optionally
> being fullscreen in size.  I'd like to do that because the card I have
> isn't powerful enough to play a video while an open gl application is
> running at the same time.
> 
> I'll probably get a better card once prices come down a bit, but it
> might have the same problem, and why would I want to waste an otherwise
> perfectly good graphics card.

Yes, but it depends on your hardware setup. What's yours and why
you need such unusual thing: connect two video cards to a single
monitor, or do you mean by display X display spawn over multiple
monitors?

In case of laptops such configuration is quite common: they may
have two video cards with single switchable output: intel card is
used for general work to save power and nvidia card is used for
applications, requiring high GPU performance. Switching is done
using sys-power/bbswitch. But looks like this is not your case,
since you are talking about card replacement, since most laptop GPU
cards are not replaceable.

If you want a multihead setup using two cards, this is trivial using
either xinerama or X screens depending on your taste.

As far as I understand your e-mail, you are trying to mux video
outputs of two GPU cards to a single monitor (excuse me if I'm
wrong, but it is hard to understand what your hardware is), this is
also doable if your monitor supports dual input (most modern
monitors do). This way separate X screens may be used to achive
your goal. (Xinerama setup is also possible, but GL acceleration
will be limited to abilities of the weakest card).

But honestly I don't get why you need this: if you have a powerful
GPU and it is not a laptop, where power consumption is critical,
why just don't use that card? Most cards have multiple outputs, so
it is not a problem to setup multihead with a single card either.

Best regards,
Andrew Savchenko


pgpYRvvxvEDJL.pgp
Description: PGP signature


[gentoo-user] how to use two graphics cards with one display

2016-06-05 Thread lee

Hi,

is there a way to reasonably use two graphics cards with a single
display?

SLI won't work because it's retarded in requiring the GPUs to be the
same, which they aren't --- not to mention that the cards would be too
far away from each other in the slots for a bridge to fit.

So what I'm thinking of is like using one card as a default and being
able to use the other one to play a video in some window on the same
display, preferably managed by the same fvwm, with the window optionally
being fullscreen in size.  I'd like to do that because the card I have
isn't powerful enough to play a video while an open gl application is
running at the same time.

I'll probably get a better card once prices come down a bit, but it
might have the same problem, and why would I want to waste an otherwise
perfectly good graphics card.