3 Replies Latest reply on Mar 5, 2015 3:21 AM by no3z

    ADL_Display_PossibleMode_Get on Linux

    no3z

      Hello everybody,

       

      I am having some difficulties while trying to get the possible modes for each connected display on Ubuntu 12.04 with latest 14.301 FirePro drivers.

      Following the adlutil example from ADL_7.0 I can now obtain the current display mode for each screen, but when I try to get the possible modes for the monitor it always returns the same data, as if it were returning the possible modes for adapter 0, display 0 all the time:

       

      I have 3 displays attached, the first two at 1920x1080 and a third one at 1280x1024, this is the code that produces the above output:

       

      for (int j = 0; j < iNumDisplays; j++ )
      {
        //(..omitted code for mapped displays etc...)
        // Obtain the ADL_Display_Modes_Get
        ADL_Err = ADL_Display_Modes_Get ( iAdapterIndex, iDisplayIndex, &iNumModes, &lpADLMode );
        if(!ADL_Err) 
        {
          printCurrentMode(lpADLMode);
          // Obtain the ADL_Display_PossibleMode_Get
          ADL_Err = ADL_Display_PossibleMode_Get ( lpADLMode->iAdapterIndex, &iNumModes, &lpPossibleADLMode );
          if(!ADl_err) {
            for(int i=0; i < iNumModes; ++i) { printPossibleMode(&lpPossibleADLMode[i],true); }
          }
        }
      }
      


      Get AdapterIndex    0, DisplayIndex    0 current mode:

      Width           1920

      Height          1080

      RefreshRate     60.00

      Possible Display Modes: (   A-idx: ADLMode->iAdapterIndex, D-Idx: ADLMode->displayID.iDisplayLogicalIndex   )

                      A-idx 0 D-Idx 0 W  1920 H  1080  RR 60.00

                      A-idx 0 D-Idx 0 W  1680 H  1050  RR 60.00

                     (.....)

                      A-idx 0 D-Idx 0 W  640 H  480    RR 60.00

       

      Get AdapterIndex    1, DisplayIndex    4 current mode:

      Width           1920

      Height          1080

      RefreshRate     60.00

      Possible Display Modes:

                      A-idx 0 D-Idx 0 W  1920 H  1080  RR 60.00

                      A-idx 0 D-Idx 0 W  1680 H  1050  RR 60.00

                     (.....)

                      A-idx 0 D-Idx 0 W  640 H  480    RR 60.00

                                                                                                                  

      Get AdapterIndex    2, DisplayIndex    16 current mode:                                                                                                                                                            

      Width           1280                                                                                                                                                          

      Height          1024                                                                                                                                                                                                                                                                                                        

      RefreshRate     60.00                                                                                                                                                         

                      A-idx 0 D-Idx 0 W  1920 H  1080  RR 60.00

                      A-idx 0 D-Idx 0 W  1680 H  1050  RR 60.00

                      A-idx 0 D-Idx 0 W  1600 H  900   RR 60.00

                      A-idx 0 D-Idx 0 W  1440 H  900   RR 60.00

                      A-idx 0 D-Idx 0 W  1400 H  1050  RR 60.00 (This modes are not possible for this display)

                      A-idx 0 D-Idx 0 W  1280 H  1024  RR 60.00

                      A-idx 0 D-Idx 0 W  1280 H  960   RR 60.00

                      A-idx 0 D-Idx 0 W  1280 H  768   RR 60.00

                      A-idx 0 D-Idx 0 W  1280 H  720   RR 60.00

                      A-idx 0 D-Idx 0 W  1152 H  864   RR 60.00

                      A-idx 0 D-Idx 0 W  1024 H  768   RR 60.00

                      A-idx 0 D-Idx 0 W  800 H  600    RR 60.00

                      A-idx 0 D-Idx 0 W  640 H  480    RR 60.00

       

      I've been trying to figure this out for quite some time but I am unable to get the correct possible modes no matter what.

      Could this be a problem in the ADL, Drivers side?

       

      Any help would be greatly appreciated.

       

      Regards,

        • Re: ADL_Display_PossibleMode_Get on Linux

          The engineering team has investigated, replicated the problem, and created a defect report for this issue. Obviously I can't predict if/when it will be fixed, or in what release. If I learn more I'll report that here. Issue# is 415233.

           

          Thanks for the report.

            • Re: ADL_Display_PossibleMode_Get on Linux
              kmadired

              Hi,

              The behavior detailed here is expected because of the following reason.

               

              ADL_Display_PossibleMode_Get (lpADLMode->iAdapterIndex, &iNumModes, &lpPossibleADLMode ) method gets the possible modes based on the screen number rather adapter index.

              Screen numbers will be decided based on the displays configuration and ADL gets the screen number based on the adapter index passed.

              • If 2 displays are in clone mode or Multi-display desktop mode, all the displays have one screen[Screen 0]. Hence for all the displays same possible modes will be returned.
              • If 2 displays are in Multi-desktop(single independent display) mode, each display have different screen numbers.[Screen 0, Screen 1]. Hence for each display different possible modes will be returned.

              ADL_Display_PossibleMode_Get() method internally calls “FGLGetDisplayMode” which doesn't return adapter and display index. Hence lpPossibleADLMode->iAdapterindex and lpPossibleADLMode->displayID.iDisplayLogicalIndex always be zero.

               

              If different displays are configured into Multi-desktop(single independent display) mode and the method still returns same possible modes then it is driver issue.

               

              Thanks,

              Kavitha

                • Re: ADL_Display_PossibleMode_Get on Linux
                  no3z

                  Hello,

                   

                  Thanks for the response, seems I was expecting different results when in multi-monitor mode.

                  I've done the same tests with single screens configured and now the results returned are correct.

                  Seems I will need to get the possible modes using X extensions when in multi-monitor, although the results are not correct neither. But that is another battle.

                  Thanks very much for your time and feedback.

                   

                  Regards