[vlc-devel] [PATCH 2/3] vukan: refactor Makefile.am for Vulkan plugins

Alexandre Janniaux ajanni at videolabs.io
Tue Apr 7 11:49:44 CEST 2020


Hi,

Fine then, I'll keep the xcb platform in xcb/ and move the
wayland one in wayland/.

Do I keep the platform files in vulkan/ though ?

Regards,
--
Alexandre Janniaux
Videolabs

On Tue, Apr 07, 2020 at 12:44:07PM +0300, Rémi Denis-Courmont wrote:
> Hi,
>
> 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).
>
> Le 7 avril 2020 11:53:31 GMT+03:00, Alexandre Janniaux <ajanni at videolabs.io> a écrit :
> >Hi,
> >
> >Then the platform_xcb should probably be in xcb right?
> >
> >The rationale behind that is mostly that while you might
> >care about xcb windowing, you might not care about vulkan
> >but only opengl or so, and vulkan modules are currently
> >using VULKAN_COMMONSOURCE variable and it was more meaningful
> >to have the clients of this variable in the same file where
> >it is declared.
> >
> >As far as I see for Vulkan, the knowledge of the platform
> >integration is more related to vulkan than the underlying
> >platforms. For example you need to use the correct Vulkan
> >define to enable the WSI and the correct structure, and
> >internal vulkan details like presentation mode but you don't
> >need to know about wayland threading or registry.
> >
> >Thus, the split made sense to me.
> >
> >Regards,
> >--
> >Alexandre Janniaux
> >Videolabs
> >
> >On Tue, Apr 07, 2020 at 10:54:03AM +0300, Rémi Denis-Courmont wrote:
> >> Hi,
> >>
> >> 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.
> >>
> >> 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.
> >>
> >> Fine for the generic Vulkan stuff though.
> >>
> >> Le 6 avril 2020 20:01:51 GMT+03:00, Alexandre Janniaux
> ><ajanni at videolabs.io> a écrit :
> >> >Much like video_output/xcb, gather all Vulkan-related plugins
> >> >compilation targets in the vulkan subfolder, but still use the
> >> >vout_LTLIBRARIES variable to enable targets.
> >> >---
> >> > modules/video_output/Makefile.am        | 42 +------------------
> >> > modules/video_output/vulkan/Makefile.am | 54
> >+++++++++++++++++++++++++
> >> > modules/video_output/xcb/Makefile.am    | 11 -----
> >> > 3 files changed, 56 insertions(+), 51 deletions(-)
> >> > create mode 100644 modules/video_output/vulkan/Makefile.am
> >> >
> >> >diff --git a/modules/video_output/Makefile.am
> >> >b/modules/video_output/Makefile.am
> >> >index a61d15f20f..c82e9a0ed7 100644
> >> >--- a/modules/video_output/Makefile.am
> >> >+++ b/modules/video_output/Makefile.am
> >> >@@ -119,49 +119,11 @@ vout_LTLIBRARIES +=
> >libglinterop_vdpau_plugin.la
> >> > endif
> >> > endif # HAVE_GL
> >> >
> >> >-### Vulkan ###
> >> >-
> >> >-VULKAN_COMMONSOURCES = video_output/vulkan/instance.c \
> >> >-	video_output/vulkan/instance.h \
> >> >-	video_output/vulkan/platform.h \
> >> >-	video_output/placebo_utils.c \
> >> >-	video_output/placebo_utils.h
> >> >-
> >> >-# Trigger the c++ linker because of glslang dependency of
> >libplacebo
> >> >-VULKAN_COMMONSOURCES += dummy.cpp
> >> >-
> >> >-VULKAN_COMMONCFLAGS = $(VULKAN_CFLAGS) $(LIBPLACEBO_CFLAGS)
> >> >-VULKAN_COMMONLIBS = $(VULKAN_LIBS) $(LIBPLACEBO_LIBS)
> >> >-
> >> >-libvk_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)
> >> >video_output/vulkan/display.c
> >> >-libvk_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS)
> >> >-libvk_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)
> >> >-
> >> >-libvk_win32_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)
> >> >video_output/vulkan/surface.c \
> >> >-				video_output/vulkan/platform_win32.c
> >> >-libvk_win32_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS)
> >\
> >> >-			       -DVK_USE_PLATFORM_WIN32_KHR -DPLATFORM_NAME=Win32
> >> >-libvk_win32_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)
> >> >-
> >> >-libvk_android_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)
> >> >video_output/vulkan/surface.c \
> >> >-				video_output/vulkan/platform_android.c
> >> >-libvk_android_plugin_la_CFLAGS = $(AM_CFLAGS)
> >$(VULKAN_COMMONCFLAGS) \
> >> >-			       -DVK_USE_PLATFORM_ANDROID_KHR -DPLATFORM_NAME=Android
> >> >-libvk_android_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)
> >> >-
> >> >-if HAVE_VULKAN
> >> >-vout_LTLIBRARIES += libvk_plugin.la
> >> >-if HAVE_WIN32_DESKTOP
> >> >-vout_LTLIBRARIES += libvk_win32_plugin.la
> >> >-endif
> >> >-if HAVE_ANDROID
> >> >-vout_LTLIBRARIES += libvk_android_plugin.la
> >> >-endif
> >> >-endif
> >> >-
> >> > ### X11 ###
> >> > include video_output/xcb/Makefile.am
> >> >
> >> >+### Vulkan ###
> >> >+include video_output/vulkan/Makefile.am
> >> >
> >> > ### Wayland ###
> >> > include video_output/wayland/Makefile.am
> >> >diff --git a/modules/video_output/vulkan/Makefile.am
> >> >b/modules/video_output/vulkan/Makefile.am
> >> >new file mode 100644
> >> >index 0000000000..e769232575
> >> >--- /dev/null
> >> >+++ b/modules/video_output/vulkan/Makefile.am
> >> >@@ -0,0 +1,54 @@
> >> >+
> >> >+### Vulkan ###
> >> >+
> >> >+VULKAN_COMMONSOURCES = video_output/vulkan/instance.c \
> >> >+	video_output/vulkan/instance.h \
> >> >+	video_output/vulkan/platform.h \
> >> >+	video_output/placebo_utils.c \
> >> >+	video_output/placebo_utils.h
> >> >+
> >> >+# Trigger the c++ linker because of glslang dependency of
> >libplacebo
> >> >+VULKAN_COMMONSOURCES += dummy.cpp
> >> >+
> >> >+VULKAN_COMMONCFLAGS = $(VULKAN_CFLAGS) $(LIBPLACEBO_CFLAGS)
> >> >+VULKAN_COMMONLIBS = $(VULKAN_LIBS) $(LIBPLACEBO_LIBS)
> >> >+
> >> >+libvk_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)
> >> >video_output/vulkan/display.c
> >> >+libvk_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS)
> >> >+libvk_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)
> >> >+
> >> >+libvk_win32_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)
> >> >video_output/vulkan/surface.c \
> >> >+				video_output/vulkan/platform_win32.c
> >> >+libvk_win32_plugin_la_CFLAGS = $(AM_CFLAGS) $(VULKAN_COMMONCFLAGS)
> >\
> >> >+			       -DVK_USE_PLATFORM_WIN32_KHR -DPLATFORM_NAME=Win32
> >> >+libvk_win32_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)
> >> >+
> >> >+libvk_android_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES)
> >> >video_output/vulkan/surface.c \
> >> >+				video_output/vulkan/platform_android.c
> >> >+libvk_android_plugin_la_CFLAGS = $(AM_CFLAGS)
> >$(VULKAN_COMMONCFLAGS) \
> >> >+			       -DVK_USE_PLATFORM_ANDROID_KHR -DPLATFORM_NAME=Android
> >> >+libvk_android_plugin_la_LIBADD = $(VULKAN_COMMONLIBS)
> >> >+
> >> >+libvk_x11_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES) \
> >> >+	video_output/vulkan/surface.c \
> >> >+	video_output/vulkan/platform_xcb.c
> >> >+libvk_x11_plugin_la_CFLAGS = $(AM_CFLAGS) \
> >> >+	$(XCB_CFLAGS) $(VULKAN_COMMONCFLAGS) \
> >> >+	-DVK_USE_PLATFORM_XCB_KHR -DPLATFORM_NAME=X11
> >> >+libvk_x11_plugin_la_LIBADD = $(VULKAN_COMMONLIBS) $(XCB_LIBS)
> >> >+
> >> >+if HAVE_VULKAN
> >> >+vout_LTLIBRARIES += libvk_plugin.la
> >> >+
> >> >+if HAVE_XCB
> >> >+vout_LTLIBRARIES += libvk_x11_plugin.la
> >> >+endif
> >> >+
> >> >+if HAVE_WIN32_DESKTOP
> >> >+vout_LTLIBRARIES += libvk_win32_plugin.la
> >> >+endif
> >> >+
> >> >+if HAVE_ANDROID
> >> >+vout_LTLIBRARIES += libvk_android_plugin.la
> >> >+endif
> >> >+endif
> >> >diff --git a/modules/video_output/xcb/Makefile.am
> >> >b/modules/video_output/xcb/Makefile.am
> >> >index f946e07ce7..52d0304ec5 100644
> >> >--- a/modules/video_output/xcb/Makefile.am
> >> >+++ b/modules/video_output/xcb/Makefile.am
> >> >@@ -32,14 +32,6 @@ libxcb_window_plugin_la_CFLAGS = $(AM_CFLAGS) \
> >> > libxcb_window_plugin_la_LIBADD = $(XPROTO_LIBS) $(XCB_LIBS) \
> >> > 	$(XCB_XKB_LIBS) $(XKBCOMMON_X11_LIBS)
> >> >
> >> >-libvk_x11_plugin_la_SOURCES = $(VULKAN_COMMONSOURCES) \
> >> >-	video_output/vulkan/surface.c \
> >> >-	video_output/vulkan/platform_xcb.c
> >> >-libvk_x11_plugin_la_CFLAGS = $(AM_CFLAGS) \
> >> >-	$(XCB_CFLAGS) $(VULKAN_COMMONCFLAGS) \
> >> >-	-DVK_USE_PLATFORM_XCB_KHR -DPLATFORM_NAME=X11
> >> >-libvk_x11_plugin_la_LIBADD = $(VULKAN_COMMONLIBS) $(XCB_LIBS)
> >> >-
> >> > libegl_x11_plugin_la_SOURCES = video_output/opengl/egl.c
> >> > libegl_x11_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_PLATFORM_X11=1
> >> > libegl_x11_plugin_la_CFLAGS = $(AM_CFLAGS) $(EGL_CFLAGS)
> >> >@@ -61,9 +53,6 @@ libxcb_window_plugin_la_SOURCES += \
> >> > 	video_output/xcb/vlc_xkb.h video_output/xcb/xkb.c
> >> > libxcb_window_plugin_la_CFLAGS += -DHAVE_XKBCOMMON
> >> > endif
> >> >-if HAVE_VULKAN
> >> >-vout_LTLIBRARIES += libvk_x11_plugin.la
> >> >-endif
> >> > if HAVE_EGL
> >> > vout_LTLIBRARIES += libegl_x11_plugin.la
> >> > endif
> >> >--
> >> >2.26.0
> >> >
> >> >_______________________________________________
> >> >vlc-devel mailing list
> >> >To unsubscribe or modify your subscription options:
> >> >https://mailman.videolan.org/listinfo/vlc-devel
> >>
> >> --
> >> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez
> >excuser ma brièveté.
> >
> >> _______________________________________________
> >> vlc-devel mailing list
> >> To unsubscribe or modify your subscription options:
> >> https://mailman.videolan.org/listinfo/vlc-devel
> >_______________________________________________
> >vlc-devel mailing list
> >To unsubscribe or modify your subscription options:
> >https://mailman.videolan.org/listinfo/vlc-devel
>
> --
> Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.

> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list