Skip to content
  1. Nov 07, 2017
  2. Nov 06, 2017
  3. Nov 03, 2017
    • Thomas Hellstrom's avatar
      glx: Duplicate relevant fbconfigs for compositing visuals · f84e59a4
      Thomas Hellstrom authored
      Previously, before GLX_OML_swap_method was fixed, both the X server and
      client ignored the swapMethod fbconfig value, which meant that, if the dri
      driver thought it exposed more than one swapMethod, it actually just
      exported a duplicated set of fbconfigs. When fixing GLX_OML_swap_method
      and restricting the choice for built-in visuals to a single swap method
      that meant we didn't have that many fbconfigs to choose from when pairing
      the compositing visual with an fbconfig, resulting in the fbconfig paired
      with the compositing visual becoming too restrictive for some applications,
      (at least for kwin). This problem would also happen if the dri driver
      only exposed a single swap method to begin with.
      
      So, to make sure the compositing visual gets a good enough fbconfig,
      duplicate fbconfigs that are suitable for compositing visuals and make
      sure these duplicated fbconfigs can be used only by compositing visuals.
      For duplicated fbconfigs not paired with a compositing visual, construct
      new compositing visuals, making compositing clients able to choose visuals
      / fbconfig more adapted to their needs.
      
      This is in some sense equivalent to adding a new "TRUECOLOR_COMPOSITING"
      GLX visualtype.
      
      Fixes: 4486d199 ("glx: Fix visual fbconfig matching with respect to
                            swap method")
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102806
      
      
      Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
      Tested-By: default avatarNick Sarnie <commendsarnex@gmail.com>
      Tested-by: default avatarFredrik Höglund <fredrik@kde.org>
      Reviewed-by: default avatarAdam Jackson <ajax@redhat.com>
      f84e59a4
  4. Nov 01, 2017
    • Eric Anholt's avatar
      xkb: Print the xkbcomp path being executed when we fail to compile. · 30f4d440
      Eric Anholt authored
      
      
      I don't know how many times I've had a broken server due to a bad
      directory to xkbcomp, and only finding the whole path has shown me
      where I went wrong.
      
      Reviewed-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      30f4d440
    • Eric Anholt's avatar
      test: Add a test for the overflow bug in bigreqs. · 14af8bee
      Eric Anholt authored
      
      
      The failing struct comes from the python test written by Michal Srb
      <msrb@suse.com>.
      
      v2: Use a drawable (root window) and gc, so that PolyLines hopefully
          actually tries processing things.  However, the request seems to
          process successfully so the poll() just stalls out.  However, this
          does let us distinguish between detecting the bigrequests error
          and not, at least.
      v3: Clean up the description of what we expect the poll() call to do.
      v4: Use XI2 instead of PolyLine to trigger a predictable error. We know the
          server replies with BadValue for a zero num_masks argument. So if we send
          a bigreq with a num_masks 0 and a length 0, we can just check whether we
          get killed (good) or a BadValue (bad). It doesn't test for specific memory
          overflows or crashes, but based on the assumption that we shouldn't look
          at *any* BigReq of size 0, this seems to be sufficient.
      
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      14af8bee
  5. Oct 31, 2017
  6. Oct 30, 2017
  7. Oct 27, 2017
    • Alex Goins's avatar
      xf86-video-modesetting: Fix ms_queue_vblank(flags = MS_QUEUE_RELATIVE) · 266d9868
      Alex Goins authored
      
      
      Change 677c32bc refactored all usages of drmWaitVBlank() into a helper function,
      ms_queue_vblank().
      
      ms_queue_vblank() takes in an MS_QUEUE_RELATIVE flag to indicate that the
      sequence number is relative rather than absolute, but still treats the actual
      sequence number as absolute, passing it through ms_crtc_msc_to_kernel_msc()
      unconditionally before calling drmWaitVBlank().
      
      ms_crtc_msc_to_kernel_msc() works by subtracting a vblank offset from the
      provided sequence number, which only makes sense for absolute sequence numbers.
      In the case of PRIME Sync, drmmode_SharedPixmapPrsentOnVBlank() passes in 1,
      which results in a large negative vblank offset. After subtracting, we're left
      with a relative sequence number of 100,000+, i.e. wait for 100,000+ vblanks...
      
      In the relative case we want to pass in the sequence number unmodified. Simply
      add a check to do this.
      
      Signed-off-by: default avatarAlex Goins <agoins@nvidia.com>
      Reviewed-by: default avatarKeith Packard <keithp@keithp.com>
      266d9868
Loading