On 09/12/2018 04:13 AM, Michel Dänzer wrote: > > Hi Nicholas, > > > thanks for the patches. > > > On 2018-09-11 6:18 p.m., Nicholas Kazlauskas wrote: >> These patches are part of a proposed new interface for supporting variable refresh rate via DRM properties. >> >> https://patchwork.freedesktop.org/series/49486/ >> >> When notified of a window that is FreeSync capable via X these patches help track when the window is fullscreen to manage the variable_refresh property on the CRTC. > > I'm afraid the Xorg driver support will have to be more or less redone > from scratch for upstreaming: > > Whether or not a client wants variable refresh rate enabled can be > tracked via the window property mechanism supported by the core X11 > protocol, no need for a protocol extension. > > That should also allow simpler tracking of when variable refresh rate > can actually be enabled: It can be enabled while a window is flipping, > and its corresponding property allows it. This should be straightforward > with the Present extension, because that also explicitly marks the end > of a window flipping (via an "unflip"). DRI2 is trickier; it's probably > okay not to support variable refresh rate with that, at least initially. > > > I can look into this after the upcoming Xorg driver 18.1 releases. Or I > can give guidance if one of you wants to look into it. > > I can a look into this. I agree that the extension method is less than ideal - in being vendor specific mostly. It does have the nice property that it remains independent of the application's render backend, though. I imagine you're suggesting specifying a window property hint like _NET_WM_BYPASS_COMPOSITOR - maybe a define new one like _NET_WM_VARIABLE_REFRESH (even though the two are closely related in terms of fullscreen behavior). Then in each backend the property could probably be checked before the present as appropriate. This patch series already has the problem you're describing about DRI2 where there's not a nice explicit end notification for flipping - it's only disabled when the window no longer covers the CRTC or the window is destroyed (which is the case for most applications but likely not all). Thanks for the feedback. Nicholas Kazlauskas