[Nouveau] swap control

Xavier Chantry chantry.xavier at gmail.com
Sun Sep 26 16:08:42 PDT 2010


I am still annoyed by this issue so I have looked a bit again.

On Fri, Jan 29, 2010 at 11:07 AM, Xavier Chantry
<chantry.xavier at gmail.com> wrote:
> 1) how are we supposed to enable it ? is there an env var , or
> ~/.drirc ? is drirc/driconf still valid with dri2 ?

There is a vblank_mode env var that seems to work.
And unfortunately driconf does not work with dri2, but it's very easy
to convert, just rename driver name "nouveau" in ~/.drirc to "dri2"

> 2) is it supported by mesa/gallium ? and nouveau ?
>
> It looks like there were some related changes with dri2.2 but that
> might not concern SGI/MESA swap_control extensions.
> http://lists.x.org/archives/xorg-devel/2009-October/003209.html
>
> Anyway when running progs/xdemos/glxswapcontrol with softpipe, I get
> the following message :
> Unable to set swap-interval.  Neither GLX_SGI_swap_control nor
> GLX_MESA_swap_control are supported.
>
> And I do not get when using nouveau, so it seems these extensions are
> announced but not supported.
>

it indeed looks like these extensions are always enabled, in dri2 generic code.
src/glx/dri2_glx.c
dri2BindExtensions(struct dri2_screen *psc, const __DRIextension **extensions)
{
   __glXEnableDirectExtension(&psc->base, "GLX_SGI_video_sync");
   __glXEnableDirectExtension(&psc->base, "GLX_SGI_swap_control");
   __glXEnableDirectExtension(&psc->base, "GLX_MESA_swap_control");
   __glXEnableDirectExtension(&psc->base, "GLX_SGI_make_current_read");

There does not seem to be any extensions there that depend on driver
capabilities, which I find a bit surprising.
Is that too hard to implement ?
I still don't understand which component exactly is supposed to
implement that feature , is it the ddx , with support of the drm ?
But it's not possible to query this ddx capability from mesa ?


More information about the Nouveau mailing list