wgl: Add a driver name for driconf

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12158>
This commit is contained in:
Jesse Natalie
2021-08-01 09:02:12 -07:00
committed by Marge Bot
parent 35ec7e8b8e
commit b3f9b347f9
4 changed files with 27 additions and 3 deletions
+2 -1
View File
@@ -107,9 +107,10 @@ init_options()
#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,
"", NULL, NULL, NULL, 0, NULL, 0);
driver_name ? driver_name : "", NULL, NULL, NULL, 0, NULL, 0);
u_driconf_fill_st_options(&stw_dev->st_options, &stw_dev->option_cache);
}
+6
View File
@@ -133,6 +133,12 @@ struct stw_winsys
(*create_framebuffer)( struct pipe_screen *screen,
HDC hDC,
int iPixelFormat );
/**
* Get the name of the screen that was created
*/
const char *
(*get_name)(void);
};
boolean
@@ -100,6 +100,11 @@ gdi_create_framebuffer(struct pipe_screen *screen,
return d3d12_wgl_create_framebuffer(screen, hDC, iPixelFormat);
}
static const char *
get_name(void)
{
return "d3d12";
}
static const struct stw_winsys stw_winsys = {
&gdi_screen_create,
@@ -109,7 +114,8 @@ static const struct stw_winsys stw_winsys = {
NULL, /* shared_surface_close */
NULL, /* compose */
&gdi_get_pfd_flags,
&gdi_create_framebuffer
&gdi_create_framebuffer,
&get_name,
};
+12 -1
View File
@@ -80,6 +80,8 @@ static boolean use_d3d12 = FALSE;
static boolean use_zink = FALSE;
#endif
static const char *created_driver_name = NULL;
static struct pipe_screen *
gdi_screen_create_by_name(HDC hDC, const char* driver, struct sw_winsys *winsys)
{
@@ -153,8 +155,10 @@ gdi_screen_create(HDC hDC)
*/
for (unsigned i = 0; i < ARRAY_SIZE(drivers); ++i) {
struct pipe_screen* screen = gdi_screen_create_by_name(hDC, drivers[i], winsys);
if (screen)
if (screen) {
created_driver_name = drivers[i];
return screen;
}
if (i == 0 && drivers[i][0] != '\0')
break;
}
@@ -259,6 +263,12 @@ gdi_create_framebuffer(struct pipe_screen *screen,
return NULL;
}
static const char *
gdi_get_name(void)
{
return created_driver_name;
}
static const struct stw_winsys stw_winsys = {
&gdi_screen_create,
@@ -273,6 +283,7 @@ static const struct stw_winsys stw_winsys = {
NULL, /* compose */
&gdi_get_pfd_flags,
&gdi_create_framebuffer,
&gdi_get_name,
};