On 2018-10-12 6:48 p.m., Nicholas Kazlauskas wrote: > The DDX driver can be notified of adaptive sync suitability by > flagging the application's window with the _VARIABLE_REFRESH property. > > This property is set on the first swap the application performs > when adaptive_sync is set to true in the drirc. > > It's performed here instead of when the loader is initialized for > two reasons: > > (1) The window's drawable can be missing during loader init. > This can be observed during the Unigine Superposition benchmark. > > (2) Adaptive sync will only be enabled closer to when the application > actually begins rendering. > > If adaptive_sync is false then the _VARIABLE_REFRESH property > is deleted on loader init. > > The property is only managed on the glx DRI3 backend for now. This > should cover most common applications and games on modern hardware. > > Vulkan support can be implemented in a similar manner but would likely > require splitting the function out into a common helper function. > > Signed-off-by: Nicholas Kazlauskas <nicholas.kazlaus...@amd.com> > > [...] > > @@ -331,16 +358,28 @@ loader_dri3_drawable_init(xcb_connection_t *conn, > draw->have_back = 0; > draw->have_fake_front = 0; > draw->first_init = true; > + draw->adaptive_sync = false; > + draw->adaptive_sync_active = false; > > draw->cur_blit_source = -1; > draw->back_format = __DRI_IMAGE_FORMAT_NONE; > mtx_init(&draw->mtx, mtx_plain); > cnd_init(&draw->event_cnd); > > - if (draw->ext->config) > + if (draw->ext->config) { > draw->ext->config->configQueryi(draw->dri_screen, > "vblank_mode", &vblank_mode); > > + draw->ext->config->configQueryb(draw->dri_screen, > + "adaptive_sync", > + &adaptive_sync); > + > + draw->adaptive_sync = adaptive_sync; > + > + if (!adaptive_sync) > + set_adaptive_sync_property(conn, draw->drawable, false); > + }
The set_adaptive_sync_property call should be after the if (draw->ext->config) block here, so that the property is deleted even if draw->ext->config is NULL. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev