[Mesa-dev] [PATCH] DRI2: don't advertise GLX_INTEL_swap_event if it can't

Zack Rusin zackr at vmware.com
Tue Mar 12 17:38:01 PDT 2013

> hmm, well, I think my fix is not incorrect.. we can tell from dri2
> proto version that the xserver does not support ScheduleSwap.  Maybe
> there should be other conditions where we also don't advertise this
> extension, but this patch still improves things.  If we absolutely
> know from the dri2 proto version that ScheduleSwap is not supported,
> then we should not advertise this extension.

And GLX_MESA_swap_control and GLX_SGI_make_current_read and the same for every extension which should be checked and advertised correctly by the Xserver. The issue is that you shouldn't worry about those because Xserver should check and advertise correctly what it supports. The issue with using swap_control symbols with checking for swap_event is that it creates arbitrary distinction between those two extensions on the client side only because Xserver does the correct thing for one of them and not the other.

> Without this, gnome-shell (and mutter/clutter) on freedreno is broken.
>  I'd rather not filter out based on the driver name, because when I
> eventually have a display driver where I can support swap, and bump
> the dri2 version #, I'd like this extension to be advertised.

TBH, I don't think you need this check at all, you just need a fixed xserver which doesn't advertise intel_swap_event if it doesn't support it. Until freedreno is shipped you don't have to worry about Xserver breaking the extension strings because you control the environment.
And just to be clear, I'm not nacking this patch, I just think it's silly to keep fixing Xserver bugs in mesa, but if you really hate the check for names, then please remove the strcpy vmwgfx and fix the comment above the check so that we have one master hack for this extension instead of accumulating a number of them.


More information about the mesa-dev mailing list