<html><head></head><body>Hi,<br><br>You can argue either way. But the fact that there's no WL support until this set supports my opinion that devs tend to be tied to some platforms/WSI. There's also the fact that WL has rather peculiar WSI semantics, as we already saw with EGL (and it's more or less the same problem here).<br><br><div class="gmail_quote">Le 7 avril 2020 11:53:31 GMT+03:00, Alexandre Janniaux <ajanni@videolabs.io> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Hi,<br><br>Then the platform_xcb should probably be in xcb right?<br><br>The rationale behind that is mostly that while you might<br>care about xcb windowing, you might not care about vulkan<br>but only opengl or so, and vulkan modules are currently<br>using VULKAN_COMMONSOURCE variable and it was more meaningful<br>to have the clients of this variable in the same file where<br>it is declared.<br><br>As far as I see for Vulkan, the knowledge of the platform<br>integration is more related to vulkan than the underlying<br>platforms. For example you need to use the correct Vulkan<br>define to enable the WSI and the correct structure, and<br>internal vulkan details like presentation mode but you don't<br>need to know about wayland threading or registry.<br><br>Thus, the split made sense to me.<br><br>Regards,<br>--<br>Alexandre Janniaux<br>Videolabs<br><br>On Tue, Apr 07, 2020 at 10:54:03AM +0300, Rémi Denis-Courmont wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> Hi,<br><br> That seems contradictory. We can't both sort by windowing system and by rendering library. At least the windowing system glue plugins ought to be in their respective windowing system directory, and where applicable, Makefile.<br><br> And that comes down to who maintains the glue. Typically that's individuals typically caring and knowing about the platform, more so than about the renderer.<br><br> Fine for the generic Vulkan stuff though.<br><br> Le 6 avril 2020 20:01:51 GMT+03:00, Alexandre Janniaux <ajanni@videolabs.io> a écrit :<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;">Much like video_output/xcb, gather all Vulkan-related plugins<br>compilation targets in the vulkan subfolder, but still use the<br>vout_LTLIBRARIES variable to enable targets.<hr> modules/video_output/Makefile.am        | 42 +------------------<br> modules/video_output/vulkan/Makefile.am | 54 +++++++++++++++++++++++++<br> modules/video_output/xcb/Makefile.am    | 11 -----<br> 3 files changed, 56 insertions(+), 51 deletions(-)<br> create mode 100644 modules/video_output/vulkan/Makefile.am<br><br>diff --git a/modules/video_output/Makefile.am<br>b/modules/video_output/Makefile.am<br>index a61d15f20f..c82e9a0ed7 100644<br>--- a/modules/video_output/Makefile.am<br>+++ b/modules/video_output/Makefile.am<br>@@ -119,49 +119,11 @@ vout_LTLIBRARIES += libglinterop_vdpau_plugin.la<br> endif<br> endif # HAVE_GL<br><br>-### Vulkan ###<br>-<br>-VULKAN_COMMONSOURCES = video_output/vulkan/instance.c \<br>-   video_output/vulkan/instance.h \<br>-     video_output/vulkan/platform.h \<br>-     video_output/placebo_utils.c \<br>-       video_output/placebo_utils.h<br>-<br>-# Trigger the c++ linker because of glslang dependency of libplacebo<br>-VULKAN_COMMONSOURCES += dummy.cpp<br>-<br>-VULKAN_COMMONCFLAGS = $(VULKAN_CFLAGS) $(LIBPLACEBO_CFLAGS)<br>-VULKAN_COMMONLIBS = $(VULKAN_LIBS) $(LIBPLACEBO_LIBS)<br>-<br>-libvk_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)<br>video_output/vulkan/display.c<br>-libvk_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS)<br>-libvk_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)<br>-<br>-libvk_win32_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)<br>video_output/vulkan/surface.c \<br>-                               video_output/vulkan/platform_win32.c<br>-libvk_win32_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS) \<br>-                         -DVK_USE_PLATFORM_WIN32_KHR -DPLATFORM_NAME=Win32<br>-libvk_win32_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)<br>-<br>-libvk_android_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)<br>video_output/vulkan/surface.c \<br>-                               video_output/vulkan/platform_android.c<br>-libvk_android_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS) \<br>-                             -DVK_USE_PLATFORM_ANDROID_KHR -DPLATFORM_NAME=Android<br>-libvk_android_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)<br>-<br>-if HAVE_VULKAN<br>-vout_LTLIBRARIES += libvk_plugin.la<br>-if HAVE_WIN32_DESKTOP<br>-vout_LTLIBRARIES += libvk_win32_plugin.la<br>-endif<br>-if HAVE_ANDROID<br>-vout_LTLIBRARIES += libvk_android_plugin.la<br>-endif<br>-endif<br>-<br> ### X11 ###<br> include video_output/xcb/Makefile.am<br><br>+### Vulkan ###<br>+include video_output/vulkan/Makefile.am<br><br> ### Wayland ###<br> include video_output/wayland/Makefile.am<br>diff --git a/modules/video_output/vulkan/Makefile.am<br>b/modules/video_output/vulkan/Makefile.am<br>new file mode 100644<br>index 0000000000..e769232575<br>--- /dev/null<br>+++ b/modules/video_output/vulkan/Makefile.am<br>@@ -0,0 +1,54 @@<br>+<br>+### Vulkan ###<br>+<br>+VULKAN_COMMONSOURCES = video_output/vulkan/instance.c \<br>+ video_output/vulkan/instance.h \<br>+     video_output/vulkan/platform.h \<br>+     video_output/placebo_utils.c \<br>+       video_output/placebo_utils.h<br>+<br>+# Trigger the c++ linker because of glslang dependency of libplacebo<br>+VULKAN_COMMONSOURCES += dummy.cpp<br>+<br>+VULKAN_COMMONCFLAGS = $(VULKAN_CFLAGS) $(LIBPLACEBO_CFLAGS)<br>+VULKAN_COMMONLIBS = $(VULKAN_LIBS) $(LIBPLACEBO_LIBS)<br>+<br>+libvk_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)<br>video_output/vulkan/display.c<br>+libvk_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS)<br>+libvk_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)<br>+<br>+libvk_win32_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)<br>video_output/vulkan/surface.c \<br>+                               video_output/vulkan/platform_win32.c<br>+libvk_win32_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS) \<br>+                         -DVK_USE_PLATFORM_WIN32_KHR -DPLATFORM_NAME=Win32<br>+libvk_win32_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)<br>+<br>+libvk_android_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)<br>video_output/vulkan/surface.c \<br>+                               video_output/vulkan/platform_android.c<br>+libvk_android_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS) \<br>+                             -DVK_USE_PLATFORM_ANDROID_KHR -DPLATFORM_NAME=Android<br>+libvk_android_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)<br>+<br>+libvk_x11_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES) \<br>+    video_output/vulkan/surface.c \<br>+      video_output/vulkan/platform_xcb.c<br>+libvk_x11_plugin_la_CFLAGS = $(AM_CFLAGS) \<br>+     $(XCB_CFLAGS) $(VULKAN_COMMONCFLAGS) \<br>+       -DVK_USE_PLATFORM_XCB_KHR -DPLATFORM_NAME=X11<br>+libvk_x11_plugin_la_LIBADD = $(VULKAN_COMMONLIBS) $(XCB_LIBS)<br>+<br>+if HAVE_VULKAN<br>+vout_LTLIBRARIES += libvk_plugin.la<br>+<br>+if HAVE_XCB<br>+vout_LTLIBRARIES += libvk_x11_plugin.la<br>+endif<br>+<br>+if HAVE_WIN32_DESKTOP<br>+vout_LTLIBRARIES += libvk_win32_plugin.la<br>+endif<br>+<br>+if HAVE_ANDROID<br>+vout_LTLIBRARIES += libvk_android_plugin.la<br>+endif<br>+endif<br>diff --git a/modules/video_output/xcb/Makefile.am<br>b/modules/video_output/xcb/Makefile.am<br>index f946e07ce7..52d0304ec5 100644<br>--- a/modules/video_output/xcb/Makefile.am<br>+++ b/modules/video_output/xcb/Makefile.am<br>@@ -32,14 +32,6 @@ libxcb_window_plugin_la_CFLAGS = $(AM_CFLAGS) \<br> libxcb_window_plugin_la_LIBADD = $(XPROTO_LIBS) $(XCB_LIBS) \<br>      $(XCB_XKB_LIBS) $(XKBCOMMON_X11_LIBS)<br><br>-libvk_x11_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES) \<br>-    video_output/vulkan/surface.c \<br>-      video_output/vulkan/platform_xcb.c<br>-libvk_x11_plugin_la_CFLAGS = $(AM_CFLAGS) \<br>-     $(XCB_CFLAGS) $(VULKAN_COMMONCFLAGS) \<br>-       -DVK_USE_PLATFORM_XCB_KHR -DPLATFORM_NAME=X11<br>-libvk_x11_plugin_la_LIBADD = $(VULKAN_COMMONLIBS) $(XCB_LIBS)<br>-<br> libegl_x11_plugin_la_SOURCES = video_output/opengl/egl.c<br> libegl_x11_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_PLATFORM_X11=1<br> libegl_x11_plugin_la_CFLAGS = $(AM_CFLAGS) $(EGL_CFLAGS)<br>@@ -61,9 +53,6 @@ libxcb_window_plugin_la_SOURCES += \<br>  video_output/xcb/vlc_xkb.h video_output/xcb/xkb.c<br> libxcb_window_plugin_la_CFLAGS += -DHAVE_XKBCOMMON<br> endif<br>-if HAVE_VULKAN<br>-vout_LTLIBRARIES += libvk_x11_plugin.la<br>-endif<br> if HAVE_EGL<br> vout_LTLIBRARIES += libegl_x11_plugin.la<br> endif<br>--<br>2.26.0<hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></blockquote>--<br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.<br></blockquote><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></blockquote><hr>vlc-devel mailing list<br>To unsubscribe or modify your subscription options:<br><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a></pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>