diff --git a/src/egl/drivers/wgl/egl_wgl.c b/src/egl/drivers/wgl/egl_wgl.c index b90611b39a0..5a0f7a8f9ef 100644 --- a/src/egl/drivers/wgl/egl_wgl.c +++ b/src/egl/drivers/wgl/egl_wgl.c @@ -34,6 +34,7 @@ #include #include #include +#include #include @@ -1035,6 +1036,18 @@ wgl_destroy_image_khr(_EGLDisplay *disp, _EGLImage *img) return EGL_TRUE; } +static const char * +wgl_query_driver_name(_EGLDisplay *disp) +{ + return stw_get_device()->stw_winsys->get_name(); +} + +static char * +wgl_query_driver_config(_EGLDisplay *disp) +{ + return stw_get_config_xml(); +} + struct _egl_driver _eglDriver = { .Initialize = wgl_initialize, .Terminate = wgl_terminate, @@ -1054,5 +1067,7 @@ struct _egl_driver _eglDriver = { .WaitNative = wgl_wait_native, .CreateImageKHR = wgl_create_image_khr, .DestroyImageKHR = wgl_destroy_image_khr, + .QueryDriverName = wgl_query_driver_name, + .QueryDriverConfig = wgl_query_driver_config, }; diff --git a/src/gallium/frontends/wgl/stw_device.c b/src/gallium/frontends/wgl/stw_device.c index c0a6cb17cc7..557eca8a068 100644 --- a/src/gallium/frontends/wgl/stw_device.c +++ b/src/gallium/frontends/wgl/stw_device.c @@ -102,13 +102,13 @@ init_screen(const struct stw_winsys *stw_winsys, HDC hdc) return true; } +static const driOptionDescription gallium_driconf[] = { + #include "pipe-loader/driinfo_gallium.h" +}; + static void init_options() { - const driOptionDescription gallium_driconf[] = { - #include "pipe-loader/driinfo_gallium.h" - }; - const char *driver_name = stw_dev->stw_winsys->get_name ? stw_dev->stw_winsys->get_name() : NULL; driParseOptionInfo(&stw_dev->option_info, gallium_driconf, ARRAY_SIZE(gallium_driconf)); driParseConfigFiles(&stw_dev->option_cache, &stw_dev->option_info, 0, @@ -117,6 +117,12 @@ init_options() u_driconf_fill_st_options(&stw_dev->st_options, &stw_dev->option_cache); } +char * +stw_get_config_xml(void) +{ + return driGetOptionsXml(gallium_driconf, ARRAY_SIZE(gallium_driconf)); +} + boolean stw_init(const struct stw_winsys *stw_winsys) { diff --git a/src/gallium/frontends/wgl/stw_device.h b/src/gallium/frontends/wgl/stw_device.h index b251a17409d..27c3bd1a378 100644 --- a/src/gallium/frontends/wgl/stw_device.h +++ b/src/gallium/frontends/wgl/stw_device.h @@ -103,6 +103,9 @@ stw_init_screen(HDC hdc); struct stw_device * stw_get_device(void); +char * +stw_get_config_xml(void); + static inline struct stw_context * stw_lookup_context_locked( DHGLRC dhglrc ) { diff --git a/src/gallium/targets/wgl/gallium_wgl.def.in b/src/gallium/targets/wgl/gallium_wgl.def.in index 7b482218fa4..b4c719fb851 100644 --- a/src/gallium/targets/wgl/gallium_wgl.def.in +++ b/src/gallium/targets/wgl/gallium_wgl.def.in @@ -43,3 +43,4 @@ stw_create_image_from_texture stw_create_image_from_renderbuffer stw_destroy_image stw_translate_image +stw_get_config_xml