1. 20 Jul, 2021 1 commit
  2. 15 Sep, 2020 1 commit
  3. 18 Feb, 2020 2 commits
  4. 29 Nov, 2018 1 commit
  5. 28 Mar, 2018 5 commits
  6. 05 Mar, 2018 2 commits
  7. 24 Jan, 2018 1 commit
  8. 23 Nov, 2017 1 commit
  9. 04 Oct, 2017 1 commit
  10. 08 Feb, 2017 1 commit
  11. 01 Feb, 2017 1 commit
  12. 10 Jan, 2017 1 commit
  13. 15 Aug, 2016 2 commits
  14. 28 Jul, 2016 1 commit
  15. 17 Jun, 2016 3 commits
    • Hans de Goede's avatar
      xrandrprovider: Do not use separate lists for unbound / source / offload slaves · 5c7af02b
      Hans de Goede authored
      
      
      A single provider can be both a offload and source slave at the same time,
      the use of seperate lists breaks in this case e.g. :
      
      xrandr --listproviders
      Providers: number : 2
      Provider 0: id: 0x7b cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 2 associated providers: 0 name:modesetting
      Provider 1: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 5 associated providers: 0 name:modesetting
      
      xrandr --setprovideroutputsource 1 0x7b
      xrandr --listproviders
      Providers: number : 2
      Provider 0: id: 0x7b cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 2 associated providers: 1 name:modesetting
      Provider 1: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 5 associated providers: 1 name:modesetting
      
      xrandr --setprovideroffloadsink 1 0x7b
      xrandr --listproviders
      Providers: number : 3
      Provider 0: id: 0x7b cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 2 associated providers: 2 name:modesetting
      Provider 1: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 5 associated providers: 2 name:modesetting
      Provider 2: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 5 associated providers: 2 name:modesetting
      
      Not good. The problem is that the provider with id 0x46 now is on both
      the output_slave_list and the offload_slave_list of the master screen.
      
      This commit fixes this by unifying all 3 lists into a single slaves list.
      
      Note that this does change the struct _Screen definition, so this is an ABI
      break. I do not expect any of the drivers to actually use the removed / changed
      fields so a recompile should suffice.
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
      5c7af02b
    • Chris Wilson's avatar
      present: Fix presentation of flips out of order · bab0f450
      Chris Wilson authored
      
      
      The flip queue currently only holds events submitted to the driver for
      flipping, awaiting the completion notifier. It is short. We therefore
      can speed up interrupt processing by keeping the small number of events
      ready to be flipped on the end of the flip queue. By appending the
      events to the flip_queue in the order that they become ready, we also
      resolve one issue causing Present to display frames out of order.
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-and-tested-by: Mario Kleiner's avatarMario Kleiner <mario.kleiner.de@gmail.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      bab0f450
    • Chris Wilson's avatar
      present: Improve scaling of vblank handler · fbe660b7
      Chris Wilson authored
      
      
      With large numbers of queued vblank, the list iteration on every
      interupt dominates processing time. If we reorder the list to be in
      ascending event order, then not only is also likely to be in order for
      notification queries (i.e. the notification will be near the start of
      the list), we can also stop iterating when past the target event_id.
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-and-tested-by: Mario Kleiner's avatarMario Kleiner <mario.kleiner.de@gmail.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      fbe660b7
  16. 24 Mar, 2016 1 commit
  17. 11 Mar, 2016 1 commit
    • Dave Airlie's avatar
      present: fail flipping if we have any slave outputs · 47bc7fca
      Dave Airlie authored and Adam Jackson's avatar Adam Jackson committed
      
      
      Due to the way present currently works, we don't ever check with the
      secondary adapters if we can flip at all.
      
      We shouldn't flip if the secondary adapters are attached to the pixmap
      currently, however using the current check_flip callback isn't possible
      as it passes the Window to the driver (something we shouldn't be doing),
      so the slave driver can never get it's own screen ptr back.
      
      For now to fix the problem just block flips if we have any slaves
      configured. We can fix the ABI up later, but this fix can be backported
      to stable.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Reviewed-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      47bc7fca
  18. 01 Mar, 2016 3 commits
  19. 25 Feb, 2016 3 commits
  20. 20 Jan, 2016 1 commit
    • Michel Dänzer's avatar
      present: Handle wraparound when comparing MSC values · 25eca802
      Michel Dänzer authored and Keith Packard's avatar Keith Packard committed
      
      
      When a window moves from one CRTC to another, present_window_to_crtc_msc
      updates window_priv->msc_offset according to the delta between the
      current MSC values of the old and new CRTC:
      
                  window_priv->msc_offset += new_msc - old_msc;
      
      window_priv->msc_offset is initially 0, so if new_msc < old_msc,
      window_priv->msc_offset wraps around and becomes a large number. If the
      window_msc parameter passed in is small (in particular if it's 0, such as
      is the case when the client just wants to know the current window MSC
      value), the returned CRTC MSC value may still be a large number. In that
      case, the existing MSC comparisons in pixmap_present weren't working as
      intended, resulting in scheduling a wait far into the future when the
      target MSC had actually already passed. This would result in the client
      (e.g. the Chromium browser) hanging when moving its window between CRTCs.
      
      In order to fix this, introduce msc_is_(equal_or_)after helper functions
      which take the wraparound into account for comparing two MSC values.
      Signed-off-by: Michel Dänzer's avatarMichel Dänzer <michel.daenzer@amd.com>
      Reviewed-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Reviewed-by: Martin Roukala's avatarMartin Peres <martin.peres@linux.intel.com>
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      25eca802
  21. 07 Dec, 2015 3 commits
  22. 09 Nov, 2015 2 commits
  23. 21 Oct, 2015 1 commit
  24. 30 Sep, 2015 1 commit