From a5b6bda94102a8af8044fec42d3fbaeb6d92c1c6 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Wed, 17 Mar 2021 10:51:38 +0100 Subject: [PATCH] add support for element flags to shaders Commit 9afa9b86b6b10701b977619f75211c812aa329ca added Rust support for encoding flags into elements. This change adds support to shaders by introducing variant tag structs: struct VariantTag { uint tag; uint flags; } and returning them from Variant_tag functions. It also adds a flags argument to write functions for enum variants that include TagFlags. No functionality changes. Updates #70 Signed-off-by: Elias Naur --- piet-gpu-derive/src/glsl.rs | 60 ++++++++++++++++++++++++++++--- piet-gpu/shader/annotated.h | 10 ++++-- piet-gpu/shader/backdrop.comp | 2 +- piet-gpu/shader/backdrop.spv | Bin 11096 -> 11336 bytes piet-gpu/shader/binning.comp | 2 +- piet-gpu/shader/binning.spv | Bin 15776 -> 16048 bytes piet-gpu/shader/coarse.comp | 6 ++-- piet-gpu/shader/coarse.spv | Bin 61444 -> 61724 bytes piet-gpu/shader/elements.comp | 4 +-- piet-gpu/shader/elements.spv | Bin 69988 -> 70244 bytes piet-gpu/shader/kernel4.comp | 2 +- piet-gpu/shader/kernel4.spv | Bin 46312 -> 46560 bytes piet-gpu/shader/path_coarse.comp | 2 +- piet-gpu/shader/path_coarse.spv | Bin 42252 -> 42488 bytes piet-gpu/shader/pathseg.h | 10 ++++-- piet-gpu/shader/ptcl.h | 10 ++++-- piet-gpu/shader/scene.h | 10 ++++-- piet-gpu/shader/tile_alloc.comp | 2 +- piet-gpu/shader/tile_alloc.spv | Bin 14740 -> 14996 bytes 19 files changed, 98 insertions(+), 22 deletions(-) diff --git a/piet-gpu-derive/src/glsl.rs b/piet-gpu-derive/src/glsl.rs index 96cb3c3..d9f08f3 100644 --- a/piet-gpu-derive/src/glsl.rs +++ b/piet-gpu-derive/src/glsl.rs @@ -29,6 +29,7 @@ pub fn gen_glsl(module: &LayoutModule) -> String { (size, LayoutTypeDef::Enum(en)) => { gen_enum_def(&mut r, name, en); gen_item_def(&mut r, name, size.size); + gen_tag_def(&mut r, name); } } } @@ -92,6 +93,13 @@ fn gen_item_def(r: &mut String, name: &str, size: usize) { writeln!(r, "}}\n").unwrap(); } +fn gen_tag_def(r: &mut String, name: &str) { + writeln!(r, "struct {}Tag {{", name).unwrap(); + writeln!(r, " uint tag;").unwrap(); + writeln!(r, " uint flags;").unwrap(); + writeln!(r, "}};\n").unwrap(); +} + fn gen_struct_read( r: &mut String, bufname: &str, @@ -143,12 +151,13 @@ fn gen_enum_read( variants: &[(String, Vec<(usize, LayoutType)>)], ) { if is_mem { - writeln!(r, "uint {}_tag(Alloc a, {}Ref ref) {{", name, name).unwrap(); - writeln!(r, " return read_mem(a, ref.offset >> 2);").unwrap(); + writeln!(r, "{}Tag {}_tag(Alloc a, {}Ref ref) {{", name, name, name).unwrap(); + writeln!(r, " uint tag_and_flags = read_mem(a, ref.offset >> 2);").unwrap(); } else { - writeln!(r, "uint {}_tag({}Ref ref) {{", name, name).unwrap(); - writeln!(r, " return {}[ref.offset >> 2];", bufname).unwrap(); + writeln!(r, "{}Tag {}_tag({}Ref ref) {{", name, name, name).unwrap(); + writeln!(r, " uint tag_and_flags = {}[ref.offset >> 2];", bufname).unwrap(); } + writeln!(r, " return {}Tag(tag_and_flags & 0xffff, tag_and_flags >> 16);", name).unwrap(); writeln!(r, "}}\n").unwrap(); for (var_name, payload) in variants { let payload_ix = if payload.len() == 1 { @@ -555,6 +564,49 @@ fn gen_enum_write( } writeln!(r, "}}\n").unwrap(); } + } else if payload.len() == 2 && matches!(payload[0].1.ty, GpuType::Scalar(GpuScalar::TagFlags)) { + if let GpuType::InlineStruct(structname) = &payload[1].1.ty { + if is_mem { + writeln!( + r, + "void {}_{}_write(Alloc a, {}Ref ref, uint flags, {} s) {{", + name, var_name, name, structname + ) + .unwrap(); + writeln!( + r, + " write_mem(a, ref.offset >> 2, (flags << 16) | {}_{});", + name, var_name + ) + .unwrap(); + writeln!( + r, + " {}_write(a, {}Ref(ref.offset + {}), s);", + structname, structname, payload[0].0 + ) + .unwrap(); + } else { + writeln!( + r, + "void {}_{}_write({}Ref ref, uint flags, {} s) {{", + name, var_name, name, structname + ) + .unwrap(); + writeln!( + r, + " {}[ref.offset >> 2] = (flags << 16) | {}_{};", + bufname, name, var_name + ) + .unwrap(); + writeln!( + r, + " {}_write({}Ref(ref.offset + {}), s);", + structname, structname, payload[0].0 + ) + .unwrap(); + } + writeln!(r, "}}\n").unwrap(); + } } // TODO: support for variants that aren't one struct. } diff --git a/piet-gpu/shader/annotated.h b/piet-gpu/shader/annotated.h index 40ded79..63d4bdb 100644 --- a/piet-gpu/shader/annotated.h +++ b/piet-gpu/shader/annotated.h @@ -79,6 +79,11 @@ AnnotatedRef Annotated_index(AnnotatedRef ref, uint index) { return AnnotatedRef(ref.offset + index * Annotated_size); } +struct AnnotatedTag { + uint tag; + uint flags; +}; + AnnoFill AnnoFill_read(Alloc a, AnnoFillRef ref) { uint ix = ref.offset >> 2; uint raw0 = read_mem(a, ix + 0); @@ -170,8 +175,9 @@ void AnnoClip_write(Alloc a, AnnoClipRef ref, AnnoClip s) { write_mem(a, ix + 3, floatBitsToUint(s.bbox.w)); } -uint Annotated_tag(Alloc a, AnnotatedRef ref) { - return read_mem(a, ref.offset >> 2); +AnnotatedTag Annotated_tag(Alloc a, AnnotatedRef ref) { + uint tag_and_flags = read_mem(a, ref.offset >> 2); + return AnnotatedTag(tag_and_flags & 0xffff, tag_and_flags >> 16); } AnnoStroke Annotated_Stroke_read(Alloc a, AnnotatedRef ref) { diff --git a/piet-gpu/shader/backdrop.comp b/piet-gpu/shader/backdrop.comp index 49de925..03212c9 100644 --- a/piet-gpu/shader/backdrop.comp +++ b/piet-gpu/shader/backdrop.comp @@ -46,7 +46,7 @@ void main() { // Work assignment: 1 thread : 1 path element uint row_count = 0; if (element_ix < conf.n_elements) { - uint tag = Annotated_tag(conf.anno_alloc, ref); + uint tag = Annotated_tag(conf.anno_alloc, ref).tag; switch (tag) { case Annotated_Fill: case Annotated_FillImage: diff --git a/piet-gpu/shader/backdrop.spv b/piet-gpu/shader/backdrop.spv index f33a50b085ee8ea36b0bf768ed16bd3ae564f6d5..932192a922c74b997d867b5afdd81dbabe4a389c 100644 GIT binary patch literal 11336 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 K_kN1KpT7rB!oqR@ literal 11096 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 literal 15776 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 z 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 R_uIdM$5M=GEbVc3`X7bTmdOAB diff --git a/piet-gpu/shader/coarse.comp b/piet-gpu/shader/coarse.comp index 069367f..332fb48 100644 --- a/piet-gpu/shader/coarse.comp +++ b/piet-gpu/shader/coarse.comp @@ -196,7 +196,7 @@ void main() { if (th_ix + rd_ix < wr_ix) { element_ix = sh_elements[th_ix]; ref = AnnotatedRef(conf.anno_alloc.offset + element_ix * Annotated_size); - tag = Annotated_tag(conf.anno_alloc, ref); + tag = Annotated_tag(conf.anno_alloc, ref).tag; } // Bounding box of element in pixel coordinates. @@ -256,7 +256,7 @@ void main() { } } AnnotatedRef ref = AnnotatedRef(conf.anno_alloc.offset + sh_elements[el_ix] * Annotated_size); - uint tag = Annotated_tag(conf.anno_alloc, ref); + uint tag = Annotated_tag(conf.anno_alloc, ref).tag; uint seq_ix = ix - (el_ix > 0 ? sh_tile_count[el_ix - 1] : 0); uint width = sh_tile_width[el_ix]; uint x = sh_tile_x0[el_ix] + seq_ix % width; @@ -305,7 +305,7 @@ void main() { // If that turns out to be expensive, maybe we can pack it into // shared memory (or perhaps just the tag). ref = AnnotatedRef(conf.anno_alloc.offset + element_ix * Annotated_size); - tag = Annotated_tag(conf.anno_alloc, ref); + tag = Annotated_tag(conf.anno_alloc, ref).tag; if (clip_zero_depth == 0) { switch (tag) { diff --git a/piet-gpu/shader/coarse.spv b/piet-gpu/shader/coarse.spv index 7d0dcce2473e9f1fe5692d82b252cd8ff5f514b6..a7637c651b1304f370d3ad9281ed0aeba641c8a7 100644 GIT binary patch literal 61724 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 sRfq>mE|ee(*f`e;+3fg8%>k diff --git a/piet-gpu/shader/elements.comp b/piet-gpu/shader/elements.comp index eb18571..9dc714e 100644 --- a/piet-gpu/shader/elements.comp +++ b/piet-gpu/shader/elements.comp @@ -99,7 +99,7 @@ State combine_state(State a, State b) { State map_element(ElementRef ref) { // TODO: it would *probably* be more efficient to make the memory read patterns less // divergent, though it would be more wasted memory. - uint tag = Element_tag(ref); + uint tag = Element_tag(ref).tag; State c; c.bbox = vec4(0.0, 0.0, 0.0, 0.0); c.mat = vec4(1.0, 0.0, 0.0, 1.0); @@ -291,7 +291,7 @@ void main() { // gains to be had from stashing in shared memory or possibly // registers (though register pressure is an issue). ElementRef this_ref = Element_index(ref, i); - uint tag = Element_tag(this_ref); + uint tag = Element_tag(this_ref).tag; switch (tag) { case Element_FillLine: case Element_StrokeLine: diff --git a/piet-gpu/shader/elements.spv b/piet-gpu/shader/elements.spv index 2c61b2ee17a850d21364751b8eabe1eaafb45519..51d3e4c2a215a472e0f1e53f9d6159aaff69d0c3 100644 GIT binary patch literal 70244 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 AoB#j- literal 69988 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 Ym)QsdY)<_bH5~Xqu)OuzL-+RZ2Wk}J-T(jq diff --git a/piet-gpu/shader/kernel4.comp b/piet-gpu/shader/kernel4.comp index 922ae83..82eb89b 100644 --- a/piet-gpu/shader/kernel4.comp +++ b/piet-gpu/shader/kernel4.comp @@ -161,7 +161,7 @@ void main() { } while (true) { - uint tag = Cmd_tag(cmd_alloc, cmd_ref); + uint tag = Cmd_tag(cmd_alloc, cmd_ref).tag; if (tag == Cmd_End) { break; } diff --git a/piet-gpu/shader/kernel4.spv b/piet-gpu/shader/kernel4.spv index 7768659caf5e589e966addaf684ace332c9b876e..ebd48114e7562f22ba646b181c3197ab873e6d6d 100644 GIT binary patch literal 46560 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 JPQ{+n{|Cy0R(=2g literal 46312 zcmb822Y_8w*|iVMB!nKCbR-}hLhmiq(7S+ALdql=nPfs5Rp}sI1f>W_Q;-f)6)-eW zM2Z4}AQlKHNEIm-{GaFEvnG3v-}mcxbhFo5@4Mf<-(Ai<_sk^en0@&6$Wna`&XEy^}|DPaM;AMEAsT)!fymY{s zK?c-GjN!YqhB2{s;SLPwW~orh9VN=&9Y)yZYkPe%%vC_e>j8It(CEIZpW?#;{dSPw!~zfn*~0>K!|F zO4rm1WsYhd_{6TmM~u{OQrzrcCQ0 zV!I!8ua=40zSUfxu_L>Cy2jXkK(!!zLSM)2KAp>1eauxY2A|qHZS?pN6S^j>JZ0+S zX``pEv6X{eW7^vFXdUZk@JoO4Md7pZoV!{Ee)#0>sa^kToOa^2U9u5tseZ9Ks-@x6 zNA{4xT-Ea6$z3DI{I6lL8*>PCIlkrK<@i>CPwD9%{h!CzQLSh!ig8!!7pJpY**L`- ztp?v_!kE3MPVPOlYp<@c(AIjWd(9fdfNChb&lfz9|EYORW!XkdPW!g*dX692Gj_z` z-D9SXpXKk~pFD2V$PuG^dwM53&IPJ<(E4H%XyllGU(9-S``j3AYmsS6jE>3!+RnS9 zS{v+e+(+wyX|#QJPfsgD_nVs6to%Bw4dJz4D>u1UGdFc}8#QwDp<^cZPSVG@Q2+Pb z23H=KI_`hWtR7^)yf&tN^4bL4&TC+``K-7*P8d0^wS4BL?lmj7fz>d0J%*OAcE_yl z)y#1i+P~*Gpyh9lts5n^{pssnaaMl|R@=hM{{E}PlSQ4qYq~XYlKVE`=+Bbu8*$v&J&8+5yg3`h2yUySi61clBoO-i>xaFXQ~jocelXbVW`(5hpqA z3~uK%sM@WFzjtp>_n0JxZf@GWX5}_VwFf+7>T83hzc#OtJ(I?_`&*>i2mWvV|6L+| z;b&#jK6iWB2gUW;o4TFPz-r%iU)xPA5^-GWUbFHTQ0)(AT(xg|{Ayma#=k&yAbghJ ze;oL%zKi+)qA@9s_WDMn0DM#yADsj@wyHZ^zw>WoY#+_nI}nd8?!0^gUwg$Z`L_ z4>4l2yL2BONt?{cQQ&re^H;~!vHV>4kBRg}Y|ryoikQdt#T;CnT*PcG(ElN@V?D8m zdr}ei^g3?eZSVgW_p3$R)B55rP@Pl8?Yj&8_rV?WSw-x#`(h8S&aY$FH;Vs0DD8~< z^&;+heR1cnE~?|UAFTfSu*STghZUP3H@g&!B!Tsm)F~azxjdaeRx3)`2#$>j-Ztcnz*@rLN=u|5KYa z*nanxn`xi3ehavL*5{~hSNE&Sh|xUJj2Ja-tY5h7v$Og>Hoo(DyMzy_?x!BzJ7Lna zsa;#~w7l~4vFmKw-S>T`qxvECBe<#f{Ch9Bd{$Mv4{d7k%&zvZTJMy-hHp){bvH%n zs2)P&GYvejdK5f%a_@v$9__LH7=4OPT>3puJ#FG7o{n3deL4KB_G{-puzDKa=QVxo zdZbGG&gv;@KS!zH^H#s69?Si&wLMp!K5d;%i*Ev+g_eOSUSoRqI!u`3ex5e%{5z`` zz@xbzcTX7Cvb_Y){J#qJUT?pDqAvH*oA6z`CiG5b9{r4$d+|+kMEs)9R_k4pC%c{S z9?o|7<_b_dvLxPxiHTKU-(D zPCwpJZ3yo^qV2mWc=E`@*P>~w?H2ufJF8(0zIEH*uUswv?Hcys4ZdUBf1UX6+OY55 zk9Smi!Tk(&{tgCboTI?yIJ^3_>#W8#cz4^sZ=5|1`@{yH)b{Ti=ahzhT0h=V9Rbfc zPXuS2r-I9Ip5CurXLV+SpWXKF8|S$V`*{uijkbT^I4^A2FK+Nl+WzZi{x5IXuk6P= zs_(#)*S+B6H3MAc^-#Zdoz)`^{%G63FR#ZM_Q(72j_OHx`h6apeqREY{r&a~k}D2EVAm zuW0bA`tgqH8hF;>dT_Z8H}&)FtZr%W+uHtp>wibXepiFv)AsMXPu$zE-{0Uf+Wzb2 zKJie){z!vA+V)>B{*N{6k2m-eZU6P-|BHtGnSQ*Z`W3vr?*_HrvybZ;u}kmhkv%(3 zoK7{hyLaM_+qPqMRR6#?pR1qti^F?s9_Y&RId6l{*N+dZ7KBe3-+m~Y^^UfqS`6I> zGCyC3fJgEm*6x2`wKBZ*d^M$O91n@DujGDyt!b<-pF{Xe2AAVlufaEH@D2O%j%pKl z`rjHn;m8p_^0Z>_0-rK<2-pBba2zcY=6A z`{x?+Gg^EkPYLaI=fX$T_@NUiuG$m;Q_B-+sN^YQH$Voa+_(@s4Uecy~R{&A`)ma5Cqe zz++iKA4lc8>F3MVdXDymmvIk*&w6(4ta{+BeZV32+1Q^Av2XY5oqXu<$-UDixnqqx z34N>LXEAcGJZI{27}_?y6UTOsYd??5y(W(6>gk%$HE}9q@_AI9k0!hFIkI-oO|3QC z91Zq+K*s8v9*0)0-zg1#YJ;Cv$7p|N>#WX#A93V}Y26d2(!-$E&;3~6;XS>h{_V!( zcrI%BJGKGUCE!s#oXQbXCh_&ArCnNR?HmSFm!Y-35%T4%t#wx4Mk~jCc|YD!T?x;A zz5(plGxL2KJYnP%k0HFHdJ)chs+R2~a2fOE27edMH!prr)ZVl2HSB-s$2+PI;qCL@ zQGE&?(>m+?Oq5OYKiwPWLC?K$UT`^3Z^33l7pEZ__Y7cng><^yxe!8=oW?L7tHNU(s?ANxlI-J;Hx$G(0;t5S_huJ zvqL}I9Mx{{cK=gaZ}>d(*+;wg^X;tm?8gUG`@q|++Pl%Y+z%~%bvOJEgL~&G`k{d_yCpTk?Z)_eMihW)7q z|7AbUb0oao*MRChaC_c-JJeqD_xt(tJ+Q$)YVc3`ah^Tl$z^dq@X9^7WIx_ftqO17 zr+FtM_SvEy$CicfaPHl2pc5KY@w3bJ`z2uOcMPnf`PsibrS$W2U(L_h;p~k!sr|e+ zuJ5Flqj-f6Y10<>cUtC#FIn4t1}gpK`nThCw4RX`t9^amvF#ER$Cu|C$Ks`y=a{C} z%tOC2kF>R4+s;$O!?mRiE;Mc*Ep6dKb3SeBcoUClZ)r;vn)9aLvW4bziQ4B{T4&$$ zM`Go9L?18bU9F>qIbYy%9_7xXdAkn&4v}-`IOOh+(qFE>b7E}y;RZq-~!0N`dy)pgWjKtgmY)rL9 ziMb`U?VX2Z@ES&4#??W^CKG`mN}1hE?VX?+BeaLQp!HQ1wW*rT@KG& zr0sXmlB1eA`m?pCB@Jy>IP{eMcWKeySI z{V{4a+t~hz8mrm+&R$y8EV_A%b%^eb8Q~aQ5&nB$AIcrU^Uz6Ywpg$ zZzx{Ic!k=S^HXA<37(CzDw)nl{TfBz*QxbYTN>LN)Q;Et)0;JxtLy(~YR9f^)0)3k zYuewgv2C(0?}6<*{C%)j#`Z6;^SMerwgEWDwm8`S(st*X+t;38$3B!I->>GbkNohO zZ&Y7x@#l%IZVy=@7B0nn}4Ep z(qZ}=WH1`&zW~^=xQ~n{_q}F0zJ=j~YX4=y=I1#}ytU94tGVlPAlys4{Gb*;Zp-k~ z;P-8K%KG7#wEed<-&eryQzgguD!~5K`d}& zH?7d;*8x{ciQhbE7hkmau*91eu9mVmPhmU5ookk<-^J3m*3xso3qJZeue(xvsk!cQ zpVz&#?^)yc9|(6Hyf0Qu^RnZN|9NoFyZ7Gfz%#(!d+q;vxOu8)zHb7% zM^h5#e)M7Z%AI=;@ydrz+--G$pJB_x)5gB$W3Z0bzU1>m)Vv?q_h7JntEZ0@5d4fZ z7uUpRc`wK2y}{>s^YNbPJ$M89cCL_G7sIYTM)Ce)44e00w3Zv&_n##{uHfpv`;6V% zcc0;h!+rM|?q}9n1-}#SyUp0GeZN_9-))9Fp34fZ?mNxctuJqI-)Y9~`rS})?^jP3 zTtDA!#^3&YzZq^mFBja;pLYwc|9b`3|1SkMj_)@U&;CCxxX(Ji=ZxL^z3(@}t$oK? za^G==+rRHP!;R-V&T!}3cbwtYzTXVj?mNzKKTmzf8U6%z-*bjr`<}DpzUK_Lz3)21 z{XF(vXSn0_U1zxS<-5*s=f`)Q;f~LDo#A)Eeb*Uo?YqvB`>wO(zUvJ4^WXQK;f}|5 zo#Bqhcb(z(@4L=$`}bXExV7&(!@V#1t~2}@?7r&^_xa6to#ECq8r=7tvA=@dcb(zZ zzV9r#?>kHG`_6FhA-?krH(%d(hFkl-v*f<-4EK4*_nqOk_g!bW^X0qFaOcZ+o#D=x z?>fV+hc>wHI%9Xg`MxvU=d0ZcZvVdHjNSfy#~JSa^BrfnweL5>jqf|oaG%$F#~E&X z-*1K+-}js0*1q2?x$if_ZSOnIaBJUjhHLj7XSlWRI7{w3&Tz-;d(Loc-*blheCd16 zaN|EwaL4a^&e*Me&slQcbB4P=eb*UoJl}JM8_)Ng;m^Q*&lzre-*bjr`<^r0c)sfl zH=gf0!>xVS8U6s=_nY#q_|$rvdMsz`E$W$+&H2nCd^HYD{d#=ngO3NR`Mu*Ko+-Wr z_WB$C+PW!fein-V$rFKC&3=4to(T4t#?R68(+gMMie4SdG_cPjei!q5OZ=vzX*-En zj_+`=ZPgS12(a-TW7-`FS3j<9cNEyR>RXV9pVeyd|1wxD{TvHc`wGP|`uuYOC1dni z$+kWZomkuUtou5t))-D}jL!MVXva~^&;I55iG2>RKe5jM_PH@D<@fQgf>)uot$y0| z^Vve1b71__!D_}&PG`W?_o&*xM}H<*&GtT9$TNrMfPJ1T=kRNA_4u3%_B&Czj$cPp zkI(tw=30LPO+9n_O|Z{a>RF!)z{b+H2RZqj{z9;0(B_zZ{!ueO?H7a9Cc%9!{1#YE zU!RTSVxNo5OYAdIu+Klim)Ce>*4lZ$0zMD5KH6-18MV6DXCvEw!d|}$?4Gy&kg#WVSU}M}uuAZ~+fz^D5^=!$nrWniE;F$;>5lKZ0vGR+zD4t?7P5f#&$ju z$NH~~(ERTP+mCtbZy%212h?7UL!WynYK}vke0~VdoOsW<7e0Yf=6oMq{S@ZKd&!T$ zYWGvjXHV)Gl-(%WjJ-4U0~Gb-{2;hFpAVs_A48iBi2X2FEo~kFH|OccXzIz~QLs7W zocsjr_Yd`)lb?cZr!9Rw23Ggn_#UV^^85ujYvpssFX2y9)NL>K-G=Qw zN3OMX+CKxfedgp@u$rG^Ih$&>&)M`G$)BS(p0#K7dFmG^UfO?M+pXPmzEArVSU=l| z9f$Xb-++&%*yl^sa&6PG{T6&$ZF`wo?!Co*_dD>>)V9%P`xmLzljHBfYS*zYo{v9( z)!fgXi&w#3j#1ky6g9^vHkXW9J#k+H8`l``P<#EIpRlOQ9pCHJuJIqKUFSbhvmDhM z)cn6y^Qc_C3Gx2&XKLr;E$TU`-==mP#>rg056)b@2bO29J^*K~{sNXeS3`;QSMWvD zw$bKXy-Tew{*XHN;g7)fYwg;8Lj5<2m-F%W+HRfs_y^b+xmW!Ytd{$*{9}r-j4e*v ze}Qf58FwGg#-w}-S9ff3Os&2hhwZJ?es*lO&pz&etIecYa#M5c$<1-(o-zQNb5VZg z4@6VYq{9( z*1o^Y=jj4)KTq}1rjOsZ)twK=x-i)I+WhV5NfrIab>V$%;(7} zU^PEed}i|9+NyAM`*jbm1~yJU&-GayuI_l{Yk<{kn|4FNY3Eqv`X%SJz|Md8+Fw?QR>(xAM)`#n({?$6p24G`pn}@rSTFtC2= z^Kb@?vlZApwx(#Ghr6%(*0sI@*sj*nR8If{f|89u8NxeJ8ct_TF#o-`e(mmh1r5C;Q&dqaESu z`A)hMSk3e6=bwBKWiE>GtP^inu=mLFJLPU@>W*g@YWc?W@AJ>@;K!-eweL)=Cf6F`Py!sx!o6RjNCK!1FPkpA>WH)EMtqaj$Z(q$4ufI&vpMI zn)>mKU48&q&3EJJ^FX+LCeA@%_k()k91K=>?-^$V*jVa0Lx+HKhP0PwXn(l&^f?l2 zpW&lw?id~*{%E+*i|YE!KpO*Am%9#K;MUyN&!A)BY8EfY;8cwIUeparMf=m z)eTk;{}R}-pIqmCC|Do$%vTTCarm>(w3`4|PrHd=+p6!uS)D;&yfhazCFp#C8<;IBMHyv+rrt>bCd3_hqo3d)kfx%gy^P zY{!E2p9$9A?@-6V)%E`hwOoJi6DNT6FYgm4!qxRZo?7mE6o00A68L^<`!$w!{f?&A zmbj;Yja%L?PKB%Me=@Z^_lvKBys zo;j!A0jteqPO?|jY@fa2x|ZkE?_tLCoPG~m&gr#axi-(~_28V->%el)=`d_JfKR5j zjW+wfhFabBp3|GaIj1**<>u``(XXcb9y^mUH{vt zhxhJ$G?pEZ#k}Po715H}V5C^*tEhc=!*&wo^AB z-z(k+_Fawr-V2tC@2A$^xqJ@4AA$X|^7?4g=T2&M@eJym{|CVC32V>)L(~sbyjb@$N5N`2|MCYZ#xk}zZGQr`ZTL@X?%X^;?8o5lUv+(Ep#2Q2o;Htz zjbWQ7u>Txve(L&ok9Y#Co_oZTU^R=EXQ=#~ehNJ?y+=F^_a32cOz#oDP^-D~@Jn#n z<{7yAK|O7r1*_+*KL<9Bdh+=dxE*I;>;CjS+7W_ zH+*lCcz?ilDg3mm{SNdMxSGE!VZ7gi)#CpuSpV>u@Jrws&uefs+vi=?>u}p?^F7m_ zsJ(nv*Y-z>nz@Rdo7Q_I@MXj<$IurV`6@5O(Gt2+kAFHcS%ftxvf zjHdn|G2P#vfYrR0+0OUZe}nt87VjUK`@f^9XYT(2wyk>F{S(~$8O^6?>Uj_FFYtMc zQ$4X9i1Dv``GMY=f~RnSSR%WikEwCU~RX~xaR;HBlodEV71)Go-q<{aj-Vq_`3jdKj&E1Y6!W7-tdDb<_Dh4yGrJ62E$y|b**@peI_*D;?L~ZYzL$lodC&A5EeH1U z9BCUu*_C1*V&gcUD}eLN@;R_vo6jsOf%D9=B3SO{><-vg2A@uC8*S$7?^3AS-e;Co z!Fgu!_a@|?37=V32kURX`uohX23*}({$7PVXLe1n{yF2oYAybwuD`!`A-!aJkPng&QmO&1!D`575`Gh#)otVF_*P)` zyuaESj4Rf*E$63R0{yg0{+oIXOSG4VF&3MtauQkut9-K3uPllt}UVrWO z<$CNutpIz-sQj>;pC1 zXCJs`a?g?RJUhno%{@ow!IIZ2kU!*>O;$$`^cJS|BiyYf7SJw!MH|))#c_n25f%WJ6&LXyrPY*wQ`S*tF>~E zjYqS+{@RW0oOM%c%O3j@*gdA6J$5MAJ!X#PWji%}olED{`LIsDJz(?C9-9DG%O2CF zX8Wv_^IGmP_gdmj1pADac)f77#M7o``@A#qXMeVLk50jsJvtdI*XACb2F@Ox3YNP^ z_s2FJd_J{pw3+*1)an`A;b8kep+2Waz}5WuM4n-fgsYd&uxg2M6u5kbJsR$3UOvx` zf$O90=h;`Nz5G1W_GOBi>mYWY`MG}_xcO{%Jeqo*?M?uzmCtr3!kf=_C!wil4NeBz zR^9%5COie)e6~9kO+C*(Uj_Rtq@Gx(fsLolIX;$JO?*0a&h;5!bF}tcpGAE(#mlun zr?y*XZodXLM$YxQV6~iU`I!`B8C#sTUk8`x`aHO?Vm}}3Si`?j+mq`z;cDfx-vw~> z^4ae~xUsYu%RPHBIL~$$f#uG}x2W}Zk5W~a@So+W_0g7ddnwp+YYvXvwrcu2SI(RH zT4(&1fz2=L@@=qM&Y3nf+h;ADx9qpe!Oi`41)6&H+m&E7_gnh83a;*-Pf7mYfhYf~ z!E$r>F17y2{~ECQ>!U4WxfYzU*iNo*a{V6IGnR9E9b7HBw$2~iTywUp)BbvJdG2q3 ztEIg*HT%AiI(zsgu=8&19=?V8R*IK>-B#PJ)7SUG#>gJN9jul;EWcSh#n|Gsy%SvS z;k)3*%09UV>^{*?TiX2qtj+P?O)bwmw614r;Zuy%%gBa-VVT1M8D_F!zJi zEM9(o`FWN0KSFPhvHiR^1McUgx;``TeE_WPdi#9$Aows!`K<5|Ts=MygB?ftF69xp zdfuh{7;HQByi0i$te%p0DL+AT?7mAeC({XKy8Q?TQ9KAb1HZCq#9+_kb!-j9LJ zJLlqOV72TiZECj9K61_F`P}<6{Ta`D$dlOex%UKEuFcQAr@{H$dkQS~OdW#l7vRgN zZKKVx|D0Mq=j$1;TIL&AJ&)A4z{be=cp0pg^C5qMVk~2e)AqMu+lK$H=2^qv!(BsleP%F@KY-Qc z?(bK?=9B&XDqPLt)!g4R(d{$)@-?vU7}bsG^WW=W_4xb|Y#-&`{S%sc_U;>C+o@;o zz6n-O$=>}lTK2B_IA(p5_gi4|c79whxounn*TZ?V&b+-1HmB^}cfe}dyV}%jpEY(p z%DwCFXBp4E`xk84yYGYL+T6Q;1!wPm0G7LV$7A~td=<5Av^n%d4K*9 zSgy_Xe*^1pyHBX)#(oal-@(35w~aP^d_Su${s(pT@jt=Nk+u8yU(~IKGAeVPjR!RC z*7mJ=cCazBk2~OM*~juvu^Y>_;IS{_vv%O z%}-q)_xfC5_3ZVz!D<$-=3bu%Ju$sc&kJ|2s~gk3J|9>;vm4}CLVi-4Uk=hd~9+s3tX9i4ycjQKNQ$DIAY zC|oW3Uz?ikvo~DFa{v2#iN+0Hxd!!6ikEHI ztnJoW*R{aL$eCOltd=t=U!7tsV~cIOGySg%_Rno5kM+RbcN|aRuaBml-<93~td=$# zf^C!EcXKT_LQ_wSjlqsF-#az|`~5;a^SUY6cG}X{W?=O_SaW~&xH;JV)f0OQu(2J_ z1NaOBdoI-VnSr(ySl#*d&+y3o+}E}>_+e`Gytmi}tnL+U+gkHXM%%8|d^XJcvhC4q zufKMGPi{2haIPJ{cGuE%bv>+;%W$x{WKMPftL2PpQ?q^citFmnSvI2hXKX#2^H99z zq-;pexU~N5tKhle_B}6k{;aKk$GCnO%gf-oC|T#?UHKiix!EC6;43sF0USEyg5IEMUr;6F9^2MzvV%^lY#-Sx{{ZWwzAZ7$<)0Mub${keeOl|D#SOr08`iA- z=Nj~}-E3}h$_@DVGr!rv##i_KPN#M*-|uMaps2Z?;;hF&aJe3G|2#m}V-B$6bG_cF z=ik52K|S+tZO-naInj;h9uwQ2{l-3bVHal)n!{oguSF>CLFfE4HFnP}N-^Hz)W&z5 zY47|kL-AUIlJ-m1*!D{mcxkY)K1-eR<=>58?rr~We7R$HUn~GOo_j`LdDeO%u<^Co zPVRm(uZ6+pW*cqS5>I^*ur}9gQED&OOZ_txHODB<&uP`t=MrH13||s%UVblsn|dj@ zYv+3seI1*ce&zkh{j@yAYgtO>Zb*%tgXJiW<#W`TFaNE8a=!ex0!qGO%`<?uj@rxlQ(vB<=9tCq7w;9V9N_79C9wTw z&Q^wJ&a}mE6|gqPXI}EyRt2lshd6uEJ+lhMYXwT?b;TMxS1T2GWw7I0l{)v=wTV~G z={hy{e5$VjH=g&TjAtmCdia`P`^kN1Ex11F=3^gf@n0A0ShU%nJom=+z}_2eqs^Sv zlJih(>rlMbq$KCHYP>r2+7$C#mpXZFNQ^R1|GkKC?*m&DTzy!BZ(VTxw=1~*!yA0Z zg6qF)!S&z0;Cq7is(I#pBe;2#^S&{fdfroR0#@_lQJo4@|9i|2PMuxD5wZTdKe>gjJAaM|CsaJAgO?QeT{`g0ED#&Z7jPk%dr z?N1+V`nU$_>2D`++21a3HJ>Y!-)`Xa=Nib3<^1cP{`LUdpFZ03aShee-`?O>&h^>Y z2kyGLM*7S3iT~%pj@i%DHSpONtmYc;N4-DA_IXy3>y!3h06T{4i7$fn&w9)C(cg1% zKyCNTh;wE(#I`BLYa>d|%*HidpL!FDXJ#|%oSB1(kuzdFs^ISFu7YbH*Wld+*T1LW z`cG`|Nd?z`O2PG?R`A2YN7Ov?GXicN<(WAIO+9C3Bv>tTXpU-`^U+|noS89Twerl2 zg*$hyxpN>Fo4@|qQ{%zzDSfo*;~c7|zb}Ey{tkt!m1kxGJpDO`a$`Av`lr8Mu>I+y zO&`}lJ^dX9F8iAdS1ZrVRCxMx4dljh{`F6P)4}$qk2ZZ=L-q7`B-os@Mn{2Nx11Td zKJh;q?3nYcdJI_2_IJ_Om%+BrnUU+0_Fn-zhV*wVSpTfITp#^C7su6h&x|-{W*D|@ zDPCJqa%Q%!@fOtEP&_l+QRmE@NDTLC_^AbVPoG|J{myLgvkR{Oxdqq%yaxY9!S%ne z;QC+O;FlC!|H})m|CI&58vLD_XFgAYn|FD}PDWGD89N26mN|D$)Urlj1*_$Zod#Ab z&)6Ao=h{8xoXN$`m;Tv=`e@U~Iag1A=YY%pz6Mt-&)C=D>CZWr8_W6DKmDB# zwm*He>EoKIr@wE4%l%z4T9i-vZm8KHBtg&DGQ2rQou^Z^P9t zt9|_3y#k#6TywdxTyOo;-&J7y(?^>=?iuy;_g%1aoIP<3*nN^SE!QXh*Mgm+oayg@ z)pDk<1KU1lTCPvpUk^6t^mhYT|LiZhKJmW^?3f?sp5e30Enu~qDH+49VD*Ra@jLKs zU^RUb=lfveq|NPMwY0edtY(|MpSlxlEN!j)sPCpY-Ww^-r(8e#8AjjtfVF!M66YSY z1GZf#UOQ5958A25!>M+VpWw)YIQjz-50wg{zhKh@ZjJpK~HNmh+*1`ujQ9{`AqNk8`S?{+wYE zGDp7wt7Xr;3|1@m%H{dQ$wAavlQ)S`uE{$EcTL_e zxPBiL{6p|ZHP4#-8E!x2n!JUko;7(Jtd=!#3~HI9cfo2|llQ=C<(m8jZf?%8W0Z>> zpZ-~szk*#8eYELgj_T>}W3XD*laWT(bqy)U##_fz`5Rj#({pxCmG+ zYxWtiTDfM6!JP}&$(-b3^U*(RwglKU(?^>=&WU>ZTMAtEw=`U>{5=-gTOsr3#u z&v>?h+pe6`ZPC;-r`v(moKwd+2>;=5`!;9$kc*A4f97aMuydr3HuF+TUaj{V*uB0? zNnT&6v3VU!F|XsPlh>ZaNM61h+`HzdEs!uwyYd`;?3APhayKhW%jhw$%D)Gf%bT z>2v()6t7b$$@8lmgQlK5CxF$G=Wh5JXX%3UY`%vqn%{RGSBH~>dEtPuv+rm7yl#R z>dEscuwyYd`;?3APhayihhxBgU(rXKd8#E(e>QOu#p|1t z@?0JLtEEUPCd@?@=euD~ORieSW*D=E?I?xb4b3FGEvLp5F$m zCC`cYUk+DKo>zh$i@DjSTx@^(nx{Ej4W3G^k2dpEOP)7kyOrW~6D4`xT;uDhZ=smy zZPeyze%BBqd0Jmz@P*+w6K$|M3QYqTu@fqTu>JQ}E}&zp8om!L@MbwcH2aLsQT5;dNlOJaaqeYVLu7 zw7mhWmVI+0SnYjm*(W!{T}$_dYa$oB9{RgajCCt`d1`&M>EoKJr@!xm%l>YMtCimi z?}Vp6*HmsS*Hi!WcQ@Gn^wFk|dqO?^{Qz9{_d~ea&c*Zceem?>o{$^M{h)vP`w`gw z^wFk|drCe1JpeBIdl0U6S<&Ca@bu@Nk{iqYq<{MRG1&g}(WZ}kQa%0s1YGv_Q@Gl0 zwa*~h{|ub|+>>%+xgYgUe?JG?pFZ03d6Zf`{XGdT`+FL$_Eha-f4>B$KlilUSng;2 z)8DgT`_o68KAs8n^!Gg2J(TxxFM!oz|25b(kNrikn%}i=AofdO+o*eP?nL_y*t6uh zu}`^viTN_vbxq9Qg4JUG9oTh<{r6zC^!W#{ZPe4}D`5M~_j|d1iTNtnxlYWPU^UzO zF8DRD?Q@Rh`lS8qVCOD>=jcG^Cms5w?~Vt)uWcJ4dI{s^v~*dK${?BCy)P8{p}o#~%| z?ZJPEhdzI!s5uU?YvBC+lj84@JJ0_DFG#Jf-T72=%&!}a`B8HZxo-1O z&xWR+-#MHetmYUxwQ)HH^$v=fV-V-hM-BiR*Yi+*mJCGKmd}zoz-sQnd|u26SNG4g zI!@PlZgAo`PVWixpsAae`#>&s4;Ul+cz&>ZOPl*ap1-eUFnAekwzr*j*Cjbw8^^g^ z2<#Y)J< zOM~y(;QKcC_y(U`aPM0uH24_}er|)G-{2QC_{9Y`pC@bXIy<*HtBZr3du#t3%#zeg zQM}v-OV@Vm?7d~c#<+!j?AiJ(SnY1GXGp#T#aPA`r|oiJ+sZeu4fZdPzd{`B(X5a2P zxouaYwr}g!pC6(gO7YUZdTqBh7uR4NurbPe$GUKJ?g&>u9v@@u1U8O(o=bKH+rKvF#HSiBeP3U=J;3^?8`JxTTKx9{tEG><2bxIcNLB z)#LL8uGg6FM*r$ zcPN^Aa_#}ES+dp>z{b+%vx93f5uEib$KH#sE%7FS)hzx!@y_94U}I`?-o{g_Wt>yM zjKV&%;EcsSjG<5F@_4Z0)z5jGOs$qaP6Vr!`JMzAnAMO+9@^rBF(GR5}V?e7d~ZSH@^^L4OV+MNeZUfLYH?armvmUiC&tEJsH!Rb$% z_X*pbPpvKOE(Du%+Fb-rJ8fxq0a#nweG6=V;g^E-3BRo7`Lp2PhU=pqpUc6HC;W<< zr_GgceblpFSAmVCEq+&nFQI5VzFybwfE}Z@#Q!eXTodaWuzu?CxfbmFhkp-Twz&?j zk9z(MiR;0}(&ijrOs!@NKLc+7Z&GvD_(rfk**`ad_ob9);AXgbd~T_I$~|@~ntJlN z4QxC0%+2?~_NOheZU+ycIIiS*2UtDxcPCiQ_Gxz)IPJ_+uAk2%*o(DSn=ox&8o6TmIg^AA;S3&YiaOe=m4zN;wDj!PVn)KiEFgwe2^jwm-jXJqC83e8*x;pIv_jSGWI_ zspYmGN^N^<+xr~-I9Q)Nf4NpahpXq`-FO15=34u?FJFza2E};R_VpySKKAugZL{{d z_ZQT^qDOTO?AI5;?vu{imV4<-weDwP20)7X!Ki?CG^PXS^wudQR4^n(j@BsBg6vyxgweJI7rOix=YcJR5jRt?G z=Jq)Q`)lxrsPAW8UIG7!qV`9MIU7$c{%?UF!r${{`?ukLrl{+0e`@i6AN&x0&bR)5 zg}V+*P_%tONvsdS?@{#eKA`_6VD*nF#&`T`iT^jSeTM%XtdHD${y{N^?{TLx-al(i zKifLjYUNx%il0|G*FT0k*FT}oT+>CrxgOBqgKD0!%?3A4=DHKE)6i8_|IAUA7A^=1y^(K5@T+-y7QbhnGc>d(LOK5_>Ny&#xp^Yt{v>q(09?i@cwao&GHo%_cMv~%7wA1lK3%Y3W^SF?DP^I==areE9Ya4S}W&cD4Ol{*KTar%09IvuQkE#yxRL@ zEx4Mcxli0<&f(hF?0-Xw{?4;n=J`4FUsJq(MRA^=p?>c^WI9+v|hv%i7QF4XHPxc=?&Mac#HGx!MG5jC^iy z3RcVKwtNGMv5YNtZCiT=Y_9g7cw3-tPVwhbzSrCmtd=&zz_!Wrqw~BKntEbv4R%a< zf3*!*&G%RN?A;b_J8kJ}JFvRnd$%O+_F(&0w}0n)IM_AuGu!_3+W}48*zz60wpDkI zT_3gNushfo<#X2_XzKdxNxc_kH;TIb>`c8kMLqrQ12*<3+ITPeJXjxf`*k0v>92i1 zuv*UM{$MqW7wNG=?Y8b2?KzuY06&UNJ@LK>ZpUk%i38wj`tpB9)qei>d}KWO*xq$J z80sV)wLD*GQ?q^cy8F`hp2g8% L`}3TNJ*WQEP1 diff --git a/piet-gpu/shader/path_coarse.comp b/piet-gpu/shader/path_coarse.comp index 70251bf..663fe45 100644 --- a/piet-gpu/shader/path_coarse.comp +++ b/piet-gpu/shader/path_coarse.comp @@ -96,7 +96,7 @@ void main() { uint tag = PathSeg_Nop; if (element_ix < conf.n_pathseg) { - tag = PathSeg_tag(conf.pathseg_alloc, ref); + tag = PathSeg_tag(conf.pathseg_alloc, ref).tag; } switch (tag) { case PathSeg_FillCubic: diff --git a/piet-gpu/shader/path_coarse.spv b/piet-gpu/shader/path_coarse.spv index d84bd6da987bb7d0648cc84aa2f0874a08bbdab1..16eb64c1c7bf0d53723d75569b46da359878c2b4 100644 GIT binary patch literal 42488 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 literal 42252 zcma)_2Y_BxwYEQ)Nul>%OsJs~dMBX;q!X$j!z7u6K#~c`B!nVN=pZ1y2?!`i6X_yN zLJ<(92#Sa(Qj{V^q)7jt=bQ5;d(P$l|Nq^)-S7LZwbxpEpMA=AW+t@EzI?w%W46Ye zjsA^?`Zk)M1sb!XG#Ya?`ZoJvI}P7y&BwRM=c(bDwOXFh!T(6`dYw~w8m z;fvWDjrq~l7N8BF>1%7@|1dWmgtU@%*iLQ3cHMQ@PTRJPoH(&NEmSFD!CGVrPG)_#ClR6LW*m}x{u_O2B7~QjW+WgG&@7q`f zUh{A6Hg!J}*`@A2x$8c0@GS1$o4C#_?oOV#Zci@#-A5CtrETmqV)W$dgVr^veZpi# zJ|0tjJzY2|)a*PLZma>X)z#+u{Le#I9m|?ClWrbZ!Vs^eu^N4Qg;%Ga#G<%&)&e(& zc8r<1PHKK;t*h&`HfwHkHHK6^ZDS{l>X??PRikE|9?d*k;M=oyt&J_g z%^~#e&8_HNqvVqNnU$-xu`OI5b?cG)88M=B=6+CfuXR!PWcof_C3m2A-2Z!V$X*?J z*JT*va@@BE_tf5}u_M?S4lj`V>rBu-`2dYWcg=Zo2m^ytJ>!DdaG+p9lcJojUK#4 zZ%eftUX5Lk-N={q*d5%n9xaVMz&&f-x3QNsd5(_moHV{#AnRB6Gi!bNHui;=zS_NB zsQVe;-UaXRYaUbMj%)8?Nr<>$;{f_{{Qv#DGnb#Z*^K@{LZ98lV z7Y|lx)3nje8$AOdMFmU_CiIX~~wM}fF)IOqfTsx;{SI3x1?c)aZl-?XO5kF6y zKHOCu`#;A_{l;+~>z;9a8&kocaOI>=Q3yG zXmH2muCW~Rj<(6ofV~#SvYn@Svo1%7t93b2+>F(yaTIv+VUxPrx;kB!=D1_%bBs?0 zPipF|jnnC8?a9{0ned%E#&=F4xO-3ThdX~;{GvM_^^QrCJazHz)AV;<=*<|`d=}h~ z*SQPnJt*!2`NcJUTaDjQ;}6vMgS~i5<8ioaYu=~ny;GX!Iq;8Kx5xjlHT%mo{t6s_jzEw9KWg?jYWyuY{_Nf!|95Nl_iOwEIR5L=HRtnj&HmpS z{|t`*`gBeIuWEKTV>$oX;rMS5|GqVQ{~DjO$KP9LGyc3a`}{S&V2}Ss@n5uNU%bYb z?D5|?{>#?v18RJ^9{<4}V2}4oHT$3%U$yf00PDYI&AxUo-qKhX?s>0oTQ6H{qrJw* z*7%{lcuV7Oc=qK{VAg%+zC5OvZ)>Bw#*gdqpSdqjtl3Yl@l$*JXYR|>YxXmH@s`Hf z@Sb_LG_D4x&YODqwKi_9@mp&At{T6)#_y?dzlW9k@!=YOq{e?+<4@N3Q#Jm_8vj#` zzfj{Z)%f3P{N-M}rSTd(YxM@WJf?5=@@;LrQ{(UT_|H71AJpt0*7(Og{xgs1r#1WM zHU4Ff|IBNRH=c5>XRq;AIQ7rG*7U2{=cw_ydi-ZzYv!%l=kLW^8VkX*#|DANbMy6j zy=8%q29H{Ma8vIV4_>E<@9PVnTB?c;i$ zn_3zVz`YM^n*pA+7A=j3wN>LDso5Tb_k8DUX*>lU)ozSFjpxA4`)!rPxUZm18{hLD zLjERvR-QhMPvIToI>vWQ=xTnO^UZ+oE5?j#8#b+1PZ5u4!-?if4fV5Sgb;`#km_nwy;v-0#oAAxtihsWRV zuoJsRj*B5V`lay9$Py?CF-s_>o~y=wIAqro#Z zk8;oc+%#InH|rIrwK25DPl5A1)|O|W^Lu!64p)LFG#}OPikZL zuQ=u=pTEgxJ^wD!i}z_PmhsgIVvH4f`Ls4xuJP62c?aMzT1$I%eOnJamG_w*O=E2W zpU~DhrRNy(jzc?N@g`3hkG-X_89c{&TX2r`j^M-if? zu|GV=`k-F6*2c&hA6?^PYkXXdPYJJ%_0;g{cucGDBWwKVUc9Ao417wpw#U|N$7`$Z z9Vhg%aj()=+#k+>cePI%)AJ6vrE!D)JOOwNey(q`zLv(FU~V%_{XQ`UkHP)=&-@m(Rp} zm-HI!|Bsz8b@I5*iQbBv_Ic1oR(MJ9hzc(a&b(Iw=f1w0xLT*d;3JyHqNTBcxYGC3 zhoG+0{$O6}j2+d{!`tB_+9$*0eH(|ud+uGii>UW$bfK5`FJm2!HfzoMG>(Z+b<@>n zI@+{J?aa6*&dKm`?UTFOD$zAL&vD}?lBK0_5m;x(UZw6mlSx^_HSlR8+D9HbYEmbs zZ&RCrR!B|l@r>)aZJ@O_oAd1JJ4&YRTuW*O6*b4z0gymQ=I`!uzM z3(YmrZ}CF&nNTe?o7cIk4WK2j&w*+yG_}^|GaztgET0Me=;Oz=Q&V=Wd=@O%PVU+{ zZ|x6KoNKoPZ6Rjv+y@$iUc3lC)<1yeX8_#VZR*S7Y2D(1th4pXUTbna|kf^XEqTm~U-*^Qr0Y7h`SuYg6+@Rbr?agV*#k zV{8UChMNAHS2()SUb`o!KF>=-p`-G|9MyqI>E+~FU#8dT|}N{{KMhuiJkGDGsmJ2 zpv^{Gt>WEaKh}B@eLvcKwAfDp>%S^%<-R|artfL=`l>C1E!SD=Iup$`wW;g>1A5nA z+olyitJ1WeU17(V+x|S7xx>!~`$=tAfju^>RJC1O*zN_JFJoV;@qfX+p2Yqk*jV9T zfcq4@l|ste=7u}}_%96aU+|^ja}<09_?!h_9qu*Gxvv8@mgk-EJWku8r9Szt@YEyU z18zNzKMU-5&zsb9F51^$&x&^eeE!P+vdVv(iZ94QIo`c&yk#oxUN_##^sBg-jqWYO z*KP8~kno+Ge8^1R4u9yQYqyAf1pLE&cbUmYHvPM2@`><|2Q57_{$cPXA6ROp{qd&% zta_e+4?1+hE}o~Kfn5vN%lbcuGsULvUXy!2R@44vg&pHHU^WK!;JKUkWO3QFe^Ya; z_cia6#%&cdR?WO}?`>+XgU78e+_jdQV@~*b^p0P&@-_M~3+JscVNX=%(eBTKM8k-o3fpagV~k<|8-%4E|>T{pv7}tIq;zUJGm+ za2B|p*5t?O{TIcsuDSL34$xliJxr%?d*45WFAVn`RJi`Wg9`WD99VGumn*pbzJrRt zz3-sHy)XFwDcp0-cTeHQ^W9Up{zD7y_1kw(vA4l}_Y`h_Wx=)k{wa3H`wl8xyYHdG z?R^gwuHAQ0;f|kC;}6#OBQ@?jsdBvUq{5BwJE?Hv`%bFlzLzSw@1;uad#RGYTyW#R zT5$Kg@1;tA-%FL;_fjSIy;QjId@mJl?|Z3|`)(@SYq9U9!acsen+o3=?z^dQ?Y^4| zxA(nN$$c*s?m4(x!CgP!OT})zzMBg79QEB)xOU%7h1>gXDqOqor^1cDV~zWssD!K2e!j12Hs&M1`o~q;r)wu7fO1tl>O76R=aO3-~D%|7myQ*;W`L3$uzN;#^ z@2bL$=ew$s`>v|wzOO2|@2g7gJFAlW&Z^|TvkJGq8wzfI-&@5l_uW;=eScMQ-(i*9 zcUa-Z_dQn0eUDZ0Ckk#p-($rt_dQn0eUDXg-(!{h?HczzR%!QLR>{4Xm%LAn`);eW z`+lqBzT*ma|NEY+?gr}=M`@6`>vAv zzAN1L(`(#!U8UXkTqXBiSGe{1zAM~#zV9mejDq{U&G%ff%YDZcZtpv;lKYM;-0PR` zxWesy#}#gV-*JUopYOLy?)$B9{e8bxa^G#0-1k}~_uW>>eZLiMKHqVLJ3rrXmE8AR z;r71YD!K2sN)XzDlMGcWuju$teYKH-7r6R@Ap@YnV+P0eR1@t2L+ znpn*|J~Mws^EuiW$@6ukZ$V6-yW~Tu&bs<>?e+P$8|-thea7{NYY(3T?D!MNW&Lx( z)qFnguC%$qj?=aqb+3irJYaS6`~PyW&v<2>^TCZjl<3wrKRmUS>$U*8wwtSUTM+D6 zb=PfSdOxn4wuNYFuAA8SKF2RcOMK_x*}N3Pv*K3+~?_TG;5XXm$?oCBR6e6XUmny5Il0E5D7w#?t2buowQDfYqJbV0w9u z)8^o^CiA-|x1eduaoV!d2sd*bhoJdAr5nxIa{Y{9-mSpq(>9b|?s4*+!q(se=pC<3 zAHM^sdz^gVunkzP8$Vo@l<=-QHdSFmx^r&smt2DT<` z*5mzPcd+&3x@6sZz|}KuIM}i38Mh}mb-2cI{j|Hrdx7io+#5|j^V|olX7f|7@xExr zx2|%H_e0Z`d430M9QEYhA6(CU0GfJoe;2G~tFQ5aXvtl!aT~g}Z zJ`t{-aVLQttDbQugHwlVEZ5Ixgth6tpV`O%RIvW;ORsNUlTL%H$LIT%Pg%?9XzIsv z>>P6j*m3Ha>zQD6-ytW~58&qOF7llPSD#+RIvea*^^7|QoOz|rbJ5gO!+BuGsyp{n z=+%tjz2pM0TDdnagsaErqHplI7)|{|;&}bP1nfBVjQb(DnXj6cewU)D$LF$d@VOjK zJ+XfTcAWb3D&G}gb82&5=hLg@esmRBEirxqR{Jq+Ztk(xat+vX#h+$wuFO?*AQ@ARFs_q-e7_2d0BGqZGb2(l={b$hYlUTn8 z8!P-daJiO$fImx9_j=)a{}JpsZJEQLz|Nr?d*<*0T;06S)63)kB3S=&P5%N{*ZQE1s3*=_V0G6&*Xp;y#@Ciw)Dri7 zuz9q-M=y`<1F&^!`!~HjwhzJ9qwPQRa`8v>@6tBrr@8)|>|^lJ^u{)ZzWV6<4!w4d zf%lD1z-rxK^SF2Z3s(>S6ns6+bTOg0|cjz9N=3*RdbAzTkmqSAjFPerW2>qxtierhm_Sra8cU@bAXoG4>fZ zCpPWjbAcV7@742w)%>|<)@@#}@=LPUFu;4GW@c%XjI8z-oRn zzlGucOsE^p`N;JX`?Dc)`Q3S2?2CeTpx0lUKK^`3-CA6)#ldRb;MZuG>k??%;i{G~jzdYZXV*t9gZ^7kWF z2WP&{bsPNGKvO>&z6$-CG&RSsR&mGsJhL|3J=_g;yw|+JXzKc}MK6#4I^eqhx@hY9 zd+y7PsOnLN)Ow^tnd(vq7KB)cv_&o|85Q zd%dyuIcZD!Av8Z;Pli@@`_!}**cjnkgRi85IJW1CByvD<--m2-3$ zSgm|c+8(a%7}sbAaCvY4He4Td=eI4rT8_ca;QBGx1x;Q5o#^H9-wmw4YiCZ6@$P8q z`tM3FkN^CV}-)Pn^kMb=N=7NnLQ`YfCL^ ziF-IW&q-6k^4N|5Tc_iu(aU2y3T!>vj-;21kESo5lfDP{Imy_@&{rRQr_gKn82Fsj z4OYu}e`Q| zS98veJr%4Lej3=E+2`K}>!Y6Q>*-*>Z)!8~%I+A9drML9gbu_8fYzkM>@R&!az|=12PlmEAu1F9e(4dzbg)i@<8y*vtF^eJx*7H%XPX2 zuBP2}`YE_vr)%N*sJkxL)B7=xw(Dp&(aa-u-p%(N;QDpwXJ|LlJl;3Z%blAs9dDeh z(aqp;U2lQAuGyovg7s0)THgk)ul4O{>eyjPh=kBd%=E(Sd(Tv{q?biJL$D&?61IT+U}>9=iGh(?76M3{XTlN zjC~NS7XA?U7+TitVX!{x@p%O7`J8j}*I@nB%`t;sO@FW1kAZWoeH1K@?Kj~4X^wlG zULMLHKY%@cD^}yR`@HV;{*Peyy1%nr#&{lGTh{(hVB@G;`_uGl zspHS!daW;_smJFp;Cihup{b|Vzk;pRwR61o)cQB@H`V$wy0+=nHRD9Xa2W%X5YkiwuEp>bZ zt{>lz(bVJf3E26Rd+on)^{mOKV8^MO=Rhbv!Twk}Z(A1OXYp~2oAdYN zJ@@t3rcZLu0e0TubHc49_ky|L`lu(KS{cu{89z7JoceM&8}c0gdBHjU<#Cx0U0Y(z z4{na-+Tpcm0eIF!TjDJQPP}sOFO05jdbOVx0sA}X>bZU|3O25`_$>yu7H#oc0<7-u ztUD)v?@%qZE(Nw$ZT=3TJbPmqaD5Lhi>4l*Z&f~J{R7a{vwsGH)tp1}E(bPW>RcYI zpL)iv05+et_^k+5&wTtnNwvgX8SFJT{)6CZ`e%Qx0`_?Hr)i(S{`0wMRj@YK!r!-) zC+_NCuaAkl23)O-yCytwwdc631=i-Xb#ko@S2vfx%PCK;b--TVl51VKTA6D-cyeh^ z-1WiQjO*`&$`f}(u-Br*-3YE$#@!g6xY{#^O~Bg9Icy47H{ejcAT?|awubCg z<86bc9-nP1pS&N`XFD|Y)G!R38q8q~eX{1-Q^WRPk8k4dAg`^%x6#z&vt#8`uES1f z>ZxI8aB47zG4!zp^Jz~FyMR4DiN7njz7D&gsmEvc%BNh1JuyM7Sb5DA;%;5mA^DNi# zyJ+h1Ik566_hlQJy6<^C{s(~_r*5A8>D5yE2ynU2M#AgsI|@xbF+0GHQ%{`HU}O8< z*t}!F`l+YhgTeLvGZsxfu@3<|R^58r>D7{F9N0Y)J|4UhE#oJE^-+&cC)hm{J`wDk zGv+X`KI*A|64+SU@|}G$Slzk~rI#Di@1;|~YI$!y6|A-)w_^Pd2dnu#$-nQM240X} zU3(Y3nrr3Xb{+v%I|XbGzfT_tSNHkjXnH?Bf2bctQ}Y=^oZlZ-^Pb%g-($hX>;~IX zdpDXk>o`U`%{tofISyREj~wtLLy*#!Hz}A~JlE-!-SpUpP?(<-B z*vI!`@Zie#B6_*Lm(W{}z3;CsrN4~kNBiZK-9E8?1U5$a72pkMw^ZwJC0HMI=Pv&t z&DiD=XY7x`#>%<&6R?_pBb#gJ)o^v^c@@1p<9`Zv?YhbBwdPu|n&*ng&U^NC@cOmp zdNg&vFFEc8u=~cp+c$=G^Ib!)&3vBQH-hIa-p&0CuI9e*nExE?$9ZeJiKgbf#o13c zgX??l7Buzv+zPJmx!cgx^F8l&uywCUbG&wIb${LgcD?ewK@zFWuNzSzW`ge z$4Gx`c3!`v_v5_uxr?Ueyu>*kcY|HCto=P;*Zwue#^+u%_3W4Xz>ZV5uEe!ZUH5~{ zYpwd5)4Cp@_hVi9{EDV#UE-|egW&pFK7^(opNGNqWAX@^de-pQV8^Ln$BuCCJO);G z&pk@-zL`O;!2Mav+z0%38lFZ|H|LY| za`7|tj`!!R`u!d}gkB$Q`aDjrZhY?v&w#P|L)}PaQ{}vxoFR^dIjw9%W-%Wto9bGK{(SHuntFUb0(%~o_w|p_)UD0y z)+b_<2_Gb?Z)wM{Iq4>bAk7)>M`fs@Oj`_`+4B{sAnDK z1!o8stE{5wN!sc9i_S<}LBYntBZ`A)S6Tp#t+v?$ov z{%(}^)U+5_TWVSy>>A|USOTo(xsf`TglFv>ua9;5_mA2VYbmg`hc69Ysai|#9m~L1 zgXg>GvT)=2Ucj;X>ytImo><=kn=gC-xQsmzUdCPyp4g7nU!T;iJ+W2*Ter65>E-U% z73sZ}*!#S=GW{T$AMLADcKgIy6>N;~)xg%BYuM^webl{f$ycHo+g##|T@!4qT%*#1EKl5Rz>c+!t?A{tCvOY(p6nQH-gAc0`|;Rm-;So{ zu@fim_F&`Y{<{M>_g`)C`!@I(*8278e!C-F-`sDtTbpyz=Dtfld*ckEo}IzoH(W!1 z&bteICt5ey@p66Qzbn{#Q}}Lh$9tVK-tKUH)Dv?Lura+h7*npFcsRYkzm<9I2`|4p z>;+eIUasRlU_Y*-w!LX;uA|tTZP@n(*YAh>p{d8`JK*~B?*3@%*5h^j0I=sr#(WoS z-0Ty54n$MWwZ0APIQ7Ii2<*=;^0SI|xPI!n&yE0l?eRWqt=6Jn)=7Kn7zwV|F$zsR zJ{{otbHr#g^?WxP12*T1G{>d!FmZg7sJTSR6|4$77-G5Sp6DLYz3`!Nv)n z0QR`=R_&Qius-U}bsW7~<}ndmpX*_0>hYNbuFrKcntI+nbb%eGZv9i~Q@^$;w4-R& zFScIy^xm`8)nk@4RHJHDG(u8CZq z_#Xo<&%a6leKy6@f;&~_qC%{hy6%uWW^kJ%|`>hU=hTtD`wp{eJ5`##ul>UoYi9qhiQYiQ5&=ow&b zEnGV@&okj!7w74EtLf|7q;`9G_PD*r!)KHqfR``$S>V}ew^eI&Hdr6^j5!C~x8Uc3 zjgfo)d0>6iuc_jk4>p!I*ZM+wKd!a53utPtwK&&~{9H9Qd*`xGihEzb`>1nckbfp%lJ1~vUM=2EctFP|m+w-GOctC@3Q_>aI{ z*d6bf{`6O%sT=Qddb#*YddKUxGk!k?n_t^i^zx0lPqIB5KLHP?cf8}Yr>3jH*5vaF zuyGClqn3Bl+SFXPLG-S%z2n^jKLvaI^1O2`SS|NGZEB8Rk>2qu(>vaEzYe@4Il`}p z`}{tgdbHmFSJThAX;Vx78^QZmGX1Iy$o!v z_VK+LTlwAi7PwmGs!h%DmsH~~Eymx9ZIjknwcQ3+%Xn>SS&Q4j>!F3;0Y3wtwYd|n zrl0j|Q`3JCYw-)P*BWhJPvq8iKG?b0%g?F!dGy);ci}q)-c6k3|0SAw_}$=5@ku@R zz}56Kr#7|Jb1!&DG;RLwmE8P8(5%N^U*yJp{Lg0a?92P%YFR67YL4F=?D#F|G~7bzbWwJcfAd%qaVHh=3}t`-lJpZq4(dW^SnHUreA8C4t9)drG6Yu zpKh9Slk20uIgh7l|BATc)Z@>1{P~Wb`Dv+P0kAbJL~jiz(Vt8+SN{FH(`)>~8o#*W z)_5BD`!r)@{p6?8wENEM9GcJE-L%Z}T(Gs|{niCw{qnr6-T7LJwv4+7tftMn zHl{Xfl=~gRb^0OA+OO0)KEn&ag9Cgx>e^MzjyHb?f(kHGqP1>%Zsd+rbIUd)6 z%i|%xwz7LXuBTa_$Ll?gyfxoIQ_uR_J7@RNjWpxA$He9{Z|pY}c5(Kg&oX{*^Ro!e zJ?NS*TH${5i_wg?1ikUCGvi&qWodr=d*qB?s=|(6y1@RoOO5p{`kY_4f%VJYzN6yS z?!LI4W;~C*zVaOFJHf`+<~Vu2ll}ti+#I7VzaxDYSewV|ZhAi+FZEy2)T~jQpOLC1 z=Y3#vhTji%Uitp|E3n7zUYfqvrlwzcJ@S|?PxCW?mbDvLVb^3inzgJzpY?hGT&~xH zHU4BcJwVfz^?L-Y&Gmbf-jD02{%e|=HH+OZ z=T}@kd4B^oZ`SMyaMny){C*48W_`{}9^3E0YUU7UPp$%9gXU*dTGn;73a>=JI?Wo_ zq|d&48eFdHa|QRDc)sBJy-?#X7F_?o7F_?AYy6dh>;I2}>;FcLzg2Mk-z~WQ@7MST z1=s)Mg6sd^8vm@|`hQh${rz%bpY@u(;QIG1xPJb3^GbjJyLsXI&s%Wy`D=W^g6qF% z!S(mQo0oX@{&(}j_4mJ<7j8eG#+NI&{woz+fB(CA<#_+QdExr6S#b5W3+}&3>wh;- z-D|%6Gc@;IH!XYk_h9wBt9ur#=C#8;@19hP{~y3=xwrihtmZkUkJrmT(cJ5fchAbj z?pOUizx&evndbFJA8qwS9tlkeYP^Xa2aAJ19!3x{lLlByk@|S<@G}U%jkZY-}i z`X}E4VDsstO&_mW>dChdxXiZ*T+P3IPQJy!$>%joZY-}?`X}EKVDsstO&_m$>dChh zxXiZ7z{_ zui5I!w;tGQoX_(s)2|O#i+uyI*QD4tgsbJf?M7h7sC!*M5Z{f#UhBKT=9KG~n45sT z?j+`>aJASs1ACo_eRH^4a&7^3jCyiz2{z{`RZh8ni8%!9wIDHv!qsBm3hcQX`_^!^ z}b7HrPko8<}mQ=w8Y#VtQPwYV9%%6zYSJP&K<#yQBTgDz~~uaDP(gW%?N4(5=Hjjw;s%MoDD zOMSFCFSX3eId4q!vjHvh+OWdTYa^QT+Jrvy8cU4KYbEqUE1r3EG;{Qx*Jw2LJU@*A zt9k$Rz3htg2gB7f&qKi0;@r$B7n@IC=jj~Af&Jd0k2dG2mU(W9Z3xZJ<}~NI8T}R& zb}n1eoaa#b%%hVS`gGHBd?uo)haU!ZtnV(|CzIf63)3>!$zaE6%g?jB!0Og2POaM# zV+Wd_?PxhB!z#Qr{q{6#{Wg8}*5Sm+F|j|Y;0wc#DY*9T8b7Y!`kz>E{ZFp(Qwy&D z=>^yS%z~cEzVE};UMupQ0Z%@Uf!tWGzy8Vh1F-q@(WZ~bP(At10XyeMtG#?4SnXU| ze9i~!lVfxtSnUE@d@cezm&CaktX9Ukr1D9eAHvm)vl}~k8*052Yz^ixhCc3}%jhqs zxu?4Eb1riIQ^SwI&M)WN6<{^Td+uKecKj*Tc)31~_Z+;cvU`4tbAHZ_Z8*)(uC$z= zyH$86`rRwM3;iB6&(%HYbFN-ZJkOC_Pj4!?`pq?dOTj(Y?kc$cch~qm1=s(5OXJ9pBd(QtH?D2OW zdMxE)kE40S9z)0FXM?wbmt~Cp`e{$Cw}H!AZ-=X$hkt6l1D;yd9c!(3qH9a7zW}SH z)?b2CtNTc9eeNOih}}PqORe{UtyO>hw5Qhlz-6uX!_{6ZYW)@5T0Pgwb$tL`TWXyF zR!gl9fm5q{SZ;mpU-O6`p?6$r{WaKH_18~(YJC)3*7_J+&36u2*T>+is+)$>PgeV#k!5qsV^F10=lwpRW1)1F$N0hhJ@9d=i|qiKpZ#dL zUVo>;d(-bv^BVnK`dp)5BaStNzftgo(cdn(e(%)ydj;43gM#b-VU2%WaQ#0mxc;Bl z_?HFOpYnUvJ9~|{7F_>+1vma2H9l9t^`E!k`p;i*|GQlaRXo@1*Qw8S?WW~8{sT=t z*X)0S)pE^t&DG-nCRi=k?6<&bxrVs6{ss3~x;H!~at7 zW4RynPrfg}=F>-;KJF>?e8d*nIkE)5krno_uqI%Y5^|)yiwpeDLIRPs@$v ze%3$v766-1A8q=0PN*l}!eIB1*V>iwT?DQc`=VfvdF+e9)nZ>9>@kXc3AkG9OM+d~ z*q4H<`Fy+&`IZKo)3}b+?)m4x1HUZIbFv#hYnSVv*xv%Xeu+H*tQPw~u=9<5Ij~yZ zuPhICjJi1wB+m+9b9$dQr(8c{dL3S|vinRe&NKBOY#lT|2hqGn8?U{|aHkP)G+XP&W+Z3*!dd6)Ab}rgHZu0WDjVHFBF|-`Fg9|*iz=st0&!TiR7qI%ywB*_qY;0}GwHw%VO|ISH=1QDB zz-ncj;c&-kOPoEy9+Sk`3+{R+_ug=Q)U!AC0UJwO#_bC($L$B#Pd($l19mRjGH!ox zIqm?se(D+bU9jt|&AlkkUi3UajOM44=3aDfO{BTECebI?L5x!mA643lcWVrKIk55<4XNsJro;gkhA4by_?Qrl!nzqbu8aVUT zp1enZtxdc0lV^TYsrP7_pTlXn#!M^l5d}W7!XEphXs*Hc=)JCZPdS>{URT1qYy5mt?@f+{DB&uQR5HS_#-v`SdBkbeRR#XX+h2fhb)y~2-yyO#M~ z{$t_#sC!*?z0~4A9qby19|t#H#vc#YN8RzRuUh<11RFE_ByiKGx=)=9*GJv)9uKvl z*gYPng3X`r0G@ZJp{d8``(Wo(`kaoYp8LlcV8^Lv+?inW<$2%OKY*)eubu^Vta`?s z4YsCo+&O6K@i`Z4O{LFyXzHoye6ZuxGwuSgHI;L@5U!q@F49g@Pppf<)~d~QbRVlF z?hnBphcfP^aP|0H2CnD698EpBe*|`%dd6J=Hg-AJE8*(#xe8og>mQ@3C-zUkj#Hmr zU1P5Xn^T*6$YXR3*!kt}oqh_|Pu;nD&Z;H%bzt{gIrr<~>hZY&T%Y@mXzHo&XJE&v zXWUI-W0!OPIb1zHH-qbQzXeS_v2O)CPJMbc_uIhc)Rwv54ld_@2V6gO=YB1{TKs8-%o`2W$A+Yy;b?pz(t7Yu3!Pc(r5qf#XJ_>fMy7q_Z)x?j{ zKTb=W-+-+vf1~zWu-X%}Pw;<|-jBbNsqJ?(HSa;<#CaNQp73YD)||EcJy;+0tkJXJ ztdVx>dx~B?asB|dzKr=JIQLs^j(Lt=J!75+yRI4YC$M9D&#f(fFMwUc`2D%?)0V%_ zdJ$|4?XJm7^nP3uZGWNto#vW|6aTMZ=M(-nu(f6{y$sezJ;z4PzdJC8@r;}CuY$e* zhrb3lUiRVZV13k$_X@pQ{Qm(i$Nv*> 2; uint raw0 = read_mem(a, ix + 0); @@ -131,8 +136,9 @@ void PathStrokeCubic_write(Alloc a, PathStrokeCubicRef ref, PathStrokeCubic s) { write_mem(a, ix + 11, floatBitsToUint(s.stroke.y)); } -uint PathSeg_tag(Alloc a, PathSegRef ref) { - return read_mem(a, ref.offset >> 2); +PathSegTag PathSeg_tag(Alloc a, PathSegRef ref) { + uint tag_and_flags = read_mem(a, ref.offset >> 2); + return PathSegTag(tag_and_flags & 0xffff, tag_and_flags >> 16); } PathFillCubic PathSeg_FillCubic_read(Alloc a, PathSegRef ref) { diff --git a/piet-gpu/shader/ptcl.h b/piet-gpu/shader/ptcl.h index 53b9850..0480ad9 100644 --- a/piet-gpu/shader/ptcl.h +++ b/piet-gpu/shader/ptcl.h @@ -157,6 +157,11 @@ CmdRef Cmd_index(CmdRef ref, uint index) { return CmdRef(ref.offset + index * Cmd_size); } +struct CmdTag { + uint tag; + uint flags; +}; + CmdStroke CmdStroke_read(Alloc a, CmdStrokeRef ref) { uint ix = ref.offset >> 2; uint raw0 = read_mem(a, ix + 0); @@ -301,8 +306,9 @@ void CmdJump_write(Alloc a, CmdJumpRef ref, CmdJump s) { write_mem(a, ix + 0, s.new_ref); } -uint Cmd_tag(Alloc a, CmdRef ref) { - return read_mem(a, ref.offset >> 2); +CmdTag Cmd_tag(Alloc a, CmdRef ref) { + uint tag_and_flags = read_mem(a, ref.offset >> 2); + return CmdTag(tag_and_flags & 0xffff, tag_and_flags >> 16); } CmdFill Cmd_Fill_read(Alloc a, CmdRef ref) { diff --git a/piet-gpu/shader/scene.h b/piet-gpu/shader/scene.h index e6ea591..56c1a86 100644 --- a/piet-gpu/shader/scene.h +++ b/piet-gpu/shader/scene.h @@ -160,6 +160,11 @@ ElementRef Element_index(ElementRef ref, uint index) { return ElementRef(ref.offset + index * Element_size); } +struct ElementTag { + uint tag; + uint flags; +}; + LineSeg LineSeg_read(LineSegRef ref) { uint ix = ref.offset >> 2; uint raw0 = scene[ix + 0]; @@ -264,8 +269,9 @@ Clip Clip_read(ClipRef ref) { return s; } -uint Element_tag(ElementRef ref) { - return scene[ref.offset >> 2]; +ElementTag Element_tag(ElementRef ref) { + uint tag_and_flags = scene[ref.offset >> 2]; + return ElementTag(tag_and_flags & 0xffff, tag_and_flags >> 16); } LineSeg Element_StrokeLine_read(ElementRef ref) { diff --git a/piet-gpu/shader/tile_alloc.comp b/piet-gpu/shader/tile_alloc.comp index 896bb22..fd89bf7 100644 --- a/piet-gpu/shader/tile_alloc.comp +++ b/piet-gpu/shader/tile_alloc.comp @@ -39,7 +39,7 @@ void main() { uint tag = Annotated_Nop; if (element_ix < conf.n_elements) { - tag = Annotated_tag(conf.anno_alloc, ref); + tag = Annotated_tag(conf.anno_alloc, ref).tag; } int x0 = 0, y0 = 0, x1 = 0, y1 = 0; switch (tag) { diff --git a/piet-gpu/shader/tile_alloc.spv b/piet-gpu/shader/tile_alloc.spv index 5fb2a95d8e1b071d84c5ab10b61220d063de0dec..66a9fd2ea90378fc27bb639f654d4095025c21d7 100644 GIT binary patch literal 14996 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 Hca8r8Iu;iD