Mesa (master): libgl-gdi: add zink support

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Nov 18 00:37:00 UTC 2020


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

Author: Michel Zou <xantares09 at hotmail.com>
Date:   Mon Nov 16 20:07:06 2020 +0100

libgl-gdi: add zink support

Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
Acked-by: Jose Fonseca <jfonseca at vmware.com>

Closes #3802

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7643>

---

 src/gallium/targets/libgl-gdi/libgl_gdi.c | 21 +++++++++++++++++++++
 src/gallium/targets/libgl-gdi/meson.build |  2 +-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/gallium/targets/libgl-gdi/libgl_gdi.c b/src/gallium/targets/libgl-gdi/libgl_gdi.c
index 00b9de0f94f..dd4f4282260 100644
--- a/src/gallium/targets/libgl-gdi/libgl_gdi.c
+++ b/src/gallium/targets/libgl-gdi/libgl_gdi.c
@@ -60,6 +60,10 @@
 #include "d3d12/d3d12_public.h"
 #endif
 
+#ifdef GALLIUM_ZINK
+#include "zink/zink_public.h"
+#endif
+
 #ifdef GALLIUM_LLVMPIPE
 static boolean use_llvmpipe = FALSE;
 #endif
@@ -69,6 +73,9 @@ static boolean use_swr = FALSE;
 #ifdef GALLIUM_D3D12
 static boolean use_d3d12 = FALSE;
 #endif
+#ifdef GALLIUM_ZINK
+static boolean use_zink = FALSE;
+#endif
 
 static struct pipe_screen *
 gdi_screen_create(void)
@@ -114,6 +121,13 @@ gdi_screen_create(void)
       if (screen)
          use_d3d12 = TRUE;
    }
+#endif
+#ifdef GALLIUM_ZINK
+   if (strcmp(driver, "zink") == 0) {
+       screen = zink_create_screen( winsys );
+       if (screen)
+           use_zink = TRUE;
+   }
 #endif
    (void) driver;
 
@@ -174,6 +188,13 @@ gdi_present(struct pipe_screen *screen,
    }
 #endif
 
+#ifdef GALLIUM_ZINK
+   if (use_zink) {
+      screen->flush_frontbuffer(screen, res, 0, 0, hDC, NULL);
+      return;
+   }
+#endif
+
 #ifdef GALLIUM_SOFTPIPE
    winsys = softpipe_screen(screen)->winsys,
    dt = softpipe_resource(res)->dt,
diff --git a/src/gallium/targets/libgl-gdi/meson.build b/src/gallium/targets/libgl-gdi/meson.build
index 50a308bcf50..87ee9f17c69 100644
--- a/src/gallium/targets/libgl-gdi/meson.build
+++ b/src/gallium/targets/libgl-gdi/meson.build
@@ -39,7 +39,7 @@ libopengl32 = shared_library(
   ],
   dependencies : [
     dep_ws2_32, idep_nir, idep_mesautil, driver_swrast, driver_swr,
-    driver_d3d12
+    driver_d3d12, driver_zink
   ],
   name_prefix : '',  # otherwise mingw will create libopengl32.dll
   install : true,



More information about the mesa-commit mailing list