vello/piet-gpu/shader/gen
Raph Levien 18563101b2 Fix blending math
The blending math had two errors: first, colors were not separated for the purpose of blending (blending was wrongly applied to premultiplied values), and second, alpha was applied over-aggressively to the alpha channel.

This PR does *not* address the issue of gamma correctness. That is a complex issue and should probably be handled in the short term by disabling sRGB conversions and doing the internal math in sRGB color space rather than linear. This will degrade the quality of antialiasing but on the other hand give spec-compliant results for compositing.

We remove the plus-darker mode as its specification does not appear to be valid. The plus-lighter mode remains as it is quite useful for cross-fading effects.

Also the generated shaders were compiled on mac so the DXIL is unsigned. Those should be compiled on Windows before this PR is merged. (and we should figure out a better strategy for all that)
2022-05-13 10:18:29 -07:00
..
backdrop.dxil Fix blending math 2022-05-13 10:18:29 -07:00
backdrop.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
backdrop.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
backdrop.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
backdrop_lg.dxil Fix blending math 2022-05-13 10:18:29 -07:00
backdrop_lg.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
backdrop_lg.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
backdrop_lg.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
bbox_clear.dxil Fix blending math 2022-05-13 10:18:29 -07:00
bbox_clear.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
bbox_clear.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
bbox_clear.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
binning.dxil Fix blending math 2022-05-13 10:18:29 -07:00
binning.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
binning.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
binning.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
clip_leaf.dxil Fix blending math 2022-05-13 10:18:29 -07:00
clip_leaf.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
clip_leaf.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
clip_leaf.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
clip_reduce.dxil Fix blending math 2022-05-13 10:18:29 -07:00
clip_reduce.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
clip_reduce.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
clip_reduce.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
coarse.dxil Fix blending math 2022-05-13 10:18:29 -07:00
coarse.hlsl Radial gradients 2022-03-30 20:32:13 -07:00
coarse.msl Radial gradients 2022-03-30 20:32:13 -07:00
coarse.spv Radial gradients 2022-03-30 20:32:13 -07:00
draw_leaf.dxil Fix blending math 2022-05-13 10:18:29 -07:00
draw_leaf.hlsl Radial gradients 2022-03-30 20:32:13 -07:00
draw_leaf.msl Radial gradients 2022-03-30 20:32:13 -07:00
draw_leaf.spv Radial gradients 2022-03-30 20:32:13 -07:00
draw_reduce.dxil Fix blending math 2022-05-13 10:18:29 -07:00
draw_reduce.hlsl Radial gradients 2022-03-30 20:32:13 -07:00
draw_reduce.msl Radial gradients 2022-03-30 20:32:13 -07:00
draw_reduce.spv Radial gradients 2022-03-30 20:32:13 -07:00
draw_root.dxil Fix blending math 2022-05-13 10:18:29 -07:00
draw_root.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
draw_root.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
draw_root.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
kernel4.dxil Fix blending math 2022-05-13 10:18:29 -07:00
kernel4.hlsl Fix blending math 2022-05-13 10:18:29 -07:00
kernel4.msl Fix blending math 2022-05-13 10:18:29 -07:00
kernel4.spv Fix blending math 2022-05-13 10:18:29 -07:00
kernel4_gray.dxil Fix blending math 2022-05-13 10:18:29 -07:00
kernel4_gray.hlsl Fix blending math 2022-05-13 10:18:29 -07:00
kernel4_gray.msl Fix blending math 2022-05-13 10:18:29 -07:00
kernel4_gray.spv Fix blending math 2022-05-13 10:18:29 -07:00
path_coarse.dxil Fix blending math 2022-05-13 10:18:29 -07:00
path_coarse.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
path_coarse.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
path_coarse.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
pathseg.dxil Fix blending math 2022-05-13 10:18:29 -07:00
pathseg.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
pathseg.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
pathseg.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
pathtag_reduce.dxil Fix blending math 2022-05-13 10:18:29 -07:00
pathtag_reduce.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
pathtag_reduce.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
pathtag_reduce.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
pathtag_root.dxil Fix blending math 2022-05-13 10:18:29 -07:00
pathtag_root.hlsl Adjust workgroup sizes 2021-12-08 11:48:38 -08:00
pathtag_root.msl Adjust workgroup sizes 2021-12-08 11:48:38 -08:00
pathtag_root.spv Adjust workgroup sizes 2021-12-08 11:48:38 -08:00
tile_alloc.dxil Fix blending math 2022-05-13 10:18:29 -07:00
tile_alloc.hlsl Fix missing blend/clip logic 2022-03-16 14:40:58 -07:00
tile_alloc.msl Fix missing blend/clip logic 2022-03-16 14:40:58 -07:00
tile_alloc.spv Fix missing blend/clip logic 2022-03-16 14:40:58 -07:00
transform_leaf.dxil Fix blending math 2022-05-13 10:18:29 -07:00
transform_leaf.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
transform_leaf.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
transform_leaf.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
transform_reduce.dxil Fix blending math 2022-05-13 10:18:29 -07:00
transform_reduce.hlsl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
transform_reduce.msl Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
transform_reduce.spv Variable size encoding of draw objects 2022-03-14 16:32:08 -07:00
transform_root.dxil Fix blending math 2022-05-13 10:18:29 -07:00
transform_root.hlsl Adjust workgroup sizes 2021-12-08 11:48:38 -08:00
transform_root.msl Adjust workgroup sizes 2021-12-08 11:48:38 -08:00
transform_root.spv Adjust workgroup sizes 2021-12-08 11:48:38 -08:00