Announcement

Collapse
No announcement yet.

Multiple asics?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Multiple asics?

    Looking for some sort of guestimate on when the OSS driver will be working with multiple asics. Multiseat is specifically what i'm talking about. Like is this even in there to do list? Thanks

    Jamey

  • #2
    General answer first, then specific (but vague ) :

    Under the current RandR model you are practically limited to a single GPU. The addition of multiple GPU support to RandR depends on implementing a mechanism to split drawing operations across multiple GPUs, commonly known as "shatter". MostAwesomeDude will be working on shatter over the summer under a GSOC project, so if nothing else by the end of the summer there will probably be a working prototype and any remaining issues should be a lot more clear.

    For the specific case of multiseat you probably don't need shatter and just need a way to configure each of the GPUs, but I suspect that adding "multiseat only" multi-GPU support to RandR is considered a lower priority than a more general solution.

    It's possible that the current drivers (radeon running in "zaphod mode") might be useable for multiseat today; I saw a few posts that "implied" it could work with multiple GPUs but did not actually say it ;(
    Last edited by bridgman; 23 July 2009, 11:09 PM.
    Test signature

    Comment


    • #3
      Originally posted by bridgman View Post
      General answer first, then specific (but vague ) :

      Under the current RandR model you are practically limited to a single GPU. The addition of multiple GPU support to RandR depends on implementing a mechanism to split drawing operations across multiple GPUs, commonly known as "shatter". MostAwesomeDude will be working on shatter over the summer under a GSOC project, so if nothing else by the end of the summer there will probably be a working prototype and any remaining issues should be a lot more clear.

      For the specific case of multiseat you probably don't need shatter and just need a way to configure each of the GPUs, but I suspect that adding "multiseat only" multi-GPU support to RandR is considered a lower priority than a more general solution.

      It's possible that the current drivers (radeon running in "zaphod mode") might be useable for multiseat today; I saw a few posts that "implied" it could work with multiple GPUs but did not actually say it ;(
      Hi Bridgeman, I'd like to add to what you said based on my own expierence.

      I use Zaphod mode with my monitors. I've found that with the radeon driver I can get it to work if both displays are on the same card. It doesnt work if I have one plugged into the onboard 3200hd and one plugged into the x1950pro. That may be due to the fact that it is two different chips and the driver may not know how to deal with that. I have not tested it on two of the same discreet cards, say two x1950pros for example. It may well work if both chips are the same, but I havent tested this out yet.

      Comment


      • #4
        Originally posted by duby229 View Post
        Hi Bridgeman, I'd like to add to what you said based on my own expierence.

        I use Zaphod mode with my monitors. I've found that with the radeon driver I can get it to work if both displays are on the same card. It doesnt work if I have one plugged into the onboard 3200hd and one plugged into the x1950pro. That may be due to the fact that it is two different chips and the driver may not know how to deal with that. I have not tested it on two of the same discreet cards, say two x1950pros for example. It may well work if both chips are the same, but I havent tested this out yet.
        It should work with two discrete cards and should work with an IGP and a discrete card as long as the IGP card is set as the primary in the bios. I should be possible to support the IGP card as a secondary as well, however the driver needs some work for accessing the IGP rom in that case.

        Comment


        • #5
          Bridgman: We need to start an X-server on each card for multi-seat. So we won't need RandR to draw across different cards, 'cause each X-server will have its own 'RandR'..., right?

          So.. is this a limitation in the driver or in X?

          Btw: I just subscribed for a year :-). Long live Phoronix.

          Comment


          • #6
            It's not actually RandR that draws across multiple cards -- RandR is really a configuration/control protocol (originally the "Resize and Rotate" etxtension) - so you need it to support multiple GPUs even for basic stuff like setting modes and enabling/disabling screens.

            RandR happens to make some *assumptions* about how the driver is implemented (one big frame buffer for all the screens), and that's what limits conventional use on multiple GPUs today. Without the ability to use it on multiple GPUs in a normal way, there hasn't been much developer interest in adding the ability to configure multiple GPUs either, and it's that part you need for multiseat.

            So... as I understand it the issue is a protocol limitation, implemented in both server and driver as well as in any control panels which might be used to configure the screens. In principle the protocol could be extended to support multiseat without waiting for something like "shatter" (which also hits both server and driver AFAIK) but doing that doesn't make a lot of sense because whatever was added would probably need to change again after "real" multi-GPU support was added in order to work with whatever shatter turned out to be.

            Did that help or make things worse ?
            Test signature

            Comment


            • #7
              Thanks Bridgman, this clears some thing up, yes.

              Do you happen to know if there is documentation out there regarding how X works? Because I really feel stupid asking these questions all the time on these forums.

              Comment


              • #8
                well.. in theory, if you have two different gfx cards, you can spawn two seperate X servers, :0 on card 0, :1 on card 1. You need to disable most auto-detection stuff and specify the input devices in each xorg.conf, and there's some further magic with -novtswitch and the likes to take care of, but.. if you have two independent gfx cards and the drivers don't make stupid assumptions, it should work. No XRandR involved, since each GPU has it's own X server.

                Since most devs don't care about such setups, it's probably up to you to see if it does actually work


                The issue might be different with two GPUs on a single X2 card.. no idea if those can be addressed individually.

                Comment


                • #9
                  This is what I do right now . It's only working with the closed-source drivers of NVidia, though.

                  My current setup:
                  Code:
                  01:00.0 VGA compatible controller: ATI Technologies Inc Radeon HD 3870
                  02:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7300 GT] (rev a1)
                  03:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7300 GT] (rev a1)
                  As long as the ATi card is primary, it all runs OK.

                  Too bad devs don't care about it.

                  Comment


                  • #10
                    I'm no expert on any of these things, but the general X / DRI-architecture should prevent an X server from messing with a gfx card it doesn't care about.

                    There are some drivers though that interpret "initialize this card" as "initialize any card you can find", which calls for trouble in multiseat-setups. Or so I've read.

                    Can you elaborate what doesn't work when the ATI card isn't the primary card? Or what doesn't work when not using nvidia's proprietary drivers?

                    Not that I'd be able to help, I'm just curious

                    Comment

                    Working...
                    X