1. 30 Sep, 2020 1 commit
  2. 28 Sep, 2020 2 commits
  3. 26 Sep, 2020 1 commit
  4. 25 Sep, 2020 2 commits
    • Kishore409's avatar
      modesetting: keep going if a modeset fails on EnterVT · efb3abdd
      Kishore409 authored
      There was a time when setting a mode on a CRTC would not depend on the
      associated connector's state. If a mode had been set successfully once,
      it would mean it would work later on.
      
      This changed with the introduction of new connectors type that now
      require a link training sequence (DP, HDMI 2.0), and that means that
      some events may have happened while the X server was not master that
      would then prevent the mode from successfully be restored to its
      previous state.
      
      This patch relaxes the requirement that all modes should be restored on
      EnterVT, or the entire X-Server would go down by allowing modesets to
      fail (with some warnings). If a modeset fails, the CRTC will be
      disabled, and a RandR event will be sent for the desktop environment to
      fix the situation as well as possible.
      
      Additional patches might be needed to make sure that the user would
      never be left with all screens black in some scenarios.
      
      v2 (Martin Peres):
       - whitespace fixes
       - remove the uevent handling (it is done in a previous patch)
       - improve the commit message
       - reduce the size of the patch by not changing lines needlessly
       - return FALSE if one modeset fails in ignore mode
       - add comments/todos to explain why we do things
       - disable the CRTCs that failed the modeset
      Signed-off-by: Kishore409's avatarKishore Kadiyala <kishore.kadiyala@intel.com>
      Signed-off-by: Martin Peres's avatarMartin Peres <martin.peres@linux.intel.com>
      Reviewed-by: Daniel Vetter's avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Tested-by: Kishore409's avatarKishore Kadiyala <kishore.kadiyala@intel.com>
      Closes: #1010
      efb3abdd
    • Martin Peres's avatar
      modesetting: check the kms state on EnterVT · 293cf660
      Martin Peres authored
      Normally, we would receive a uevent coming from Linux's DRM subsystem,
      which would trigger the check for disappearing/appearing resources.
      However, this event is not received when X is not master (another VT
      is selected), and so the userspace / desktop environment would not be
      notified about the changes that happened while X wasn't master.
      
      To fix the issue, this patch forces a refresh on EnterVT by splitting
      the kms-checking code from the uevent handling into its own (exported)
      function called drmmode_update_kms_state. This function is then called
      from both the uevent-handling function, and on EnterVT right before
      restoring the modes.
      Signed-off-by: Martin Peres's avatarMartin Peres <martin.peres@linux.intel.com>
      Reviewed-by: Daniel Vetter's avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Acked-by: Kishore409's avatarKishore Kadiyala <kishore.kadiyala@intel.com>
      Tested-by: Kishore409's avatarKishore Kadiyala <kishore.kadiyala@intel.com>
      293cf660
  5. 24 Sep, 2020 2 commits
  6. 22 Sep, 2020 3 commits
  7. 21 Sep, 2020 1 commit
  8. 15 Sep, 2020 3 commits
  9. 08 Sep, 2020 3 commits
    • Uday Kiran Pichika's avatar
      modesetting: Allow users to opt-in VRR support · 97f858d3
      Uday Kiran Pichika authored
      Fetch VariableRefresh option value from X conf file for
      modesetting backend DDX driver. This option defaults to false,
      and must be set to "true" in conf file for variable refresh
      support in the DDX driver.
      Signed-off-by: default avatarUday Kiran Pichika <pichika.uday.kiran@intel.com>
      97f858d3
    • Uday Kiran Pichika's avatar
      modesetting: Detect changes to the _VARIABLE_REFRESH window properties · ede2c32c
      Uday Kiran Pichika authored
      Window wrappers gets the notification when the window
      properties changes. These wrappers are mainly used to
      keep track of per-window _VARIABLE_REFRESH property values.
      
      These changes have been ported from AMDGPU
      Signed-off-by: default avatarUday Kiran Pichika <pichika.uday.kiran@intel.com>
      ede2c32c
    • Uday Kiran Pichika's avatar
      modesetting: Lay the foundation for enabling VRR · 9823ea4e
      Uday Kiran Pichika authored
      These changes have been ported from AMD GPU DDX driver.
      
      This patch adds support for setting the CRTC variable refresh property
      for suitable windows flipping via the Present extension.
      
      In order for a window to be suitable for variable refresh it must have
      the _VARIABLE_REFRESH property set by the MESA and inform Modesetting
      DDX driver with window property updates.
      
      Then the window must pass the checks required to be suitable for
      Present extension flips - it must cover the entire X screen and no
      other window may already be flipping. And also DRM connector should
      be VRR capable.
      
      With these conditions met every CRTC for the X screen will have their
      variable refresh property set to true.
      
      Kernel Changes to support this feature in I915 driver is under development.
      
      Tested with DOTA2, Xonotic and custom GLX apps.
      Signed-off-by: default avatarUday Kiran Pichika <pichika.uday.kiran@intel.com>
      9823ea4e
  10. 07 Sep, 2020 4 commits
  11. 04 Sep, 2020 1 commit
  12. 01 Sep, 2020 4 commits
    • Roman Gilg's avatar
      xwayland: Replace need_rotate boolean with simple check on xdg-output · 727df0a7
      Roman Gilg authored
      The need_rotate variable is only used once anymore and had semantics which lead
      to errors in the past. In particular when negated we are dealing with a double
      negation.
      
      The variable gets replaced with a simple check on the xdg-output directly.
      Signed-off-by: Roman Gilg's avatarRoman Gilg <subdiff@gmail.com>
      727df0a7
    • Roman Gilg's avatar
      Revert "xserver: Fix a typo" · da791ed9
      Roman Gilg authored
      This reverts commit 427f8bc0.
      
      When receiving an output update for the mode size we need to rotate the stored
      width and height values if and only if we have an xdg-output for this output
      since in this case the stored values describe the output's size in logical
      space, i.e. rotated.
      
      The here reverted commit made a code change with which we would not rotate though
      when an xdg-output was available since in this case the need_rotate variable was
      set to False what caused in the check afterwards the first branch to execute.
      da791ed9
    • Roman Gilg's avatar
      xwayland: Switch width and height argument order · 92f4a9ad
      Roman Gilg authored
      That is just a small style-change to the output_get_new_size function. The
      function before did take first the height and then the width argument, what
      is unusual since resolutions are normally named the other way around, for
      example 1920x1080. Also compare the update_screen_size function.
      
      Therefore change the order of arguments for output_get_new_size.
      Signed-off-by: Roman Gilg's avatarRoman Gilg <subdiff@gmail.com>
      92f4a9ad
    • Roman Gilg's avatar
      xwayland: simplify output_get_new_size function · 1805383d
      Roman Gilg authored
      We can just read out the xdg_output field of the provided xwl_output to check
      if a rotation is necessary or not.
      
      This makes the function easier to understand. Additionally some documentation
      is added.
      Signed-off-by: Roman Gilg's avatarRoman Gilg <subdiff@gmail.com>
      1805383d
  13. 31 Aug, 2020 1 commit
  14. 25 Aug, 2020 8 commits
  15. 24 Aug, 2020 1 commit
  16. 18 Aug, 2020 1 commit
  17. 04 Aug, 2020 1 commit
  18. 31 Jul, 2020 1 commit