My company has recently purchased a pair of ATI 5870 Eyefinity six cards from ASUS. I wanted to utilize WGL_AMD_gpu_association to leverage the computations required for us to get the correct image for all outputs. I am using Windows 7 x64 with the 10.7 driver suite. I was successful, but there are some things I do not understand.
1. If I do not enable any graphics outputs on my secondary card, it's state becomes disabled in the catalyst control center. However wglGetGPUIDsAMD will enumerate it, but fails to create an associated context on it. Calling wglCreateAssociatedContextAMD with it's GPU ID returns 0, but GetLastError also returns 0. I think this is not working according to specs.
2. I have created a small application that renders to an associated context on the second card and blits it to the first card. I have found the following problems:
When I use wglBlitContextFramebufferAMD the call sometimes starts to block indefinitely causing the program to hang. Even if I use one of glFlush or glFinish to wait for command completion. (glWaitClientSync is not an option, as I am currently running on a single thread.) However if I call glReadPixels immediately before calling blit it works even if I just read a single pixel. Does the rendering for the associated context and the real context need to be in separate CPU threads? If so shouldn't this be stated in the extension specs?
Any answer to these questions would be really appreciated. If necessary, I can also send you some source code.