Mesa (master): d3d12: Pipe adapter LUID from callbacks to D3D12 screen init

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Nov 18 10:43:32 UTC 2020


Module: Mesa
Branch: master
Commit: 494bd9cfa66e96938b8f888c9397a601d6db47ec
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=494bd9cfa66e96938b8f888c9397a601d6db47ec

Author: Jesse Natalie <jenatali at ntdev.microsoft.com>
Date:   Tue Mar 17 14:30:02 2020 -0700

d3d12: Pipe adapter LUID from callbacks to D3D12 screen init

Reviewed-by: Charmaine Lee <charmainel at vmware.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7535>

---

 src/gallium/targets/libgl-d3d12/libgl_d3d12.c | 7 ++++++-
 src/gallium/targets/libgl-gdi/libgl_gdi.c     | 7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/gallium/targets/libgl-d3d12/libgl_d3d12.c b/src/gallium/targets/libgl-d3d12/libgl_d3d12.c
index 94b6d99d1bf..01037ed3440 100644
--- a/src/gallium/targets/libgl-d3d12/libgl_d3d12.c
+++ b/src/gallium/targets/libgl-d3d12/libgl_d3d12.c
@@ -43,12 +43,17 @@ gdi_screen_create(void)
 {
    struct pipe_screen *screen = NULL;
    struct sw_winsys *winsys;
+   LUID *adapter_luid = NULL, local_luid;
 
    winsys = gdi_create_sw_winsys();
    if(!winsys)
       goto no_winsys;
 
-   screen = d3d12_create_screen( winsys );
+   if (stw_dev && stw_dev->callbacks.pfnGetAdapterLuid) {
+      stw_dev->callbacks.pfnGetAdapterLuid(NULL, &local_luid);
+      adapter_luid = &local_luid;
+   }
+   screen = d3d12_create_screen( winsys, adapter_luid );
 
    if(!screen)
       goto no_screen;
diff --git a/src/gallium/targets/libgl-gdi/libgl_gdi.c b/src/gallium/targets/libgl-gdi/libgl_gdi.c
index dd4f4282260..94739bfb165 100644
--- a/src/gallium/targets/libgl-gdi/libgl_gdi.c
+++ b/src/gallium/targets/libgl-gdi/libgl_gdi.c
@@ -117,7 +117,12 @@ gdi_screen_create(void)
 #endif
 #ifdef GALLIUM_D3D12
    if (strcmp(driver, "d3d12") == 0) {
-      screen = d3d12_create_screen( winsys, NULL );
+      LUID* adapter_luid = NULL, local_luid;
+      if (stw_dev && stw_dev->callbacks.pfnGetAdapterLuid) {
+         stw_dev->callbacks.pfnGetAdapterLuid(NULL, &local_luid);
+         adapter_luid = &local_luid;
+      }
+      screen = d3d12_create_screen( winsys, adapter_luid );
       if (screen)
          use_d3d12 = TRUE;
    }



More information about the mesa-commit mailing list