mirror of
https://github.com/italicsjenga/vello.git
synced 2025-01-10 20:51:29 +11:00
0cf370f9c7
This exposes interfaces to render glyphs into a texture atlas. The main changes are: * Methods to plumb raw Metal GPU resources (device, texture, etc) into piet-gpu-hal objects. * A new glyph_render API specialized to rendering glyphs. This is basically the same as just painting to a canvas, but will allow better caching (and has more direct access to fonts, bypassing the Piet font type which is underdeveloped). * Ability to render to A8 target in addition to RGBA. WIP, there are some rough edges, not least of which is that the image format changes are only on mac and cause compile errors elsewhere.
121 lines
4.7 KiB
GLSL
121 lines
4.7 KiB
GLSL
# 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
|
|
|
|
build gen/kernel4_gray.spv: glsl kernel4.comp | ptcl.h setup.h
|
|
flags = -DGRAY
|
|
build gen/kernel4_gray.hlsl: hlsl gen/kernel4_gray.spv
|
|
build gen/kernel4_gray.dxil: dxil gen/kernel4_gray.hlsl
|
|
build gen/kernel4_gray.msl: msl gen/kernel4_gray.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
|