diff --git a/Makefile.in b/Makefile.in index fbd98ea37..11c6afbf8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -260,6 +260,8 @@ TEST_OBJS = $(COMMON_OBJS) \ test/test_rtp.o \ test/run_tests.o +VULKAN_SHADERS="render.vert" "render.frag" "RGB10A2_conv.comp" "UYVA16_conv.comp" "UYVY8_conv.comp" + DEP_FILES_1 = $(OBJS) $(REFLECTOR_OBJS) $(TEST_OBJS) $(ULTRAGRID_OBJS) DEP_FILES = $(patsubst %.lib,%.P,$(DEP_FILES_1:.o=.P)) # replace .o and also .lib (Windows) with .P # ------------------------------------------------------------------------------------------------- @@ -585,6 +587,7 @@ clean: $(COND_SILENCE)-rm -rf $(REFLECTOR_TARGET) $(REFLECTOR_OBJS) $(COND_SILENCE)-rm -rf @LIB_OBJS@ @MODULES@ @LIB_GENERATED_HEADERS@ $(COND_SILENCE)-rm -rf $(DEP_FILES) + $(COND_SILENCE)-rm -rf bin/shaders $(COND_SILENCE)if [ -f "gui/QT/Makefile" ]; then make -C gui/QT/ distclean; fi distclean: clean @@ -621,6 +624,7 @@ $(BUNDLE): $(TARGET) $(REFLECTOR_TARGET) hd-rum-multi/hd-rum cp $(REFLECTOR_TARGET) $(BUNDLE)/Contents/MacOS/ cp -r data/MacOS-bundle-template/* $(BUNDLE)/ cp hd-rum-multi/hd-rum $(BUNDLE)/Contents/MacOS/ + cp -r $(srcdir)/share/ $(BUNDLE)/Contents/share/ touch $@ # mark target as up to date # adds libraries to the bundle @@ -701,7 +705,12 @@ install: all $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir) $(INSTALL) -m 644 $(srcdir)/data/uv.1 $(srcdir)/data/hd-rum-transcode.1 $(DESTDIR)$(man1dir) if [ -n '@DLL_LIBS@' ]; then $(INSTALL) -m 644 @DLL_LIBS@ $(DESTDIR)$(bindir); fi - + if [ -n "@VULKAN@" ]; then\ + declare -a SHADERS=($(VULKAN_SHADERS))\ + for shader in $${SHADERS[@]}; do \ + $(INSTALL) -D -m 644 "$(srcdir)/share/ultragrid/vulkan_shaders/$$shader" "$(DESTDIR)$(datadir)/ultragrid/vulkan_shaders/$$shader"; \ + done; \ + fi uninstall: $(RM) $(DESTDIR)$(bindir)/uv $(RM) $(DESTDIR)$(bindir)/hd-rum-transcode @@ -715,5 +724,13 @@ uninstall: $(RM) $(DESTDIR)$(datadir)/metainfo/cz.cesnet.ultragrid.appdata.xml;\ $(RM) $(DESTDIR)$(datadir)/pixmaps/ultragrid.png;\ fi + if [ -n "@VULKAN@" ]; then\ + declare -a SHADERS=($(VULKAN_SHADERS))\ + for shader in $${SHADERS[@]}; do \ + $(RM) "$(DESTDIR)$(datadir)/ultragrid/vulkan_shaders/$$shader";\ + done; \ + rmdir $(DESTDIR)$(datadir)/ultragrid/vulkan_shaders;\ + rmdir $(DESTDIR)$(datadir)/ultragrid;\ + fi # vim: set noexpandtab diff --git a/configure.ac b/configure.ac index d63677693..2478cd9b8 100644 --- a/configure.ac +++ b/configure.ac @@ -1236,6 +1236,39 @@ if test $sdl_req = yes -a $sdl = no; then AC_MSG_ERROR([SDL requested but found any version]); fi +# ------------------------------------------------------------------------------ +# Vulkan +# ------------------------------------------------------------------------------ +vulkan=no + +AC_ARG_ENABLE(vulkan, +[ --disable-vulkan disable sdl2_vulkan display (default is auto] +[ Requires: sdl2 vulkan], + [vulkan_req=$enableval], + [vulkan_req=$build_default] + ) + +PKG_CHECK_MODULES([VULKAN], [vulkan], [found_vulkan=yes], [found_vulkan=no]) + +if test $vulkan_req != no; then + if test $sdl = no -o $sdl_version != 2; then + AC_MSG_ERROR([SDL2 not found]); + fi +fi + +#echo $vulkan_req $sdl $sdl_version $found_vulkan + +if test $vulkan_req != no -a $sdl = yes -a $sdl_version = 2 -a $found_vulkan = yes +then + VULKAN_OBJ="src/video_display/vulkan/vulkan_sdl2.o src/video_display/vulkan/vulkan_display.o src/video_display/vulkan/vulkan_context.o src/video_display/vulkan/vulkan_transfer_image.o src/video_display/vulkan/vulkan_pipelines.o" + AC_DEFINE([HAVE_VULKAN], [1], [Build with vulkan support]) + VULKAN_LIBS="$VULKAN_LIBS $SDL_LIB" + ADD_MODULE("display_vulkan_sdl2", "$VULKAN_OBJ", "$VULKAN_LIBS") + VULKAN=vulkanEnabled + AC_SUBST(VULKAN) + vulkan=yes +fi + # ------------------------------------------------------------------------------ # GLM (OpenGL math library) # ------------------------------------------------------------------------------ @@ -3547,6 +3580,7 @@ RESULT=`add_column "$RESULT" "Screen capture" $screen_cap $?` RESULT=`add_column "$RESULT" "SDL (ver. $sdl_version)" $sdl $?` RESULT=`add_column "$RESULT" "SW video mix" $swmix $?` RESULT=`add_column "$RESULT" "V4L2" $v4l2 $?` +RESULT=`add_column "$RESULT" "VULKAN_SDL2" $vulkan $?` RESULT=`add_column "$RESULT" "XIMEA" $ximea $?` RESULT=`end_section "$RESULT"`