Jump to content

  • Log In with Google      Sign In   
  • Create Account

Sharing textures among multiple GPUs?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 moon2012   Members   -  Reputation: 100

Like
0Likes
Like

Posted 09 April 2012 - 02:14 AM

Hi,
Is there anybody who has the experience to share textures(in video memory) among multiple GPUs?
I'm doing multi-monitor development. On the machine(OS is win7), there are two or more ATI display cards(FirePro 2460 or other), each display card has one GPU and more than one output(FirePro 2460 has 4 outputs).
As the SDK mentioned, Direct3D resources can now be shared between devices or processes from Direct3D 9 for Windows Vista, so for each monitor, I create a Direct3D9 device; only one device create the texture and shared it to other devices. This can work well for one display card(that means the machine only use one display card's 4 outputs and connect to 4 monitors), but for two or more display cards, when calling CreateTexture and pass the shared handle to it, it return 0x80070057( An invalid parameter was passed to the returning function).
Can anybody tell me that whether Direct3D support it or not? Or other methods?
It seems that OpenGL can share textures among multiple GPUs.

Sponsor:

#2 Nik02   Crossbones+   -  Reputation: 2923

Like
1Likes
Like

Posted 09 April 2012 - 03:07 AM

The textures of two separate GPUs are physically in different memory chips. One GPU cannot access memory allocated on an another (except by copying the data via system memory).

Some Crossfire/SLI implementations could implement resource synchronization but the connection does not have nearly the same bandwidth as a PCI-X bus.

OpenGL drivers do software synchronization to make this scenario possible. In D3D, you can manually copy the data to multiple physical textures. Note that readbacks from GPU to system memory are usually relatively slow.

Niko Suni


#3 eile   Members   -  Reputation: 122

Like
0Likes
Like

Posted 12 April 2012 - 01:09 AM

You can't share contexts between GPUs. You have to manage the textures to each GPU separately. More (OpenGL-specific) information can be found at http://www.equalizergraphics.com/documentation/parallelOpenGLFAQ.html

#4 eile   Members   -  Reputation: 122

Like
0Likes
Like

Posted 12 April 2012 - 01:10 AM

Forgot to mention this: there is also WGL_NV_copy_image to do GPU->GPU transfers.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS