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