From 3a8a7f290da5e26f02302ecfbff8ac866b8480a2 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Fri, 10 Dec 2021 01:01:28 +0300 Subject: [PATCH] ref_vk: wscript: split rtx shaders into new build target for specific glslc flags --- ref_vk/wscript | 19 ++++++++++++------- scripts/waifulib/glslc.py | 4 ++++ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/ref_vk/wscript b/ref_vk/wscript index 63191bc9..4b25ce34 100644 --- a/ref_vk/wscript +++ b/ref_vk/wscript @@ -11,10 +11,10 @@ def options(opt): grp = opt.add_option_group('ref_vk options') grp.add_option('--disable-vulkan', action='store_false', dest='VK', default=True, - help = 'disable vulkan [default: vulkan is enabled]') + help = 'disable vulkan [default: %default]') - grp.add_option('', '--aftermath', action='store', dest = 'NSIGHT_AFTERMATH_SDK', default = None, - help = 'Path to Nvidia Nsight Aftermath SDK (optional)') + grp.add_option('--aftermath', action='store', dest = 'NSIGHT_AFTERMATH_SDK', default = None, + help = 'path to Nvidia Nsight Aftermath SDK (optional) [default: %default]') def configure(conf): # check for dedicated server build @@ -63,9 +63,6 @@ def configure(conf): # TODO if debug conf.env.GLSLCFLAGS += ['-g'] - # TODO for rtx shaders only (rgen, rmiss, rchit, ...) - conf.env.GLSLCFLAGS += ['--target-env=vulkan1.2'] - def build(bld): if not bld.env.VK: return @@ -75,7 +72,8 @@ def build(bld): libpath = [] source = bld.path.ant_glob(['*.c']) - glsl_source = bld.path.ant_glob(['shaders/*.vert', 'shaders/*.frag', 'shaders/*.comp', 'shaders/*.rgen', 'shaders/*.rchit', 'shaders/*.rmiss', 'shaders/*.rahit']) + glsl_source = bld.path.ant_glob(['shaders/*.vert', 'shaders/*.frag', 'shaders/*.comp']) + rtx_glsl_source = bld.path.ant_glob(['shaders/*.rgen', 'shaders/*.rchit', 'shaders/*.rmiss', 'shaders/*.rahit']) includes = ['.', '../engine', @@ -116,4 +114,11 @@ def build(bld): install_path = bld.env.LIBDIR + '/valve' # FIXME TEMPORARY!!!! ) + bld( + source = rtx_glsl_source, + features = 'glsl', + install_path = bld.env.LIBDIR + '/valve', # FIXME TEMPORARY!!!! + glslcflags = '--target-env=vulkan1.2' + ) + bld.install_files(bld.env.LIBDIR + '/valve/maps', bld.path.ant_glob('rad/*.rad')) diff --git a/scripts/waifulib/glslc.py b/scripts/waifulib/glslc.py index f55a1426..3f512bbe 100644 --- a/scripts/waifulib/glslc.py +++ b/scripts/waifulib/glslc.py @@ -44,6 +44,10 @@ def process_glsl_source(self, src): self.env.INCPATHS = [x.path_from(cwd) for x in lst] self.env.append_unique('GLSLCDEFINES', self.to_list(getattr(self, 'defines', []))) + flags = getattr(self, 'glslcflags', None) + if flags: + self.env.append_unique('GLSLCFLAGS', self.to_list(flags)) + tsk = self.create_task('glsl', src, src.parent.find_or_declare('%s.spv' % src.name)) inst_to = getattr(self, 'install_path', None)