mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-04-13 21:01:08 +00:00
[vulkan] Switch to qfcc for the vertex shaders
Things aren't quite working yet (currently due to buffer blocks not getting marked NonWritable (or maybe they should be BufferBlock)), but this gets shader compilation via qfcc working at all, including automatic dependencies.
This commit is contained in:
parent
e2631db4eb
commit
2c7a6c8a87
2 changed files with 50 additions and 25 deletions
23
Makefile.am
23
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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in a new issue