[vulkan] Use qfcc for compute shaders

While there's still a duplicate type bug causing validation failure for
partupdate.comp, everything builds.

Also clean up a few build issues surrounding shaders.
This commit is contained in:
Bill Currie 2025-02-16 19:03:11 +09:00
parent ed84bbb532
commit 67003c146a
2 changed files with 17 additions and 12 deletions

View file

@ -99,7 +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
QSPIRV=$(QCOMPILE) -Cc-array,target=spir-v
QLINK=$(QFCC) $(QCFLAGS) $(QCLINKFLAGS)
MKDIR_P = @MKDIR_P@
@ -110,7 +110,7 @@ qfcc_compile=\
$(am__mv) $$depbase.Tqo $$depbase.Qo
qfcc_spirv=\
$(V_QFCC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(V_QFCC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.spvc$$||'`;\
$(QSPIRV) $(1) -MT $@ -MD -MP -MF $$depbase.Tqo -c -o $@ $< &&\
sed -i -e '1s@:@: $(QFCC_DEP)@' $$depbase.Tqo &&\
$(am__mv) $$depbase.Tqo $$depbase.Qo
@ -164,16 +164,16 @@ SUFFICES += .plist .plc
$(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 $@ $<
$(qfcc_spirv)
%.geom.spvc: %.geom
@$(mkdir_p) $(builddir)/`dirname $@`
$(V_QFCC)$(QFCC) -q -c -O -Cc-array,target=spir-v -o $@ $<
$(qfcc_spirv)
%.frag.spvc: %.frag
@$(mkdir_p) $(builddir)/`dirname $@`
$(V_QFCC)$(QFCC) -q -c -O -Cc-array,target=spir-v -o $@ $<
$(qfcc_spirv)
%.comp.spvc: %.comp
$(qfcc_spirv)
sharepath = @sharepath@
shaderdir = @shaderdir@

View file

@ -107,7 +107,7 @@ shader_gen = \
$(glslshaderpath)/quakeforge.slc \
$(glslshaderpath)/sgustavson.slc
SUFFIXES += .frag .vert .spv .spvc .fc .vc .slc .glsl
SUFFIXES += .geom .comp .frag .vert .spv .spvc .fc .vc .slc .glsl
.glsl.slc:
$(V_SED)sed -e 's/\\/\\\\/g' -e 's/"/\\"/g' -e 's/^/"/' -e 's/$$/\\n"/' $< > $@.t &&\
$(am__mv) $@.t $@
@ -565,18 +565,23 @@ vkshader_src_frag = \
$(fisheye_src) \
$(waterwarp_src)
vkshader_src_comp = \
$(partphysicsc_src) \
$(partupdatec_src)
vkshader_c_vert=$(call spvautoc,$(vkshader_src_vert))
vkshader_c_geom=$(call spvautoc,$(vkshader_src_geom))
vkshader_c_frag=$(call spvautoc,$(vkshader_src_frag))
vkshader_c_comp=$(call spvautoc,$(vkshader_src_comp))
vkshader_src = $(vkshader_src_vert) $(vkshader_src_geom) $(vkshader_src_frag)
vkshader_src = $(vkshader_src_vert) $(vkshader_src_geom) $(vkshader_src_frag) \
$(vkshader_src_comp)
vkshader_dep = $(call spvcautodep, $(vkshader_src))
include $(vkshader_dep) # am--include-marker
spvc_depfiles_remade += $(vkshader_dep)
vkshader_c = $(vkshader_c_vert) $(vkshader_c_geom) $(vkshader_c_frag) \
$(partphysicsc_c) \
$(partupdatec_c)
$(vkshader_c_comp)
V_VKGEN = $(V_VKGEN_@AM_V@)
V_VKGEN_ = $(V_VKGEN_@AM_DEFAULT_V@)