diff --git a/src/gallium/frontends/dri/dri2.c b/src/gallium/frontends/dri/dri2.c index f1cfa74804e..a679c1c249b 100644 --- a/src/gallium/frontends/dri/dri2.c +++ b/src/gallium/frontends/dri/dri2.c @@ -2544,6 +2544,11 @@ const struct __DriverAPIRec galliumdrm_driver_api = { .ReleaseBuffer = dri2_release_buffer, }; +static const struct __DRIDriverVtableExtensionRec galliumdrm_vtable = { + .base = { __DRI_DRIVER_VTABLE, 1 }, + .vtable = &galliumdrm_driver_api, +}; + /** * DRI driver virtual function table. * @@ -2567,6 +2572,21 @@ const __DRIextension *galliumdrm_driver_extensions[] = { &driImageDriverExtension.base, &driDRI2Extension.base, &gallium_config_options.base, + &galliumdrm_vtable.base, + NULL +}; + +static const struct __DRIDriverVtableExtensionRec dri_kms_vtable = { + .base = { __DRI_DRIVER_VTABLE, 1 }, + .vtable = &dri_kms_driver_api, +}; + +const __DRIextension *dri_kms_driver_extensions[] = { + &driCoreExtension.base, + &driImageDriverExtension.base, + &driDRI2Extension.base, + &gallium_config_options.base, + &dri_kms_vtable.base, NULL }; diff --git a/src/gallium/frontends/dri/dri_screen.h b/src/gallium/frontends/dri/dri_screen.h index 459e2e4cf8b..a89949e56dc 100644 --- a/src/gallium/frontends/dri/dri_screen.h +++ b/src/gallium/frontends/dri/dri_screen.h @@ -162,7 +162,7 @@ void dri_destroy_screen(__DRIscreen * sPriv); extern const struct __DriverAPIRec dri_kms_driver_api; - +extern const __DRIextension *dri_kms_driver_extensions[]; extern const struct __DriverAPIRec galliumdrm_driver_api; extern const __DRIextension *galliumdrm_driver_extensions[]; extern const struct __DriverAPIRec galliumsw_driver_api; diff --git a/src/gallium/frontends/dri/drisw.c b/src/gallium/frontends/dri/drisw.c index b879529485e..76b84893685 100644 --- a/src/gallium/frontends/dri/drisw.c +++ b/src/gallium/frontends/dri/drisw.c @@ -609,12 +609,18 @@ const struct __DriverAPIRec galliumsw_driver_api = { .CopySubBuffer = drisw_copy_sub_buffer, }; +static const struct __DRIDriverVtableExtensionRec galliumsw_vtable = { + .base = { __DRI_DRIVER_VTABLE, 1 }, + .vtable = &galliumsw_driver_api, +}; + /* This is the table of extensions that the loader will dlsym() for. */ const __DRIextension *galliumsw_driver_extensions[] = { &driCoreExtension.base, &driSWRastExtension.base, &driCopySubBufferExtension.base, &gallium_config_options.base, + &galliumsw_vtable.base, NULL }; diff --git a/src/gallium/targets/dri/target.c b/src/gallium/targets/dri/target.c index 54fe3824668..c2e884617ee 100644 --- a/src/gallium/targets/dri/target.c +++ b/src/gallium/targets/dri/target.c @@ -28,7 +28,7 @@ const __DRIextension **__driDriverGetExtensions_kms_swrast(void); PUBLIC const __DRIextension **__driDriverGetExtensions_kms_swrast(void) { globalDriverAPI = &dri_kms_driver_api; - return galliumdrm_driver_extensions; + return dri_kms_driver_extensions; } #endif