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@xxxxxxxxx> > --- > 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
Attachment:
signature.asc
Description: This is a digitally signed message part
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel