diff --git a/Makefile.am b/Makefile.am index 6e8dd096f..1b754e336 100644 --- a/Makefile.am +++ b/Makefile.am @@ -99,6 +99,7 @@ QCFLAGS=-qq -O -g -Werror -Wall -Wno-integer-divide QCPPFLAGS=$(QCSYSTEM) QCLINKFLAGS=--no-default-paths -Lruamoko/lib QCOMPILE=$(QFCC) $(QCFLAGS) $(QCPPFLAGS) +QSPIRV=$(QFCC) -q -Cc-array,target=spir-v -O QLINK=$(QFCC) $(QCFLAGS) $(QCLINKFLAGS) MKDIR_P = @MKDIR_P@ @@ -108,6 +109,12 @@ qfcc_compile=\ sed -i -e '1s@:@: $(QFCC_DEP)@' $$depbase.Tqo &&\ $(am__mv) $$depbase.Tqo $$depbase.Qo +qfcc_spirv=\ + $(V_QFCC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(QSPIRV) $(1) -MT $@ -MD -MP -MF $$depbase.Tqo -c -o $@ $< &&\ + sed -i -e '1s@:@: $(QFCC_DEP)@' $$depbase.Tqo &&\ + $(am__mv) $$depbase.Tqo $$depbase.Qo + am__mv = mv -f SUFFIXES=.o .r .pas @@ -117,8 +124,11 @@ SUFFIXES=.o .r .pas $(qfcc_compile) qcautodep = $(join $(addsuffix $(DEPDIR)/,$(dir $(basename $(1)))),$(addsuffix $(2).Qo,$(notdir $(basename $(basename $(1)))))) +spvcautodep = $(join $(addsuffix $(DEPDIR)/,$(dir $(basename $(1)))),$(addsuffix $(2).Qo,$(notdir $(1)))) +spvautoc = $(addsuffix $(2).spvc,$(1)) r_depfiles_remade= pas_depfiles_remade= +spvc_depfiles_remade= V_PY = $(V_PY_@AM_V@) V_PY_ = $(V_PY_@AM_DEFAULT_V@) @@ -153,6 +163,10 @@ SUFFICES += .plist .plc @$(mkdir_p) $(builddir)/`dirname $@` $(V_GLSLANG)(((($(GLSLANGVALIDATOR) --vn `basename $< | tr . _` -V $< -o $@; echo $$? >&3) | sed -e '1d' 1>&2) 3>&1) | (read xs; exit $$xs)) +%.vert.spvc: %.vert + @$(mkdir_p) $(builddir)/`dirname $@` + $(V_QFCC)$(QFCC) -q -c -O -Cc-array,target=spir-v -o $@ $< + sharepath = @sharepath@ shaderdir = @shaderdir@ shader_DATA = @@ -171,7 +185,7 @@ include qw/Makemodule.am include tools/Makemodule.am include ruamoko/Makemodule.am -DISTCLEANFILES += $(r_depfiles_remade) $(pas_depfiles_remade) +DISTCLEANFILES += $(r_depfiles_remade) $(pas_depfiles_remade) $(spvc_depfiles_remade) CLEANFILES += $(shader_DATA) $(r_depfiles_remade): @@ -182,7 +196,12 @@ $(pas_depfiles_remade): $(MKDIR_P) $(@D) echo '$@' | sed -e 's@\$(DEPDIR)/@@' -e 's@\(.*\)\.Qo$$@\1.o: $(top_srcdir)/\1.pas $(QFCC)@' >$@-t && $(am__mv) $@-t $@ -am--depfiles: $(am__depfiles_remade) $(r_depfiles_remade) $(pas_depfiles_remade) +$(spvc_depfiles_remade): + $(MKDIR_P) $(@D) + echo '$@' | sed -e 's@\$(DEPDIR)/@@' -e 's@\(.*\)\.Qo$$@\1.spvc: $(top_srcdir)/\1 $(QFCC)@' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) $(r_depfiles_remade) \ + $(pas_depfiles_remade) $(spvc_depfiles_remade) echo findme $(ruamoko_gui_libgui_a_dep) changelog: ChangeLog diff --git a/libs/video/renderer/Makemodule.am b/libs/video/renderer/Makemodule.am index 73e112087..eb7b8864a 100644 --- a/libs/video/renderer/Makemodule.am +++ b/libs/video/renderer/Makemodule.am @@ -507,37 +507,52 @@ $(fisheye_c): $(fisheye_src) $(matrices_h) $(waterwarp_c): $(waterwarp_src) $(matrices_h) -vkshader_c = \ - $(slice_c) \ - $(linev_c) \ +vkshader_src_vert = \ + $(slice_src) \ + $(linev_src) \ + $(particlev_src) \ + $(sprite_gbufv_src) \ + $(sprite_depthv_src) \ + $(twodv_src) \ + $(quakebspv_src) \ + $(bsp_depth_src) \ + $(bsp_gbufv_src) \ + $(bsp_shadow_src) \ + $(light_entid_src) \ + $(light_flat_src) \ + $(light_splatv_src) \ + $(aliasv_src) \ + $(alias_depth_src) \ + $(alias_shadow_src) \ + $(iqmv_src) \ + $(iqm_shadow_src) \ + $(passthrough_src) \ + $(fstriangle_src) \ + $(fstrianglest_src) + +vkshader_c_vert=$(call spvautoc,$(vkshader_src_vert)) +vkshader_dep = $(call spvcautodep,$(vkshader_src_vert)) +include $(vkshader_dep) # am--include-marker +spvc_depfiles_remade += $(vkshader_dep) + +vkshader_c = $(vkshader_c_vert) \ $(linef_c) \ $(partphysicsc_c) \ $(partupdatec_c) \ - $(particlev_c) \ $(particleg_c) \ $(particlef_c) \ $(spritef_c) \ - $(sprite_gbufv_c) \ $(sprite_gbuff_c) \ - $(sprite_depthv_c) \ $(sprite_depthf_c) \ - $(twodv_c) \ $(twodf_c) \ $(twod_depthf_c) \ - $(quakebspv_c) \ $(quakebspf_c) \ - $(bsp_depth_c) \ - $(bsp_gbufv_c) \ $(bsp_gbufg_c) \ $(bsp_gbuff_c) \ - $(bsp_shadow_c) \ $(bsp_skyf_c) \ $(bsp_turbf_c) \ $(debug_c) \ $(entid_c) \ - $(light_entid_c) \ - $(light_flat_c) \ - $(light_splatv_c) \ $(light_splatf_c) \ $(light_debug_c) \ $(light_oit_c) \ @@ -547,20 +562,11 @@ vkshader_c = \ $(lighting_planef_c) \ $(composef_c) \ $(compose_fwdf_c) \ - $(aliasv_c) \ - $(alias_depth_c) \ $(qskin_fwdf_c) \ $(qskin_gbuf_c) \ - $(alias_shadow_c) \ - $(iqmv_c) \ - $(iqm_shadow_c) \ $(output_c) \ - $(passthrough_c) \ - $(fstriangle_c) \ - $(fstrianglest_c) \ $(gridplane_c) \ $(pushcolor_c) \ - $(shadow_c) \ $(fisheye_c) \ $(waterwarp_c)