Dear Rob,
Am Dienstag, den 12.03.2013, 19:44 -0400 schrieb Rob Clark: ?it? sounds strange in commit summary. > If ddx does not support swap, don't advertise it. So how is `dri2BindExtensions` changed. Some things passed beforehand are already available in `struct dri2_screen *psc`? Are bugs fixed by this or did you find this reading through the code? > We might also be able to get rid of the vmwgfx check (I'm not quite > sure the purpose of that check vs. just checking dri2Minor. Missing ?)?. > Signed-off-by: Rob Clark <robdclark at gmail.com> > --- > src/glx/dri2_glx.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c > index c4f6996..b2d712c 100644 > --- a/src/glx/dri2_glx.c > +++ b/src/glx/dri2_glx.c > @@ -1051,11 +1051,16 @@ static const struct glx_context_vtable > dri2_context_vtable = { > }; > > static void > -dri2BindExtensions(struct dri2_screen *psc, const __DRIextension > **extensions, > +dri2BindExtensions(struct dri2_screen *psc, struct glx_display * priv, No space after the * in `* priv`? > const char *driverName) > { > + const struct dri2_display *const pdp = (struct dri2_display *) > + priv->dri2Display; > + const __DRIextension **extensions; > int i; > > + extensions = psc->core->getExtensions(psc->driScreen); > + > __glXEnableDirectExtension(&psc->base, "GLX_SGI_video_sync"); > __glXEnableDirectExtension(&psc->base, "GLX_SGI_swap_control"); > __glXEnableDirectExtension(&psc->base, "GLX_MESA_swap_control"); > @@ -1069,7 +1074,7 @@ dri2BindExtensions(struct dri2_screen *psc, const > __DRIextension **extensions, > * of disabling it uncondtionally, just disable it for drivers > * which are known to not support it. > */ > - if (strcmp(driverName, "vmwgfx") != 0) { > + if (pdp->swapAvailable && strcmp(driverName, "vmwgfx") != 0) { > __glXEnableDirectExtension(&psc->base, "GLX_INTEL_swap_event"); > } > > @@ -1212,8 +1217,7 @@ dri2CreateScreen(int screen, struct glx_display * priv) > goto handle_error; > } > > - extensions = psc->core->getExtensions(psc->driScreen); > - dri2BindExtensions(psc, extensions, driverName); > + dri2BindExtensions(psc, priv, driverName); > > configs = driConvertConfigs(psc->core, psc->base.configs, driver_configs); > visuals = driConvertConfigs(psc->core, psc->base.visuals, driver_configs); Thanks, Paul -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20130313/d945302d/attachment.pgp>