1. 12 Apr, 2019 4 commits
    • Adam Jackson's avatar
      dix: Remove WindowRec::backStorage · 69758079
      Adam Jackson authored
      This is only being set, never read.
      69758079
    • Adam Jackson's avatar
      dix, composite: Optimize setting window backing store state · 0f477cc6
      Adam Jackson authored
      We hide CWBackingStore from the screen hook if nothing's actually
      changing, which means compChangeWindowAttributes no longer needs to
      compare the requested state with the present one.
      0f477cc6
    • Adam Jackson's avatar
      mi: Simplify a conditional in miHandleExposures · 4e101e7e
      Adam Jackson authored
      miHandleExposures does two things: computes the region for which to
      generate expose events, and (if the destination is a window) paints the
      exposed regions with the background. The bit of this conditional we're
      deleting here asserts that the source is either a pixmap or a window
      without backing store. The only other possibility is a window _with_
      backing store. In the old backing store implementation, this was where
      you would recover bits from backing store. Since our "backing store" is
      the redirected window pixmap, we know we've already copied all we could,
      because CopyArea had already seen the entire window pixmap. So now in
      that third case, we are still drawing to a pixmap (so there's no
      background to paint) and we are still not generating events, so we can
      exit early.
      
      The comment above the function about recovering bits from backing store
      is clearly misleading, so delete that too.
      4e101e7e
    • Aaron Plattner's avatar
      xfree86: Export xf86GPUScreens and xf86NumGPUScreens · 147ed28b
      Aaron Plattner authored
      Drivers may need to loop over the allocated screens during PreInit, for example
      to consolidate xorg.conf options that apply to a GPU device as a whole.
      Currently, this works for protocol screens becuase x86Screens is exported, but
      does not work for GPU screens.
      
      Export xf86GPUScreens and xf86NumGPUScreens for consistency with xf86Screens and
      xf86NumScreens.
      Signed-off-by: Aaron Plattner's avatarAaron Plattner <aplattner@nvidia.com>
      147ed28b
  2. 04 Apr, 2019 1 commit
  3. 02 Apr, 2019 2 commits
  4. 01 Apr, 2019 3 commits
  5. 29 Mar, 2019 2 commits
    • Roman Gilg's avatar
      present: Call present_vblank_scrap in screen mode · 4adda1f6
      Roman Gilg authored
      This cleans up some code duplication. No functional change.
      Signed-off-by: Roman Gilg's avatarRoman Gilg <subdiff@gmail.com>
      Reviewed-by: Michel Dänzer's avatarMichel Dänzer <michel.daenzer@amd.com>
      4adda1f6
    • Peter Hutterer's avatar
      dix: leave last.valuators alone on slave switch · d7b1753d
      Peter Hutterer authored
      Terms:
      dev->last.valuator[] is the last value given to us by the driver
      dev->valuator.axisVal[] is the last value sent to the client
      dev->last.scroll[] is the abs value of the scroll axis as given by the driver,
              used for button emulation calculation (and the remainder)
      
      This function updates the device's last.valuator state based on the current
      master axis state. This way, relative motion continues fluidly when switching
      between devices. Before mouse 2 comes into effect, it's valuator state is
      updated to wherever the pointer currently is so the relative event applies on
      top of that.
      
      This can only work for x/y axes, all other axes aren't guaranteed to have the
      same meaning and/or may not be present:
      - xtest device: no valuator 2
      - mouse: valuator 2 is horizontal scroll axis
      - tablet: valuator 2 is pressure
      
      Scaling the current value from the pressure range into the range for
      horizontal scrolling makes no sense. And it causes scroll jumps:
      
      - scroll down, last.valuator == axisVal == 20
      - xdotool click 1, the XTest device doesn't have that valuator
      - scroll up
        - updateSlaveDeviceCoords reset last.valuator to 0 (axisVal == 20)
        - DeviceClassesChangedEvent includes value 20 for the axis
        - event is processed, last.value changes from 0 to -1
        - axisVal is updated to -1, causing a jump of -21
      
      The same applies when we switch from tablet to mouse wheel if the pressure
      value is 0 on proximity out (basically guaranteed). So let's drop this code
      altogether and only leave the scaling for the relative x/y motion.
      Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
      d7b1753d
  6. 28 Mar, 2019 8 commits
  7. 27 Mar, 2019 6 commits
  8. 20 Mar, 2019 2 commits
  9. 15 Mar, 2019 1 commit
  10. 14 Mar, 2019 1 commit
  11. 13 Mar, 2019 2 commits
  12. 11 Mar, 2019 3 commits
  13. 08 Mar, 2019 4 commits
  14. 06 Mar, 2019 1 commit
    • Andy Ritger's avatar
      xfree86/modes: Add "NoOutputInitialSize" option · e51ebc18
      Andy Ritger authored
      Normally, the X server infers the initial screen size based on any
      connected outputs.  However, if no outputs are connected, the X server
      picks a default screen size of 1024 x 768.  This option overrides the
      default screen size to use when no outputs are connected.  In contrast
      to the "Virtual" Display SubSection entry, which applies unconditionally,
      "NoOutputInitialSize" is only used if no outputs are detected when the
      X server starts.
      
      Parse this option in the new exported helper function
      xf86AssignNoOutputInitialSize(), so that other XFree86 loadable drivers
      can use it, even if they don't use xf86InitialConfiguration().
      Signed-off-by: default avatarAndy Ritger <aritger@nvidia.com>
      Reviewed-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      e51ebc18