D23105: WIP: [platforms/x11] Cleanup GLX backend, revise compositing

Fredrik Höglund noreply at phabricator.kde.org
Fri Aug 23 01:04:11 BST 2019


fredrik added a comment.


  In D23105#514634 <https://phabricator.kde.org/D23105#514634>, @romangg wrote:
  
  > In D23105#514201 <https://phabricator.kde.org/D23105#514201>, @fredrik wrote:
  >
  > > In D23105#512099 <https://phabricator.kde.org/D23105#512099>, @romangg wrote:
  > >
  > > > In D23105#511957 <https://phabricator.kde.org/D23105#511957>, @fredrik wrote:
  > > >
  > > > > NVIDIA doesn't support the OML extensions. They can't be implemented efficiently on their hardware IIRC.
  > > > >  [...]
  > > >
  > > >
  > > > That's good to know. Thanks! I believe we can let in some of these extensions again without increasing the complexity too much as long as the SGI ones is ignored and we have no manual control of vsync. The complexity in the old code came mostly from that.
  > >
  > >
  > > That would leave the user without a way to override the driver's default vsync setting.
  >
  >
  > I want KWin to run v-synced always. I don't think it makes sense to make this configurable by the user. It's the default in our Wayland session and on X11 the compositor should always run v-synced as well. Or is there a valid use case for running it async in your opinion?
  
  
  That's not my point though. My point is that if you don't set the swap interval, you leave it up to the driver, and not all drivers enable vsync by default.
  
  In D23105#516190 <https://phabricator.kde.org/D23105#516190>, @alexeymin wrote:
  
  > In D23105#515062 <https://phabricator.kde.org/D23105#515062>, @romangg wrote:
  >
  > > @alexeymin Can you test again with the update? I just accidentally had the fallback timer disabled before. Now works fine for me without swap event.
  >
  >
  > Now it works fine without `KWIN_USE_INTEL_SWAP_EVENT` or with `KWIN_USE_INTEL_SWAP_EVENT=0`.
  >
  > But because test plan still mentions testing with `KWIN_USE_INTEL_SWAP_EVENT=1`, I tested it too. Window movement is somewhat intermittent, it moves like with some small hops. I guess I should not use intel swap event on amdgpu, right? 😉
  
  
  It should work with all Mesa drivers. The extension is just called GLX_INTEL_swap_event because Intel developed it.

INLINE COMMENTS

> romangg wrote in glxbackend.cpp:718
> > Related to that do you know why we present() in prepareRenderingFrame (in DRM backend as well)
> 
> Correction: in DRM backend we actually present on endRenderingFrame!

That's probably because the code in the GLX backend (and the timer code) was originally written for the NVIDIA driver, while the code in the DRM backend was not.

But the GLX backend also presents in endRenderingFrame() when blocksForRetrace() returns false.

REPOSITORY
  R108 KWin

REVISION DETAIL
  https://phabricator.kde.org/D23105

To: romangg, #kwin, fredrik
Cc: alexde, nicolasfella, alexeymin, kwin, LeGast00n, The-Feren-OS-Dev, sbergeron, jraleigh, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, crozbo, bwowk, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kwin/attachments/20190823/c1ad3922/attachment.html>


More information about the kwin mailing list