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

Alexandre Janniaux ajanni at videolabs.io
Tue Apr 7 18:59:04 CEST 2020


Hi,

Just to avoid sending those patches are the changes in
the Makefile.am are simple:

I kept the platform_*.c files in vulkan/ and the platform_xcb
build rule in xcb/Makefile.am.

I also added platform_wayland.c in vulkan/ and the matching
build rule in wayland/Makefile.am.

I hope it matches what you expect,

Regards,
--
Alexandre Janniaux
Videolabs

On Tue, Apr 07, 2020 at 11:49:44AM +0200, Alexandre Janniaux wrote:
> 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
> _______________________________________________
> 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