On Fri, Mar 20, 2015 at 1:40 PM, Gediminas Jakutis <[email protected]> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > Good day! > > - From Nouveau feature matrix page: >>SLI or even multicard setups are very rare among developers. >>You should start hacking with us, if you have such a setup. > > I have two GTX 770 cards running in SLI[1] and would like to help bringing > SLI capability into Nouveau. > > I would gladly write code for it and I am a competent C programmer per se > (C is my main language). But, I don't have much experience with graphics > programming and have very little experience when it comes to "talking" with > hardware directly. Thus, I am not confident I would manage to do it > properly. I would like to at least try, nonetheless. > > Any pointers on where to start and/or what things to research first?
One of the main issues with SLI is that it's unclear what to do. We have all the tools in place to be able to do it, just don't know what to do with that capability :) Let's say you wanted to, oh, I don't know... render a triangle. A really big triangle, to a 8Kx8K texture (or 16Kx16K). How would you leverage multiple graphics cards to help with that? One way to look at it is to take a line from tiled renderers and just consider that you have 2 tiles (or however many GPU's you have), do a binning pass, and then re-render the fragment shader across all GPU's. [Or screw the binning pass, just do the render on both GPU's but to different viewports. That could present complications for shaders that want to operate on global state with things like ARB_ssbo/etc though. But you could just kick them off the SLI path if they do anything you don't like.] Another approach is to keep track of which draw depends on what, and if you're executing a draw, allow another draw to execute on another GPU if it has no dependencies on that first draw's output. Perhaps there are other things still you might do. Not that I want to discourage you from working on this, but there will be a LOT or roadblocks, from trivial things to actually getting mesa to feed 2 GPUs to a single driver, to the fact that the driver isn't really structured to take advantage of this. If you're looking to contribute to nouveau, I'd recommend you join #nouveau on freenode and discuss there. Perhaps there are other projects you'd be equally interested in but are more immediately actionable. And then you could build up the knowledge to eventually tackle SLI. Cheers, -ilia _______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
