nfd SeparatedPipelineStages issue
On branch nfd-filter-first, (commit 80c7e4be) it appears that the ByteStream data is somehow being corrupted when passed from the input stage to the final stage. These results are the same on cs-osl-08 and Mac.
The following command unified pipeline produces correct output. The input file is attached.
bin/nfd Nt18091 -enable-illustrator >x0 2>ill0
hexdump -C x0
00000000 61 cc b4 e1 b3 94 f0 96 bf b0 62 0a |a.........b.|
0000000c
The SeparatedPipelineStages option executed as follows produces incorrect output.
bin/nfd ../build16/Nt18091 -enable-illustrator -SeparatedPipelineStages=3 >x1 2>ill1
hexdump -C x1
00000000 00 cc b4 e1 b3 94 f0 96 bf b0 62 48 |..........bH|
0000000c
The illustrator comparison shows that the two versions mostly agree.
diff -y -W160 ill0 ill1
BasisBits[4-7] | 6F9BBCBEB960 | BasisBits[4-7] | 6F9BBCBEB960
BasisBits[0-3] | 106F0C41342A | BasisBits[0-3] | 106F0C41342A
u8index | 1...1.1..111 |
U8_Insertion_BixNum[0-3] | 000000000000 | u8index | 1...1.1..111
U8_Deletion_BixNum[0-2] | 000000000000 | DT_Can | ............
DT_Can | ............ | CCC_0 | 1.........11
CCC_0 | 1.........11 | U8_Insertion_BixNum[0-3] | 000000000000
NFD_WorkItems | ....1.1..11. | U8_Deletion_BixNum[0-2] | 000000000000
WorkSelectionMask | .1111111111. | NFD_WorkItems | ....1.1..11.
NonModifiedMask | 1..........1 | WorkSelectionMask | .1111111111.
NonModified | a | U8_FilterMask | 111111111111
U8_FilterMask | 111111111111 | WorkingBasis[4-7] | F9BBCBEB96
WorkingBasis[4-7] | F9BBCBEB96 | WorkingBasis[0-3] | 06F0C41342
WorkingBasis[0-3] | 06F0C41342 | U8_SpreadMask | 111111111111
> ExpandedFilterMask | 111111111111
> U8_PostSpreadFilterMask | 111111111111
> WorkSpreadMask | .1111111111.
> WorkExpansionMask | .1111111111.
> WorkPlacementMask | .1111111111.
> FinalWorkPlacementMask | .1111111111.
>
U21_u8indexed[20-21] | 0000000000 U21_u8indexed[20-21] | 0000000000
U21_u8indexed[16-19] | 0001000000 U21_u8indexed[16-19] | 0001000000
U21_u8indexed[12-15] | 0006000010 U21_u8indexed[12-15] | 0006000010
U21_u8indexed[8-11] | 000F0300C0 U21_u8indexed[8-11] | 000F0300C0
U21_u8indexed[4-7] | 000F0300D6 U21_u8indexed[4-7] | 000F0300D6
U21_u8indexed[0-3] | 0000040042 U21_u8indexed[0-3] | 0000040042
WorkingU8index | ...1.1..11 WorkingU8index | ...1.1..11
U21_focus[20-21] | 0000 U21_focus[20-21] | 0000
U21_focus[16-19] | 1000 U21_focus[16-19] | 1000
U21_focus[12-15] | 6010 U21_focus[12-15] | 6010
U21_focus[8-11] | F3C0 U21_focus[8-11] | F3C0
U21_focus[4-7] | F3D6 U21_focus[4-7] | F3D6
U21_focus[0-3] | 0442 U21_focus[0-3] | 0442
U21_Insertion_BixNum[0-2] | 0000 U21_Insertion_BixNum[0-2] | 0000
U8_SpreadMask | 111111111111 <
ExpandedFilterMask | 111111111111 <
U8_PostSpreadFilterMask | 111111111111 <
WorkSpreadMask | .1111111111. <
WorkExpansionMask | .1111111111. <
WorkPlacementMask | .1111111111. <
FinalWorkPlacementMask | .1111111111. <
NonModifiedPlacementMask | 1..........1 <
U21_SpreadMask | 1111 U21_SpreadMask | 1111
U21_ExpandedBasis[20-21] | 0000 U21_ExpandedBasis[20-21] | 0000
U21_ExpandedBasis[16-19] | 1000 U21_ExpandedBasis[16-19] | 1000
U21_ExpandedBasis[12-15] | 6010 U21_ExpandedBasis[12-15] | 6010
U21_ExpandedBasis[8-11] | F3C0 U21_ExpandedBasis[8-11] | F3C0
U21_ExpandedBasis[4-7] | F3D6 U21_ExpandedBasis[4-7] | F3D6
U21_ExpandedBasis[0-3] | 0442 U21_ExpandedBasis[0-3] | 0442
LIndexBixNum[4-5] | 0000 LIndexBixNum[4-5] | 0000
LIndexBixNum[0-3] | 0000 LIndexBixNum[0-3] | 0000
VIndexBixNum[4-5] | 0000 VIndexBixNum[4-5] | 0000
VIndexBixNum[0-3] | 0000 VIndexBixNum[0-3] | 0000
TIndexBixNum[4-5] | 0000 TIndexBixNum[4-5] | 0000
TIndexBixNum[0-3] | 0000 TIndexBixNum[0-3] | 0000
Hangul_NFD_Basis[20-21] | 0000 Hangul_NFD_Basis[20-21] | 0000
Hangul_NFD_Basis[16-19] | 1000 Hangul_NFD_Basis[16-19] | 1000
Hangul_NFD_Basis[12-15] | 6010 Hangul_NFD_Basis[12-15] | 6010
Hangul_NFD_Basis[8-11] | F3C0 Hangul_NFD_Basis[8-11] | F3C0
Hangul_NFD_Basis[4-7] | F3D6 Hangul_NFD_Basis[4-7] | F3D6
Hangul_NFD_Basis[0-3] | 0442 Hangul_NFD_Basis[0-3] | 0442
NFD_Basis[20-21] | 0000 NFD_Basis[20-21] | 0000
NFD_Basis[16-19] | 1000 NFD_Basis[16-19] | 1000
NFD_Basis[12-15] | 6010 NFD_Basis[12-15] | 6010
NFD_Basis[8-11] | F3C0 NFD_Basis[8-11] | F3C0
NFD_Basis[4-7] | F3D6 NFD_Basis[4-7] | F3D6
NFD_Basis[0-3] | 0442 NFD_Basis[0-3] | 0442
CCC_Basis[4-6] | 0000 CCC_Basis[4-6] | 0000
CCC_Basis[0-3] | 2110 CCC_Basis[0-3] | 2110
CCC_NonZero | 111. CCC_NonZero | 111.
SeqIndex[0-3] | 0120 SeqIndex[0-3] | 0120
Misordered | ..1. Misordered | ..1.
FilteredRuns | 111. FilteredRuns | 111.
AdjustedIndex[0-3] | 1230 AdjustedIndex[0-3] | 1230
BitonicCompareStep<2,1>3x1_9x1+CMCompressed.SwapMarks | ..1. BitonicCompareStep<2,1>3x1_9x1+CMCompressed.SwapMarks | ..1.
BitonicCompareStep<2,1>3x1_9x1+CMCompressed.Debug | .... BitonicCompareStep<2,1>3x1_9x1+CMCompressed.Debug | ....
SwapBack1_9x1+CMCompressed.Sorted[i][8-9] | 0000 SwapBack1_9x1+CMCompressed.Sorted[i][8-9] | 0000
SwapBack1_9x1+CMCompressed.Sorted[i][4-7] | 1000 SwapBack1_9x1+CMCompressed.Sorted[i][4-7] | 1000
SwapBack1_9x1+CMCompressed.Sorted[i][0-3] | 1BA0 SwapBack1_9x1+CMCompressed.Sorted[i][0-3] | 1BA0
BitonicCompareStep<4,2>3x1_9x1+CMCompressed.MergeSwapMarks | ..1. BitonicCompareStep<4,2>3x1_9x1+CMCompressed.MergeSwapMarks | ..1.
BitonicCompareStep<4,2>3x1_9x1+CMCompressed.Debug1 | .... BitonicCompareStep<4,2>3x1_9x1+CMCompressed.Debug1 | ....
SwapBack1_21x1+CMCompressed.Sorted[i][20-21] | 0000 SwapBack1_21x1+CMCompressed.Sorted[i][20-21] | 0000
SwapBack1_21x1+CMCompressed.Sorted[i][16-19] | 1000 SwapBack1_21x1+CMCompressed.Sorted[i][16-19] | 1000
SwapBack1_21x1+CMCompressed.Sorted[i][12-15] | 6100 SwapBack1_21x1+CMCompressed.Sorted[i][12-15] | 6100
SwapBack1_21x1+CMCompressed.Sorted[i][8-11] | FC30 SwapBack1_21x1+CMCompressed.Sorted[i][8-11] | FC30
SwapBack1_21x1+CMCompressed.Sorted[i][4-7] | FD36 SwapBack1_21x1+CMCompressed.Sorted[i][4-7] | FD36
SwapBack1_21x1+CMCompressed.Sorted[i][0-3] | 0442 SwapBack1_21x1+CMCompressed.Sorted[i][0-3] | 0442
SwapBack2_9x1+CMCompressed.Merged[i]1[8-9] | 0000 SwapBack2_9x1+CMCompressed.Merged[i]1[8-9] | 0000
SwapBack2_9x1+CMCompressed.Merged[i]1[4-7] | 0010 SwapBack2_9x1+CMCompressed.Merged[i]1[4-7] | 0010
SwapBack2_9x1+CMCompressed.Merged[i]1[0-3] | AB10 SwapBack2_9x1+CMCompressed.Merged[i]1[0-3] | AB10
BitonicCompareStep<4,1>3x1_9x1+CMCompressed.MergeSwapMarks | .... BitonicCompareStep<4,1>3x1_9x1+CMCompressed.MergeSwapMarks | ....
BitonicCompareStep<4,1>3x1_9x1+CMCompressed.Debug | .... BitonicCompareStep<4,1>3x1_9x1+CMCompressed.Debug | ....
SwapBack2_21x1+CMCompressed.Merged[i]1[20-21] | 0000 SwapBack2_21x1+CMCompressed.Merged[i]1[20-21] | 0000
SwapBack2_21x1+CMCompressed.Merged[i]1[16-19] | 0010 SwapBack2_21x1+CMCompressed.Merged[i]1[16-19] | 0010
SwapBack2_21x1+CMCompressed.Merged[i]1[12-15] | 0160 SwapBack2_21x1+CMCompressed.Merged[i]1[12-15] | 0160
SwapBack2_21x1+CMCompressed.Merged[i]1[8-11] | 3CF0 SwapBack2_21x1+CMCompressed.Merged[i]1[8-11] | 3CF0
SwapBack2_21x1+CMCompressed.Merged[i]1[4-7] | 3DF6 SwapBack2_21x1+CMCompressed.Merged[i]1[4-7] | 3DF6
SwapBack2_21x1+CMCompressed.Merged[i]1[0-3] | 4402 SwapBack2_21x1+CMCompressed.Merged[i]1[0-3] | 4402
SwapBack1_9x1+CMCompressed.Merged[i]1[8-9] | 0000 SwapBack1_9x1+CMCompressed.Merged[i]1[8-9] | 0000
SwapBack1_9x1+CMCompressed.Merged[i]1[4-7] | 0010 SwapBack1_9x1+CMCompressed.Merged[i]1[4-7] | 0010
SwapBack1_9x1+CMCompressed.Merged[i]1[0-3] | AB10 SwapBack1_9x1+CMCompressed.Merged[i]1[0-3] | AB10
BitonicCompareStep<4,2>3x1_9x1+CMCompressed.SwapMarks | .... BitonicCompareStep<4,2>3x1_9x1+CMCompressed.SwapMarks | ....
BitonicCompareStep<4,2>3x1_9x1+CMCompressed.Debug2 | .... BitonicCompareStep<4,2>3x1_9x1+CMCompressed.Debug2 | ....
SwapBack1_21x1+CMCompressed.Merged[i]1[20-21] | 0000 SwapBack1_21x1+CMCompressed.Merged[i]1[20-21] | 0000
SwapBack1_21x1+CMCompressed.Merged[i]1[16-19] | 0010 SwapBack1_21x1+CMCompressed.Merged[i]1[16-19] | 0010
SwapBack1_21x1+CMCompressed.Merged[i]1[12-15] | 0160 SwapBack1_21x1+CMCompressed.Merged[i]1[12-15] | 0160
SwapBack1_21x1+CMCompressed.Merged[i]1[8-11] | 3CF0 SwapBack1_21x1+CMCompressed.Merged[i]1[8-11] | 3CF0
SwapBack1_21x1+CMCompressed.Merged[i]1[4-7] | 3DF6 SwapBack1_21x1+CMCompressed.Merged[i]1[4-7] | 3DF6
SwapBack1_21x1+CMCompressed.Merged[i]1[0-3] | 4402 SwapBack1_21x1+CMCompressed.Merged[i]1[0-3] | 4402
SwapBack2_9x1+CMCompressed.Sorted[i][8-9] | 0000 SwapBack2_9x1+CMCompressed.Sorted[i][8-9] | 0000
SwapBack2_9x1+CMCompressed.Sorted[i][4-7] | 0010 SwapBack2_9x1+CMCompressed.Sorted[i][4-7] | 0010
SwapBack2_9x1+CMCompressed.Sorted[i][0-3] | AB10 SwapBack2_9x1+CMCompressed.Sorted[i][0-3] | AB10
BitonicCompareStep<8,4>3x1_9x1+CMCompressed.MergeSwapMarks | .... BitonicCompareStep<8,4>3x1_9x1+CMCompressed.MergeSwapMarks | ....
BitonicCompareStep<8,4>3x1_9x1+CMCompressed.Debug | .... BitonicCompareStep<8,4>3x1_9x1+CMCompressed.Debug | ....
SwapBack2_21x1+CMCompressed.Sorted[i][20-21] | 0000 SwapBack2_21x1+CMCompressed.Sorted[i][20-21] | 0000
SwapBack2_21x1+CMCompressed.Sorted[i][16-19] | 0010 SwapBack2_21x1+CMCompressed.Sorted[i][16-19] | 0010
SwapBack2_21x1+CMCompressed.Sorted[i][12-15] | 0160 SwapBack2_21x1+CMCompressed.Sorted[i][12-15] | 0160
SwapBack2_21x1+CMCompressed.Sorted[i][8-11] | 3CF0 SwapBack2_21x1+CMCompressed.Sorted[i][8-11] | 3CF0
SwapBack2_21x1+CMCompressed.Sorted[i][4-7] | 3DF6 SwapBack2_21x1+CMCompressed.Sorted[i][4-7] | 3DF6
SwapBack2_21x1+CMCompressed.Sorted[i][0-3] | 4402 SwapBack2_21x1+CMCompressed.Sorted[i][0-3] | 4402
SwapBack4_9x1+CMCompressed.Merged[i][8-9] | 0000 SwapBack4_9x1+CMCompressed.Merged[i][8-9] | 0000
SwapBack4_9x1+CMCompressed.Merged[i][4-7] | 0010 SwapBack4_9x1+CMCompressed.Merged[i][4-7] | 0010
SwapBack4_9x1+CMCompressed.Merged[i][0-3] | AB10 SwapBack4_9x1+CMCompressed.Merged[i][0-3] | AB10
BitonicCompareStep<8,2>3x1_9x1+CMCompressed.MergeSwapMarks | .... BitonicCompareStep<8,2>3x1_9x1+CMCompressed.MergeSwapMarks | ....
BitonicCompareStep<8,2>3x1_9x1+CMCompressed.Debug | .... BitonicCompareStep<8,2>3x1_9x1+CMCompressed.Debug | ....
SwapBack4_21x1+CMCompressed.Merged[i][20-21] | 0000 SwapBack4_21x1+CMCompressed.Merged[i][20-21] | 0000
SwapBack4_21x1+CMCompressed.Merged[i][16-19] | 0010 SwapBack4_21x1+CMCompressed.Merged[i][16-19] | 0010
SwapBack4_21x1+CMCompressed.Merged[i][12-15] | 0160 SwapBack4_21x1+CMCompressed.Merged[i][12-15] | 0160
SwapBack4_21x1+CMCompressed.Merged[i][8-11] | 3CF0 SwapBack4_21x1+CMCompressed.Merged[i][8-11] | 3CF0
SwapBack4_21x1+CMCompressed.Merged[i][4-7] | 3DF6 SwapBack4_21x1+CMCompressed.Merged[i][4-7] | 3DF6
SwapBack4_21x1+CMCompressed.Merged[i][0-3] | 4402 SwapBack4_21x1+CMCompressed.Merged[i][0-3] | 4402
SwapBack2_9x1+CMCompressed.Merged[i]2[8-9] | 0000 SwapBack2_9x1+CMCompressed.Merged[i]2[8-9] | 0000
SwapBack2_9x1+CMCompressed.Merged[i]2[4-7] | 0010 SwapBack2_9x1+CMCompressed.Merged[i]2[4-7] | 0010
SwapBack2_9x1+CMCompressed.Merged[i]2[0-3] | AB10 SwapBack2_9x1+CMCompressed.Merged[i]2[0-3] | AB10
BitonicCompareStep<8,1>3x1_9x1+CMCompressed.MergeSwapMarks | .... BitonicCompareStep<8,1>3x1_9x1+CMCompressed.MergeSwapMarks | ....
BitonicCompareStep<8,1>3x1_9x1+CMCompressed.Debug | .... BitonicCompareStep<8,1>3x1_9x1+CMCompressed.Debug | ....
SwapBack2_21x1+CMCompressed.Merged[i]2[20-21] | 0000 SwapBack2_21x1+CMCompressed.Merged[i]2[20-21] | 0000
SwapBack2_21x1+CMCompressed.Merged[i]2[16-19] | 0010 SwapBack2_21x1+CMCompressed.Merged[i]2[16-19] | 0010
SwapBack2_21x1+CMCompressed.Merged[i]2[12-15] | 0160 SwapBack2_21x1+CMCompressed.Merged[i]2[12-15] | 0160
SwapBack2_21x1+CMCompressed.Merged[i]2[8-11] | 3CF0 SwapBack2_21x1+CMCompressed.Merged[i]2[8-11] | 3CF0
SwapBack2_21x1+CMCompressed.Merged[i]2[4-7] | 3DF6 SwapBack2_21x1+CMCompressed.Merged[i]2[4-7] | 3DF6
SwapBack2_21x1+CMCompressed.Merged[i]2[0-3] | 4402 SwapBack2_21x1+CMCompressed.Merged[i]2[0-3] | 4402
> SwapBack1_9x1+CMCompressed.Merged[i]2[8-9] | 0000
> SwapBack1_9x1+CMCompressed.Merged[i]2[4-7] | 0010
> SwapBack1_9x1+CMCompressed.Merged[i]2[0-3] | AB10
> SortResults[0][8-9] | 0000
> SortResults[0][4-7] | 0010
> SortResults[0][0-3] | AB10
SwapBack1_21x1+CMCompressed.Merged[i]2[20-21] | 0000 SwapBack1_21x1+CMCompressed.Merged[i]2[20-21] | 0000
SwapBack1_21x1+CMCompressed.Merged[i]2[16-19] | 0010 SwapBack1_21x1+CMCompressed.Merged[i]2[16-19] | 0010
SwapBack1_21x1+CMCompressed.Merged[i]2[12-15] | 0160 SwapBack1_21x1+CMCompressed.Merged[i]2[12-15] | 0160
SwapBack1_21x1+CMCompressed.Merged[i]2[8-11] | 3CF0 SwapBack1_21x1+CMCompressed.Merged[i]2[8-11] | 3CF0
SwapBack1_21x1+CMCompressed.Merged[i]2[4-7] | 3DF6 SwapBack1_21x1+CMCompressed.Merged[i]2[4-7] | 3DF6
SwapBack1_21x1+CMCompressed.Merged[i]2[0-3] | 4402 SwapBack1_21x1+CMCompressed.Merged[i]2[0-3] | 4402
SortResults[1][20-21] | 0000 SortResults[1][20-21] | 0000
SortResults[1][16-19] | 0010 SortResults[1][16-19] | 0010
SortResults[1][12-15] | 0160 SortResults[1][12-15] | 0160
SortResults[1][8-11] | 3CF0 SortResults[1][8-11] | 3CF0
SortResults[1][4-7] | 3DF6 SortResults[1][4-7] | 3DF6
SortResults[1][0-3] | 4402 SortResults[1][0-3] | 4402
TransformedBasis[4-7] | CBEB9F9BB6 TransformedBasis[4-7] | CBEB9F9BB6
TransformedBasis[0-3] | C413406F02 TransformedBasis[0-3] | C413406F02
SwapBack1_9x1+CMCompressed.Merged[i]2[8-9] | 0000 |
SwapBack1_9x1+CMCompressed.Merged[i]2[4-7] | 0010 | NonModifiedMask | 1..........1
SwapBack1_9x1+CMCompressed.Merged[i]2[0-3] | AB10 | NonModified | .H
SortResults[0][8-9] | 0000 | NonModifiedPlacementMask | 1..........1
SortResults[0][4-7] | 0010 <
SortResults[0][0-3] | AB10 <
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information