Mesa (main): wgl: Add a driver name for driconf
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Aug 10 15:35:39 UTC 2021
Module: Mesa
Branch: main
Commit: b3f9b347f975414770b98964a06dedc4012955c8
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b3f9b347f975414770b98964a06dedc4012955c8
Author: Jesse Natalie <jenatali at microsoft.com>
Date: Sun Aug 1 09:02:12 2021 -0700
wgl: Add a driver name for driconf
Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
Reviewed-by: Charmaine Lee <charmainel at vmware.com>
Reviewed-by: Neha Bhende <bhenden at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12158>
---
src/gallium/frontends/wgl/stw_device.c | 3 ++-
src/gallium/frontends/wgl/stw_winsys.h | 6 ++++++
src/gallium/targets/libgl-d3d12/libgl_d3d12.c | 8 +++++++-
src/gallium/targets/libgl-gdi/libgl_gdi.c | 13 ++++++++++++-
4 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/src/gallium/frontends/wgl/stw_device.c b/src/gallium/frontends/wgl/stw_device.c
index 4539a45d661..f8b1ffdd7c7 100644
--- a/src/gallium/frontends/wgl/stw_device.c
+++ b/src/gallium/frontends/wgl/stw_device.c
@@ -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);
}
diff --git a/src/gallium/frontends/wgl/stw_winsys.h b/src/gallium/frontends/wgl/stw_winsys.h
index 47b8b202960..850560fa30d 100644
--- a/src/gallium/frontends/wgl/stw_winsys.h
+++ b/src/gallium/frontends/wgl/stw_winsys.h
@@ -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
diff --git a/src/gallium/targets/libgl-d3d12/libgl_d3d12.c b/src/gallium/targets/libgl-d3d12/libgl_d3d12.c
index 981f1fca36b..e83dbb3a0f5 100644
--- a/src/gallium/targets/libgl-d3d12/libgl_d3d12.c
+++ b/src/gallium/targets/libgl-d3d12/libgl_d3d12.c
@@ -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,
};
diff --git a/src/gallium/targets/libgl-gdi/libgl_gdi.c b/src/gallium/targets/libgl-gdi/libgl_gdi.c
index 12ec8ffd744..f7898eeebc9 100644
--- a/src/gallium/targets/libgl-gdi/libgl_gdi.c
+++ b/src/gallium/targets/libgl-gdi/libgl_gdi.c
@@ -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,
};
More information about the mesa-commit
mailing list