• Products
    • Isadora
    • Get It
    • ADD-ONS
    • IzzyCast
    • Get It
  • Forum
  • Help
  • Werkstatt
  • Newsletter
  • Impressum
  • Dsgvo
  • Press
  • Isadora
  • Get It
  • ADD-ONS
  • IzzyCast
  • Get It
  • Press
  • Dsgvo
  • Impressum

Navigation

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags

    Arranging Multiple Stages for Best Performance

    How To... ?
    4
    8
    3902
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mark
      mark last edited by mark

      Dear Community,

      The arrangement of your displays in the Displays Preference Pane (Mac OS) or the Displays Control Panel (Windows) can greatly impact performance when rendering to multiple Stages, especially true on Windows. 

      To get the best possible performance from Isadora when rendering to multiple stages, it is important that all the stages are the same resolution and that you align their top or left edges. This article explains why this is important and gives specific examples of good and bad display arrangements.

      For all of these examples, we're assuming that Isadora's User Interface is on the main display 1. The alignment of this display in relation to the others has no impact on performance; you can place it in any relationship you wish to the displays used as Isadora Stages.

      When Isadora creates the output stages, it attempts to combine contiguous areas of the screen into one OpenGL context. For example, if you are using three Stages, and they are assigned to displays 2, 3 and 4, this would be the optimum arrangement.


      In this case, all outputs are the same size (1920x1080) and the top edges of all three outputs are aligned. When the displays are organized like this, Isadora can create one large OpenGL context that spans displays 2, 3 and 4. Why is this important? Because, after rendering each frame, one must perform an operating called "swapping," which brings the makes the new image visible. To prevent "tearing" (glitching) of the image, OpenGL has to wait for something called "monitor synchronization." On a 60Hz Monitor, this can take as long as 16.7 mS, which is 1/2 of a frame at 30 fps. By combining all the outputs in this way, Isadora this waiting period is never more than the maximum. (Isadora attempts to align its rendering frequency so that the time spent waiting for the swap is as small as possible, but heavy patches can disturb this alignment.)

      Now consider this monitor arrangement:


      Because the edges of displays 2, and 3 are aligned, Isadora creates a single context for those two displays. But because display 4 is not aligned with 2 and 3, it creates a second context. When it renders the stages, it now must "swap" these two contexts separately. In the worst case scenario, Isadora would have wait 33.4 mS (16.7 x 2) which is the duration of one frame at 30 fps. This can lead to a noticeable slow down of the frame rate.

      The same result can occur when one of the stages is not the same resolution as the others. This arrangement would also result in two OpenGL contexts:


      Similarly, you will get a second context if you put the user interface display (1) between the first and second stages.

      Finally consider this monitor arrangement, which is the worst case scenario:


      Because the top/bottom edges of displays 2, 3 and 4 are not aligned, must instead create three separate OpenGL output contexts. When it renders the Stages, it now must "swap" each one separately. In this case, Isadora might wait as long as 50.1 mS (16.7 x 3) on a 60Hz monitor, which is now longer than the duration of a single frame. This can have a drastic effect on your frame rate.

      Media Artist & Creator of Isadora
      Macintosh SE-30, 32 Mb RAM, MacOS 7.6, Dual Floppy Drives

      1 Reply Last reply Reply Quote 4
      • mark_m
        mark_m last edited by

        Great, thanks so much for that: the explanation is really helpful.

        Intel NUC8i7HVK Hades Canyon VR Gaming NUC, i7-8809G w/ Radeon RX Vega M GH 4GB Graphics, 32GB RAM, 2 x NVMe SSD
        Gigabyte Aero 15 OLED XD. Intel Core i7-11800H, NVidia RTX3070, 32GB RAM 2 x NVMe SSD
        PC Specialist Desktop: i9-14900K, RTX4070Ti, 64GB RAM, Win11Pro
        www.natalieinsideout.com

        1 Reply Last reply Reply Quote 0
        • DusX
          DusX Tech Staff last edited by

          Very informative.

          I would suggest this is promoted to a KB article.

          Troikatronix Technical Support

          • New Support Ticket Link: https://support.troikatronix.com/support/tickets/new
          • My Add-ons: https://troikatronix.com/add-ons/?u=dusx
          • Profession Services: https://support.troikatronix.com/support/solutions/articles/13000109444-professional-services

          Running: Win 11 64bit, i7, M.2 PCIe SSD's, 32gb DDR4, nVidia GTX 4070 | located in Ontario Canada.

          mark 1 Reply Last reply Reply Quote 0
          • mark
            mark @DusX last edited by

            @DusX

            Knowledge base article already created under "Best Practices."

            Best,
            M

            Media Artist & Creator of Isadora
            Macintosh SE-30, 32 Mb RAM, MacOS 7.6, Dual Floppy Drives

            Fred 1 Reply Last reply Reply Quote 1
            • Fred
              Fred @mark last edited by

              @mark and @DusX do either of you know how this works with Vision Surround from nvidia or amds eyefinity? These amalgamate multiple displays into a single output?

              http://www.fredrodrigues.net/
              https://github.com/fred-dev
              OSX 13.6.4 (22G513) MBP 2019 16" 2.3 GHz 8-Core i9, Radeon Pro 5500M 8 GB, 32g RAM
              Windows 10 7700K, GTX 1080ti, 32g RAM, 2tb raided SSD

              mark 1 Reply Last reply Reply Quote 0
              • mark
                mark @Fred last edited by

                @Fred

                No idea. @DusX?

                Best,
                Mark

                Media Artist & Creator of Isadora
                Macintosh SE-30, 32 Mb RAM, MacOS 7.6, Dual Floppy Drives

                1 Reply Last reply Reply Quote 0
                • DusX
                  DusX Tech Staff last edited by

                  sorry. I don't know either.

                  Troikatronix Technical Support

                  • New Support Ticket Link: https://support.troikatronix.com/support/tickets/new
                  • My Add-ons: https://troikatronix.com/add-ons/?u=dusx
                  • Profession Services: https://support.troikatronix.com/support/solutions/articles/13000109444-professional-services

                  Running: Win 11 64bit, i7, M.2 PCIe SSD's, 32gb DDR4, nVidia GTX 4070 | located in Ontario Canada.

                  Fred 1 Reply Last reply Reply Quote 0
                  • Fred
                    Fred @DusX last edited by

                    @mark just to add a note to this, I get substantially better playback performance with monitors plugged in. Showing stage previews on my laptop monitor for example, I get half the frame rate and 1/4 of the cycles compared with having screens attached.

                    http://www.fredrodrigues.net/
                    https://github.com/fred-dev
                    OSX 13.6.4 (22G513) MBP 2019 16" 2.3 GHz 8-Core i9, Radeon Pro 5500M 8 GB, 32g RAM
                    Windows 10 7700K, GTX 1080ti, 32g RAM, 2tb raided SSD

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post