• 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

    [LOGGED] Isadora and Windows display settings not matching

    Feature Requests
    4
    11
    2686
    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_m
      mark_m last edited by Woland

      I want to bump this up as it's causing me all sorts of grief again:

      https://community.troikatronix...

      Here's the problem: Isadora and Windows use different numbering for the displays. Windows is always consistent in how it numbers the displays. Isadora seems quite random about it. Is it not possible to get Isadora to use the same numbering as Windows? Every time I start up Isadora I have to check that the right stage is showing on the right display, and often have to rearrange things.

      Look: this is how Isadora sees the displays



      And this is how Windows sees them:

      So display #1 in Windows is display #2 in Isadora.
      Why is this an issue? Because there seems to be a randomness in how Isadora assigns stages to displays each time I start up the program. I have to check - and often reassign - each time I launch the program. Windows, on the other hand, seems pretty consistent in its numbering of the displays.

      I reported this as bug #4501423 a while ago but it seems to have slipped off the radar :-)

      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

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

        @mark_m I had the same issue and also made a bug report and post. I could not get back to the system to make a video of it as I left for a tour with different gear.

        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 1
        • mark
          mark last edited by mark

          Dear All,

          @DusX has brought this to my attention and put it in our "hot list" again. We will revisit this problem.

          Regarding Isadora's numbers matching the Displays Control Panel object, I had researched this extensively during the development of Isadora because we saw that it was a problem. What I found was this thread: https://social.msdn.microsoft.... and particularly this response from the Microsoft Shell team, who manages this part of the operating system.

          "I discussed this with the Shell team. Here is the team's response: There is not a supported way to figure out the IDs that you referred to programmatically. It was never a design goal to provide a way for applications to label monitors with the same IDs that the screen resolution control panel uses. What is your application trying to accomplish?"

          The responses to the Microsoft "answer" start with "With all due respect, I find the answers given to the OP by your team a cop-out and frankly nonsensical" which echoes my own feeling as I read Microsoft's answer. (Also take note of the comment "Any chance you have an answer to this question, after almost 10 years?")

          To the point: the last response in the thread echoes the problems you outline here: the person tried the code that was offered, but says thtat "DISPLAY1 corresponds to the external monitor which should be #2 and DISPLAY2 is the built-in, which should be #1." In other words, the code discussed there doesn't solve the problem.

          I tried all the potential solutions offered there, and others of my own design, but eventually I gave up trying because none of them worked. We will look into it again and see what we can find out. But I'm not terribly hopeful I'm afraid.

          Best WIshes,
          Mark

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

          mark_m 1 Reply Last reply Reply Quote 2
          • mark_m
            mark_m @mark last edited by

            @mark

            Thanks for pursuing this. Very much appreciated. Hopefully things have moved on since those posts, especially as multi-monitor configurations have become much more common. If I can help in any way do let me know. Our show runs on the Hades Canyon computer in my sig, all off the same graphics card, and I use one 1920x 1080 monitor and three 1400 x 1050 projectors. I've plenty of time to test stuff at the moment.

            All the best from Mark in will-we-won't-we-Brexit-Britain

            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 1
            • mark
              mark last edited by mark

              @mark_m said:

              Hopefully things have moved on since those posts, especially as multi-monitor configurations have become much more common.

              The fact that these are old posts, and that they have no followup solutions, is unfortunately not a good sign. Again, I researched this extensively and as far as I can determine,, Microsoft has never addressed this issue.

              But to give a few more examples, just so you know I'm not being lazy here:

              See https://stackoverflow.com/ques... "Windows does not provide a function that allows applications to obtain the numbers used by the display settings app. The numbers themselves are specific only to the display settings app and have no meaning in the system or in the CCD APIs used to query/set the display topology"

              And here: https://stackoverflow.com/ques... "Also, the order that monitors are returned by EnumDisplayMonitors appears to be random. Most of the time it will return them in the same order, but if you have 2 video cards driving 3 monitors, it can change around."

              https://stackoverflow.com/ques... -- Unanswered.

              I will nevertheless spend time looking again to see if anything else shows up.

              Best Wishes,
              Mark

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

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

                @mark said:

                just so you know I'm not being lazy here:

                 That is the last thing I think anyone could ever accuse you of!!

                What about a different approach, which is to use the EDID information from each display?
                The aim is for the same stage to open on the same display each time. It's not strictly necessary for the displays as enumerated by Windows to match the displays as enumerated by Isadora.
                Each display has unique properties which are in the EDID, including the serial number.
                Is there a way to use the serial number of a display to wed it to a stage? 
                Using this utility I can see the EDID for each display, and read the serial number and the registry entry.
                Seeing which physical display has which serial number is easy: it's on the display itself and also often accessible from the display's menu. So if I can assign stage to display using the serial number from the EDID information, and Isadora will always say "Stage One is DELLP2715Q V48W2713BQAL (and not DELLP2715Q 32R1F4AA290L) then my problem would be solved. I think.

                Of course I have no idea if this is possible / plausible or just plain laughable! But throwing it out there....



                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
                • Juriaan
                  Juriaan Tech Staff last edited by

                  Just throwing my 5 cents into this discussion..

                  Is the number not based on the hardware port of the configuration of the PC / Laptop ?

                  It seems that we can enumerate through the adapters using DXGI to get the display name and System ID / what type of screen this is connected through.. Perhaps this array is sorted by index that matches the screen and the name inside the value of the array is the screen itself ? Just throwing some balls out there :)

                  https://docs.microsoft.com/nl-...

                  Isadora 3.1.1, Dell XPS 17 9710, Windows 10
                  Interactive Performance Designer, Freelance Artist, Scenographer, Lighting Designer, TroikaTronix Community moderator
                  Always in for chatting about interaction in space / performance design. Drop me an email at hello@juriaan.me

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

                    @juriaan said:

                    It seems that we can enumerate through the adapters using DXGI to get the display name and System ID / what type of screen this is connected through

                     This does not seem to be true. I created a command line app called DXGIEnumeration to list the connected displays through this method. I tried several tests, but this scenario shows the disconnect between the Monitors control panel and the DXGI list.

                    1) Start from this setup:

                    1080p Monitor is on left is Display #2
                    4K Monitor on right is Display #1

                    2) Run DXGIEnumeration

                    Adapter: 0, description: NVIDIA GeForce GTX 1060
                    Adapter: 1, description: Microsoft Basic Render Driver
                    Found monitor 0 on adapter: 0
                    Found monitor 1 on adapter: 0
                    Monitor: \\.\DISPLAY2, pos = 0, 0, size = 1920 x 1080, attached: YES
                    Monitor: \\.\DISPLAY1, pos = 1920, 0, size = 2560 x 1440, attached: YES

                    So, this yields the following:
                    1080p Monitor: Index In List = 1, Name = DISPLAY2
                    4K Monitor: Index In List = 2, Name = DISPLAY1

                    3a) Unplug and 4K Display
                    3b) Reboot and wait until reboot complete
                    3c) Replug 4K Display

                    4) Displays Control Panel looks like this now

                    So the order would seem to be intact. But then...

                    5) Run DXGIEnumeration

                    Adapter: 0, description: NVIDIA GeForce GTX 1060
                    Adapter: 1, description: Microsoft Basic Render Driver
                    Found monitor 0 on adapter: 0
                    Found monitor 1 on adapter: 0
                    Monitor: \\.\DISPLAY1, pos = 0, 0, size = 1920 x 1080, attached: YES
                    Monitor: \\.\DISPLAY2, pos = 1920, 0, size = 2560 x 1440, attached: YES

                    1080p Monitor: Index In List = 1, Name = DISPLAY1
                    4K Monitor: Index In List = 2, Name = DISPLAY2

                    6) Swap left and right monitor in Displays Control panel and then reboot

                    #1 = 4K Display on left
                    #2 = 2K Display on right



                    7) Run DXGIEnumeration
                    Adapter: 0, description: NVIDIA GeForce GTX 1060
                    Adapter: 1, description: Microsoft Basic Render Driver
                    Found monitor 0 on adapter: 0
                    Found monitor 1 on adapter: 0
                    Monitor: \\.\DISPLAY2, pos = 0, 0, size = 1920 x 1080, attached: YES
                    Monitor: \\.\DISPLAY1, pos = -3840, 0, size = 2560 x 1440, attached: YE

                    1080p Monitor: Index In List = 1, Name = DISPLAY2
                    4K Monitor: Index In List = 2, Name = DISPLAY1

                    The names change back but the order of the list did not change even though the horizontal order did indeed change.

                    FINDINGS

                    There is no consistent relationship between the Displays Control panel numbering and the output of the DXGI scan. :-(

                    Does anyone feel that I'm missing something???

                    I can tell you in advance that the other methods Windows offers to enumerate the displays suffer from the same problems.

                    In terms of @mark_m 's idea to use the monitor serial numbers: it could work, but I've seen multiple cases in our tests where that serial number is not present (i.e., a blank string) or -- in one case I remember -- was identical for two different monitors of the same make and model. It might work in some cases, but not all -- though I suppose success in some situations better than no success.

                    Here's the DXGIEnumeration app for your sleuthing pleasure.

                    DXGIEnumeration.zip

                    Best Wishes,
                    Mark


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

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

                      Thanks, @mark for your investigations....

                      This is what I get

                      Adapter: 0, description: NVIDIA GeForce GTX 980
                      Adapter: 1, description: Microsoft Basic Render Driver
                      Found monitor 0 on adapter: 0
                      Found monitor 1 on adapter: 0
                      Found monitor 2 on adapter: 0
                      Monitor: \\.\DISPLAY1, pos = 0, 0, size = 2560 x 1440, attached: YES
                      Monitor: \\.\DISPLAY2, pos = 3840, 0, size = 2560 x 1440, attached: YES
                      Monitor: \\.\DISPLAY3, pos = -1920, 0, size = 1920 x 1200, attached: YES

                      Where my setup is like this:




                      So there's something a little awry here: what the DXGIEnumeration tool reports as Display 1 the Windows Display Control Panel reports as Display 2, and likewise Display 2 in DXGIEnumeration is Display 1 in Display Control Panel. They do agree on Display 3 though... :-)
                      Maybe not relevant at all, but why is it reporting our UHD (3840 × 2160) monitors as 2560 x 1440px?

                      Cheers

                      Mark


                      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

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

                        @mark_m @Juriaan 

                        Well, 

                        I'm not sure about why it's reporting the resolution incorrectly. I created this app only to show that I'm taking this seriously and investigating every avenue. I'm not going to spend any time working on DXGIEnumeration because, bottom line, the DXGI API does not give me the information I need to match the display order shown in the control panel.

                        I will add that it is frustrating for me that at 30+ years into the development of the personal computer, we can't reliably depend on the monitor order and that the operating system gives little aid in managing this.

                        Best Wishes,
                        Mark

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

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

                          @mark

                          Thank you for taking this seriously and investigating every avenue. I can only imagine the frustration...

                          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
                          • First post
                            Last post