# Build file for shaders. # You must have Vulkan tools in your path, or patch here. glslang_validator = glslangValidator spirv_cross = spirv-cross dxc = dxc # See https://github.com/KhronosGroup/SPIRV-Cross/issues/1248 for # why we set this. msl_flags = --msl-decoration-binding rule glsl command = $glslang_validator $flags -V -o $out $in rule hlsl command = $spirv_cross --hlsl --shader-model 60 $in --output $out rule dxil command = $dxc -T cs_6_0 $in -Fo $out rule msl command = $spirv_cross --msl $in --output $out $msl_flags build gen/binning.spv: glsl binning.comp | annotated.h state.h bins.h setup.h mem.h build gen/binning.hlsl: hlsl gen/binning.spv build gen/binning.dxil: dxil gen/binning.hlsl build gen/binning.msl: msl gen/binning.spv build gen/tile_alloc.spv: glsl tile_alloc.comp | annotated.h tile.h setup.h build gen/tile_alloc.hlsl: hlsl gen/tile_alloc.spv build gen/tile_alloc.dxil: dxil gen/tile_alloc.hlsl build gen/tile_alloc.msl: msl gen/tile_alloc.spv build gen/path_coarse.spv: glsl path_coarse.comp | annotated.h pathseg.h tile.h setup.h build gen/path_coarse.hlsl: hlsl gen/path_coarse.spv build gen/path_coarse.dxil: dxil gen/path_coarse.hlsl build gen/path_coarse.msl: msl gen/path_coarse.spv build gen/backdrop.spv: glsl backdrop.comp | annotated.h tile.h setup.h build gen/backdrop.hlsl: hlsl gen/backdrop.spv build gen/backdrop.dxil: dxil gen/backdrop.hlsl build gen/backdrop.msl: msl gen/backdrop.spv build gen/backdrop_lg.spv: glsl backdrop.comp | annotated.h tile.h setup.h flags = -DBACKDROP_DIST_FACTOR=4 build gen/backdrop_lg.hlsl: hlsl gen/backdrop_lg.spv build gen/backdrop_lg.dxil: dxil gen/backdrop_lg.hlsl build gen/backdrop_lg.msl: msl gen/backdrop_lg.spv build gen/coarse.spv: glsl coarse.comp | annotated.h bins.h ptcl.h setup.h build gen/coarse.hlsl: hlsl gen/coarse.spv build gen/coarse.dxil: dxil gen/coarse.hlsl build gen/coarse.msl: msl gen/coarse.spv build gen/kernel4.spv: glsl kernel4.comp | ptcl.h setup.h build gen/kernel4.hlsl: hlsl gen/kernel4.spv build gen/kernel4.dxil: dxil gen/kernel4.hlsl build gen/kernel4.msl: msl gen/kernel4.spv # New element pipeline follows build gen/transform_reduce.spv: glsl transform_reduce.comp | scene.h setup.h mem.h build gen/transform_reduce.hlsl: hlsl gen/transform_reduce.spv build gen/transform_reduce.dxil: dxil gen/transform_reduce.hlsl build gen/transform_reduce.msl: msl gen/transform_reduce.spv build gen/transform_root.spv: glsl transform_scan.comp | setup.h flags = -DROOT build gen/transform_root.hlsl: hlsl gen/transform_root.spv build gen/transform_root.dxil: dxil gen/transform_root.hlsl build gen/transform_root.msl: msl gen/transform_root.spv build gen/transform_leaf.spv: glsl transform_leaf.comp | scene.h tile.h setup.h mem.h build gen/transform_leaf.hlsl: hlsl gen/transform_leaf.spv build gen/transform_leaf.dxil: dxil gen/transform_leaf.hlsl build gen/transform_leaf.msl: msl gen/transform_leaf.spv build gen/pathtag_reduce.spv: glsl pathtag_reduce.comp | pathtag.h setup.h mem.h build gen/pathtag_reduce.hlsl: hlsl gen/pathtag_reduce.spv build gen/pathtag_reduce.dxil: dxil gen/pathtag_reduce.hlsl build gen/pathtag_reduce.msl: msl gen/pathtag_reduce.spv build gen/pathtag_root.spv: glsl pathtag_scan.comp | pathtag.h setup.h flags = -DROOT build gen/pathtag_root.hlsl: hlsl gen/pathtag_root.spv build gen/pathtag_root.dxil: dxil gen/pathtag_root.hlsl build gen/pathtag_root.msl: msl gen/pathtag_root.spv build gen/bbox_clear.spv: glsl bbox_clear.comp | setup.h mem.h build gen/bbox_clear.hlsl: hlsl gen/bbox_clear.spv build gen/bbox_clear.dxil: dxil gen/bbox_clear.hlsl build gen/bbox_clear.msl: msl gen/bbox_clear.spv build gen/pathseg.spv: glsl pathseg.comp | tile.h pathseg.h pathtag.h setup.h mem.h build gen/pathseg.hlsl: hlsl gen/pathseg.spv build gen/pathseg.dxil: dxil gen/pathseg.hlsl build gen/pathseg.msl: msl gen/pathseg.spv build gen/draw_reduce.spv: glsl draw_reduce.comp | scene.h drawtag.h setup.h mem.h build gen/draw_reduce.hlsl: hlsl gen/draw_reduce.spv build gen/draw_reduce.dxil: dxil gen/draw_reduce.hlsl build gen/draw_reduce.msl: msl gen/draw_reduce.spv build gen/draw_root.spv: glsl draw_scan.comp | drawtag.h setup.h flags = -DROOT build gen/draw_root.hlsl: hlsl gen/draw_root.spv build gen/draw_root.dxil: dxil gen/draw_root.hlsl build gen/draw_root.msl: msl gen/draw_root.spv build gen/draw_leaf.spv: glsl draw_leaf.comp | scene.h drawtag.h annotated.h setup.h mem.h build gen/draw_leaf.hlsl: hlsl gen/draw_leaf.spv build gen/draw_leaf.dxil: dxil gen/draw_leaf.hlsl build gen/draw_leaf.msl: msl gen/draw_leaf.spv