diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 4247cb7b32c..a3ad50941c9 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -287,7 +287,7 @@ dri2_create_context_attribs(struct glx_screen *base, if (pcp->driContext == NULL) goto error_exit; - pcp->base.vtable = &dri2_context_vtable; + pcp->base.vtable = base->context_vtable; return &pcp->base; @@ -1275,6 +1275,7 @@ dri2CreateScreen(int screen, struct glx_display * priv) psc->driver_configs = driver_configs; psc->base.vtable = &dri2_screen_vtable; + psc->base.context_vtable = &dri2_context_vtable; psp = &psc->vtable; psc->base.driScreen = psp; psp->destroyScreen = dri2DestroyScreen; diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index e73cba6028c..0bccefdb041 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -330,7 +330,7 @@ dri3_create_context_attribs(struct glx_screen *base, if (pcp->driContext == NULL) goto error_exit; - pcp->base.vtable = &dri3_context_vtable; + pcp->base.vtable = base->context_vtable; return &pcp->base; @@ -988,6 +988,7 @@ dri3_create_screen(int screen, struct glx_display * priv) psc->driver_configs = driver_configs; psc->base.vtable = &dri3_screen_vtable; + psc->base.context_vtable = &dri3_context_vtable; psp = &psc->vtable; psc->base.driScreen = psp; psp->destroyScreen = dri3_destroy_screen; diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 02fd2d5aad7..8c48165bb24 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -602,7 +602,7 @@ drisw_create_context_attribs(struct glx_screen *base, return NULL; } - pcp->base.vtable = &drisw_context_vtable; + pcp->base.vtable = base->context_vtable; return &pcp->base; } @@ -902,6 +902,7 @@ driswCreateScreen(int screen, struct glx_display *priv) psc->driver_configs = driver_configs; psc->base.vtable = &drisw_screen_vtable; + psc->base.context_vtable = &drisw_context_vtable; psp = &psc->vtable; psc->base.driScreen = psp; psp->destroyScreen = driswDestroyScreen; diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index 68df42f53b0..9e304b75761 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -502,6 +502,7 @@ struct glx_screen_vtable { struct glx_screen { const struct glx_screen_vtable *vtable; + const struct glx_context_vtable *context_vtable; /** * \name Storage for the GLX vendor, version, and extension strings