ref_vk: wscript: split rtx shaders into new build target for specific glslc flags

This commit is contained in:
Alibek Omarov 2021-12-10 01:01:28 +03:00
parent ffd618b382
commit 3a8a7f290d
2 changed files with 16 additions and 7 deletions

View File

@ -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'))

View File

@ -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)