From 958bf935467a9121694c8b15c7f10bc1fd4e0c03 Mon Sep 17 00:00:00 2001 From: JimmyBinoculars Date: Fri, 20 Feb 2026 10:33:11 +0000 Subject: [PATCH] More pipelining --- a.out | Bin 71808 -> 72272 bytes cve_pipeline.cpp | 16 +++++++++++++++- cve_pipeline.hpp | 2 +- first_app.hpp | 6 ++++-- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/a.out b/a.out index 7b85d9fc5498df369f2aeb4e0bc51435af347a52..6b96b74fcf10a38bbd94191fd581c35d16c0faa5 100755 GIT binary patch delta 16781 zcmbWe33yG{8aKZ8$;muR;v|TiaF7HUXp~k+B;tgljj3Wz%xX#rO)Hv^1jlhIyshZ% zq^*(~Du#<{OKPUvhEArMitZ3ZdyCuB^Znkn_u*W(|NrxR-+G>`cdy?&tarU@-Z{Hu zv%Yqlz9PI)Zf{AXRFz0Ujh4l&@jex&7EdiZo#5j=RxNmsrABgmT0v8_=%iART9!dP z@K<$MEk8*MJypDx=E;WO+@osg5v5P$Z=x@*R?#QvJ31AAhu+dXAN{0dXE{f!A&0!( zriZ?EskZf}X+6GZbieuTvoD`~srBhIHd^8q6FCjGoX$$CHs>Zuqa?;=;IDvAxb>1( z(FfiJ`6Eiw8)Q9w;9-zwQy!kL3SgR5d{}Rt{iDx(3>~5gWzTxsPp}n0hxhKd6DH!#1V4i%4((qg)q!)`iVFk5)!oEjDEhRZ%IyBrVwS(Os;RK$)`p-;HnMHu=(a4I~_a)GF7j4=6!K#gAE@K~Sw+Pk0g+C8O4Sx!+CW+iAI%$<(I8~!95rThOXfG9(D@ENwELGVMf_}I7 zx0BBb)eKSTaS_}a|8Vy=+$AZPHtRyD!9QI7Lbz)T2$!4D2R|B$-Ml3!S_+q{j;MpS zL?u#dFK9{4q}&rK5X6HJDF`^ro3$wsuENrK9~IxJO(>&=Z$#}ZAEU`T@!=T$zLxaG4RajQGoL{faM_76aoXOM0n9<8v*c zlP00$CoR{oH^0O`0^&J$&S>6})6<-{g9=qufDmIdEiy04Y3#j&vGDR~B{jrw-eWCY7y3e(Cj z33XedWZZKJ<^MIC&Z!h)Rg) zs0lMszEKOj#EvC@qak9l3W)r^3wJ7|7!AcEUAW=3YJmsbi!QixWT9zd^>ebE1Bmeg zCkW~sD2&f`!JQ+W@#!iaCx~;1GGnI75V>=xGyW1iG#Zj#cHufF2y^pY@Ty~Kfyb{* z?V}AeJlfBHrwi&vBY-Xede{YZCp*wDfSz(eJ?TrJ^*|LD)SGSsZPvoi|Go?AOOY)M zWC7}R{IL)I)E8(G&~O(tkmds205rx04W^Ai&jIc1f`-sfK>b?!`I}wPF!FC{psql3 zTu=k00G$GKq6->9Q-Qt%w9o}@O78+a26T}N8cD~2J^;GX1vSz`pzTb4{#7n$3ueF?N4sN#ag(M_PuS|PqJXgi8*h4=#X`q$(5 z##3LQML@${&_tRGbOX>B7qkOy1bPl=XBRY?egf*(8u4{OpCkv^yOK`T*!k7c`9?0&Uj@@pVDdseK#77wAqGv?q-K zx&-K97ql1Ifqnt>lna_gUjnTMs<@zi=qAu+F^I1V+Lt0@5MQ8P+Csr|=y~c3vZrQMSOwgxS&HR1?Uu@6J5~ZG&R-` zF+%Nhkr%pfN71{`IR>3YE@&Pd2l@c$N*8ntJp|e=4smut$5Z<_#2M&L7jzrr_R@0-fOKO7FTJ=ri$lFZgaX6rs>AS1R6 zQ|Gbfw)$2v5SrE4YzsRMMF_^*S@43=Jk;TED0L4U4z3r7*?K@}LLn*EkOnvl$w}~B zGx-{AN@*N*Z<(-=vqZIE{_DSVv*=1nyO1JPH|(*lkI*eub+6b|-R~a$m+tqJ)2&^o zm#TYY%%gf&+^5=Zp)FJ4zMpDfs%Buse;XJ{-*ig|dHud{yz;SuW)$4Laql-PgyVM? ztCe3vqt)P9RE6Zn3TN)A!7F?myr!sqfNEhIz0}<(zfH@#x5nA{v+iw&RRh>X3&}leBivWwMq%d2OC%=YaCv z?`)^cv=jUOqbAH60#m(Thmbva{UVmVt-OtKrjDI`W?PXdSBdkZH`21?=jnV}fB79s z>JcSxpng4C%imLBkB)v{;V@>lv*63m(vBWaN4*B%#^-8JEdRIgqtqG41B#LS)0^~u zlLwnU`R)R>&THr}t?N_;f2YDe<;-tt0Ky-8J&3zbwScZmZ;VU9qV%{X`nH%j$!NKf zh|FdD=h3nBF~04eQ60@!exqkHOd;`X*q+?o8S4Ye7xYp_^W6447VXKem#eXb0cJRZmPpi6lXqK&~f|zX=tSP2Mvvr_8G3g|Tsk7Pc9zTy&V5-cNhbBL5=o>TQsLvMBA~j zC&o)!PiX(ZapDF0hSIbbqP|x#vAstOOb*2Q02E4vywcmDq%11vz_isdK>YQ*s!wg$%hAxx2CkvXV@HBge> zP&{k!ZXd)}G2Mg{OA(|m(F;=DTgWuq$}2#5c}Z3F;I_k6c_KL63*mZ~PU6PgR?b0K z8H^yC?FFX5U2IIrLGi|ikN4t1pP>cP0Q0>1m||hUrtYRZ2-sv&joCij1ZRs(LBE;T zbB(RdYR%nHbJ9)Kn+}>cuX4=)#~VNMy!|mSW>tob*ry!Sx=hTP+PY)dVFRN|_~uG` zvRd>WfCb>+QT~ z`n=yZlOt#CDQ34#Z^C1c*?Puey{1^|!LcS$@z%WDAF_5H3!fCrfEkpod5VrVX{_fovj&1T!w7<2i}z%s0|VBA*5T<1z}v5a-E za#d91-kjdIwD4(L$E-ujzU%b0B|=wKPuDE%n}5Q~jIB^H%NJ}f8%zHsD-$rv>ZbB^ zI9^XleYZq5xYmnkbi=Xci zSi^0weLm3*SVNx7BF)+#p&?nh18Y4LFw)a_W zeBf=2;Z3X)7@T1Wg_#@AQ^$TWaY?_xi}ISlvQu!Fm%(dhYaJr*sAX^lB3QQ@9Hs6T zD)0BK?wwy~Z@)IWpRdu4emQtcmeIctMps4u)^aD>(f@7#CfA&6z`nZvG-|*=$ZQ+X zTKDS}IyWF!SMf7-8(4wY7vBub)cyD~83sM0n{$~44C>PA;?IvY`@$)8w(qO!>hj!| zHV>NVv-6_E0q4rEU8DFHn#d-~dZ9D=W&R7D8y`dUwzgTeJ=q)`bhnrFmNJ!UUwB#` zM_z-w`YWi#7HTR#8CbUd8uc3-u3L7ECJ%mEck~ji9{h6TGR-!@kl8j1HbfVit(TQ+ zKhd3G?PzRH6Q92>s~+6CN@>GGWh1?t(?YlLB7K!JK^{o4L)z&UUZBB4B6asK(Ci_} zx_Osr`Jbp_SVm;wPpT6>SN_MOrgzT^sze^84iEDgtd$;KrcuM2>u#Uh zT0C5q@qTsQh%k9PRgQRFx9}{r897Zh(29|lyvLnYwNt2MRCv?-*e zv;-vSq_X}DZ5?H59Cq5_=v#he)&+C<*#cj6_9_zH9A#~M_mtY3bqmmbXSdF!CAnD< z3xC9hY`vOg+h)pVb4M_uE!OKw0^Q2ZYIYTh7W)*F{(tyqPtkz9De_dR$?NF<3XEub zLtWnT(HXj`?ZBWqo{%X5ay^ECSRq|v$s$0_H<6}rEUQ^Si9zCXi8 zT?#LyLnw4|pXB3TVpLT|CRiW@6Qy8?JQwI`=M#RsTgl)F&FfC=U2>tE9w zlaqYf9ObASQucgJ-%O6yojXRqPVQ)E1A7+h@0bF-Qla-P*1wcrk5bnu-BW-69vb$U zUP@=E?h00Gc&4LT!2H`C%ZybUzf+LzJ_u$Z0_wT|D`ye{`=KRt{Q4XZEpX4()e>9(aTmjpCSv_>JHb?!NSeD@)|fA>YI*f=o^b^=&_s2dXw^; zU>N&S9-*{X4FMBfpj!fx`_hnC zpYhjY{HR;K`{Y)%>eX=niLJP|GEAxHs(d=|>JD9X481nzX&=LGb#;I9FzuPsRM+TB zzD-iY9HZ}W_{0^~9Xm`-i_F23zCiETv%OTq{@=Ewf}$?|Q5tHt`+w4sb`_=S=7-RO zqBap7F)p0`KJD_HPF?4=)s=rvljg?j1_>g!qQi6hCj7VyD|Gr9)O6XcvHq}?d3T%$}dig*zh?tZGI+m`H|vu zvu$P&hMOh!mVyyqoE~i4$=pZarJdwo662X-gvHC-scXrbx<7Z&wIWO8Xzd6+Y+(s?uzbE_B-uVvBOA{l8?)Y1+pSO{3 zS+r+vGicq|LLJNAL4Vbj_2{;1E6a!CSpAh*-gjfZHpHyoV1`(%7%vgqAz=Lq8*6bI zyMrc~t$rqM)_YqiyF695WD6}XkMr2x1h$9K-tv*UbJf&h!C|=(-B>VAw_y|YUzjgH zL;Ds^2>!5|=ic?CyI6#?toxNl^z5QiIiB_`>Rjx;2_tdUMrYq0QugCHOFi<(C_6Sg z8T*uHx3EtalzpH$m~vkaGFwmZ@ECyeaA&iv@mTYt8x$`2xIWo3aT&YDM^8Opw2kK2 z+N6_*u!(S&^7xDlH`_c9=}kdgw(aC2hEn>eIz;b%&gVSco=sFdJj{1r#iOZ93D(p$ zeK+tb(|$G%z)45YG`qW7H}$|f-nzsTgloIm=AYZ0R#I34TnAIdI~sJZ zxwIzc(T%?d)mp6RbBFR3%i|O%_BMWjP`#0wFK*I$8v@Czah32M?{Lsn+3OvSGHi)_ zU*$corkX}BZlhbfkrpmah}jOKW?M%y?{2>+i$oRol$v!wc^|#UhV1UyDRh2uMDMvN zYEV)Y8w+3#D5FJ+4u?G zFPIDq!Q(@Ku$8JU5trA|6njGCW;Crref_XzEnX3942(*Z)bfh8wA0@DnOl%>ws5FR z%U{6rYlGSPgV}o2f_ZKAtjj?}$viho7q*UKU!T#wAFL$Z-6I=ylJa|%cy`18 zf|WWvn{5NUY%}#elWLNV*q&7utf#}TrxmAj1gzPGS@ZQ&=6eT>Gc_jtaDxhk%$w&ECN`WguTA=Kx1neDLHE9ITzXKh+XI&N zK7kf34Q@XGcAZ||LwN8kyuN|w$6ni>O**11T1N+$nmY7HJNcrvf|te8{a$$Sp)DBf z#0_6HV#--zU`~wEe?2v;Slo6E)XabT&S3*wc6sM;b1j{y2rr%!C`oBAnC&xuOB<9n zaFBK{$9sL3MQ9?w!a= zDG1vvjDUKbT#Niyq^03^b645Z#f(>I5h7DEd%ZR4~OFlX!Exn zj%N60Maer3M>gI=n%;FdR{KiQ6wn+$N!kwD%pX4}dFnlf<2!#z>iWLJu>?1t#;Y8T zde9~xI2@@Mj~37h&>GMfY-&{>IUE~6e*lfa74YcQKhocHF#u`8iK}$Y%ICi2T z`G{FpZU{PuZ^qT2t3iVht6H~WFfbb*0I223qL-vZtZQ$8=7ZLQreeithnDAprh-<0 z4g}4{w!R895lek2B2j{!eFFoH@rkywiH zP=SXE&|FOJbD-Hf;SfTXjo~vEA*=loU4f7_>~=T~gVx~6k&1|2Jcy8k1|4-cIwN96 z+{mjzFaGFo_#tA_X+(%y3fdL+QbDsp^Fhagt^zGCWX2gNf=cHcjso;m!%t{AzdOcT zhW&7$0&iG~P;vFo7#pat;flkNiwa7vqANfvK)(a6RnQ`IO)e&MEocd74e)AE1?8F> zh%mZJs&_c1fTq?vnmQKYAs;|3=qk_#(CnKIhp7?uSlc?X=0k_0HB_VwPguY>!XNI% z(!@pZfy&pm%v|+4!ow^r@kyuve=C7!qaU1!WtQNt7Pm@the(OYSK+VSM|5j#2mIzO zx~ij2znWgCiqmyoP4lbbIlxDAs^C^OS0?Xf`b?ch=gkmUXpeFrE`q#SN@lS!9 z#N3sBu(nDr^<3bw#NDoc-EFCk9oP?R_3JQdS*D0G*SBud$mzg9R>^+k0H6MNVtme` z8Ge+otucMFJ|Vt|Q~m+QNkG194WgUMpjQOF6|8rKJT}Dpbb!h$T--+8HZ=Cx4{iuI zYZZ;$(8imY{sW6x9^2*>D4;|xbzh)g;%3)zkF3JbIQEUh5sha~jBNv^ zko;*#V?ACpIXOJs&VggBrMOQ!VUXl~+Q-L&njDy1dZO*0_V$f|+aEzrKhT?eH$}*0 z)N0eq7(4H7dfE31PMkB@i~e2|Rh{fx2(NmvY%?z!RUM{#>N}cU-P>m;){n+4wv&!l zcWdnjsopGAiouGW@L1r!L~nO{9RZch_`8S+>-RmyZ|?1D+~RN?f`j^|o?>LYw>iGm z@(PFJHCDd|M!+haYtN(tUyXc5}#Lp^Bn z)}*#A&^R}?+Mab9~oj`AbpKPArkp8ki00hvB{rf*m+;ODTR^W`|r}DPdP(zl+&!iMwmmheNFl zGDW8xj>Rmql-6wP-{%UTe`EBt2V37msL8IK&CA(SSk)I{wPyF7i5DItdZGrnJDUq| zr}Td&_09#h2KHKkuRn+VD?I?x67ciU8vMgv((eZ!;VRXQ!PLt3MUe1wS1ggJ zZ^;?j{m;h5H4v|cxNvWgD!xG1o1>cxL(tx&6nY$~eGV$)-}YNJ>{nxXs@_JNhK zW5Tmq`h^`XS2Jd9VDwEnGY|lc-H@j{t@FLlRfSgP~)W=i2;$W4G3=RMaaL2 ze*2i^aS)dv#BOi(+VQR~*dgn4&?ydw>}7E8A*HmV4?jCNv=w*MVE4D(q}SZ7Zqf$X zeYqQ!Q}+@#>03GSo=*DG4OXG{c9`sy4A~U-S7BM63v54n)bVzN91z|51!=Ji=6kaH z3t)g-6}ola@=pFf&L6ExeeesZPvy$$AlWOemoUly*;LcOC(8UgT~1Cu|4!JoTtb_V zMg>1073G^Drz*O1G)k@}`RfGy3OwoSDE!pE-`5Gj6~|OQuQ!|uY1!9N!MV|D$+>~9 zq_4hyUM{5IV^LTbla5W$B~l@%j(;jm zCu$856&4j9qH*V-4a{vI`Gg_jVqXbwgyj6n#)_TnSXlTK(B zsz<9#K74R`06a))it~{ncGzBX5@H1=fi>BeG_pXWSlZj>Y$VMltx zP6I5kZzY;2W#>oIOiiu9kTd=F|Y3 zKag>L#!w)ZJ>l%wy=59^*oRGnoI%7zRM7MH8Qv0bgiJG04 zH9R|81&(XDowXviYut*ZD$J)KPBNW1W00dckLVNv%er96x$CJCxV8zIAtIkI^7n*% z4dnl>|4$1UKU#Ly5D|?HT=d^$)fyk3Ib{j%FmR*ME6z_rFvUfh$y~WqalU$(Y5n=}tT)$ohjOwp!+be^>$ z?t#m-<}Xmio9I+Jn>L>_$V)iSn}-?AmYv@+w$?1aZBWO7^RpGLyQFV{v%FFBq`fBJ z4CgME(n=F=niCf znd7s7e?# z4~}Vg?HCp3OCYD5Cv>T`s%DT@ zBF59rvg7Pl$=b6YOUTLn@_~cAo%G{(?8aGHA7%8ez$sgm1eQ21g0?`^CM|WUz z4!FDzJ-L4@qGhPpE@ZZ7BQh~hRpom&r#sA*J*eMh1AaHfc_)!)iX7izUN#g@Gpart zwJ5)9}k0F3nK^@q0=I)pJX59aL zw^#-ShofSVD#-V4PIe0ZnLp0te7ndSM2@c@flTH+VrfgYvQ%v`#Jmy7o8&77{3r=| z#H&~d*rDp@Ro(zi#-El!CPw7lMV`%hRz41bET8*=D!4?GuLS;g-L_4Wf6@n>GOrq_ z>gs7+^g&0-Bp$R|Z!&$;^pNE*e4iw|J08RT}HN2Iq=^`G22CkXB?jhonC zHOp_yINe~bd!rcWvPJh8Jc+ML-FxCm)RH`qxoB&H*4EEeRp}Gp+}0;IVY4}dED&(|0is?o#jC<{TV{_je_aM?-sJw z`EPym?s>P+*^~d~W7f2~5ITP&Z0kS%xaC`U+Cv^q|Ec%y^8ehd%296kO>M9G;2ncK zWxI}kuMZAN@6fY9+SVm~_PC63vnP$Act_{R0coTDzgxWHqPM(BR+W?fZX%L@-&K%ZsfUGJUA6rMu*77a&F}ZA#y@x zP^cVKc`-yz46f*;@|`rhGCEXFXmqiw3Oi|&!Ih&!<#-?Gf$0HN{v%Y*lrL6Zf_Sj= z-s7b2R7QuvO37N)ij&3!RgMmm<^{{TUek`h%SB>EP|eCW0|MlG%_z7*@8Gf^$%Or(Zlo205>wP>e;uUZyC8sPuVV`}+% zn&qP6$7q?T_nUq~Ej^{QRs1@1F>K%V*c$ zT9!C|_#aX4PLf+x1z!7YF|Bfn3Yi66c4LJNWf}3pc!9Aw_&<-%I`tJT^nsgRTut%L zdhr1zHPDL_Xab(A6=Wk7{bJdG4&;dMu$+cAP93*B^8PIBlqm`0-(LkMEtW%x~ zl;`{O0W=0u8Sp-e{0DSR7fT&Ig2WI7-KDfSP2tW_+VoOddsC4tQ}QVCgO>mD^BR{R zs%{WOaV|mPG{tnIqGlBpyNnmdD^2uQl-;0k*I03_@|>cmEK>3arF%teJXL!JiPPyC z_(a8w$x3rhl;jpGwp1j)Q4oXDQVHi&?G_|1W9~KXL1M0=tbxK5qWOxwbVyO30b|#? z22m9_&nv?9c=|#yV~?VK9ruiO>Vm`~MbkG*Pv_SE7a;4SZmG&~c;;6DgkQl49Q%MKBV$qX_$hT0q zcdY0_1HJWz`>uizE(8fXkE;QhrxL-BmU-)Qe@6gvZMqiRL0awG?kZlTO^q-OU#nB` zIE~+q_to^&YW#T`zXUu2^DS|S3TW{zB&vEE3K^PN>6$=Fd9;rx(PTfr@^rt>o@5T` zOXos9%vGyJOoOprf--@_0HsI1>cOQPV4Ot3S(vHSvqt|JGf?srmT1_U#cyN6y9=*r z<=slzRam2ybAo5M@tUw6Wlkb^`*WSvzR=@I2`09WuvHV7u9UrnO07IWDSHV=weqWH zKY@WB!ngLaQtu}Gq?OIN(a`52{H&GFe=-xE!9Q=clXDb)XJL?s2IMFTorGYmoE^Oe z11t$GQ08P`SpX_&LyAf(wSlqY87cHtXpA_E?uEvRZ7C#7Z2E9;LD0`JXHW;602SM#2z<7=WZjV^TXFK5b*kgRI zipMC#9>iRcrB*0;qGm4R^QmjNUVNEmh3hFZ+|#S_l*-6~DbaeM>wq3}K%MC{&{IG! zI-m{cPoRGQl^sx5Y8|1cRuP_FPaIHp8XKWEAP$};*VF1Fx9Uk&$gF})kOS&X`+$A{ zG|B<>rF%f{0`2I4Hl&bddTP?l)63+5`coRvRG=dq&_G%ObTQEB4rmbV0JErq<2j=jQOU1KN_tHrE?kJ@v96xSo0D=hkF}%qqwPIiRt$59k*_ zqa4t9x(7`!IB4qVP}`0|BH`~y_}c+(Pia6?fsSxMJJJ%Mi-AseKs(b8pxc2ia6r4z zWuP@cS302G$g2hX-2(o0KohAe&@Mnr9nc;$3uq?LN(ZzTtp~ae=rISh51j^j3g|@# z)I@&*{R61%fTmFEDEK=H{&ql9X>63^<+5vPs&;<_YIJyk9 z2Ixu$G=sci;O`jt+X0t zaS<*H*9n5H`Qq~ExPA@V*_sb~M-Zm^g!U4IUwoSW&(=Kh?Z20sK35KWyL@H)paz4# z^o3ROxBs)*OxA=BQv|_eK58-_lqWM{>1FIV+0@dxc@&s(0!@~Hduza9O&Dfn#;bBu zo6RQI{b93lqX10i!*UG0(AC^XP&Jy-X-(s5`nqdis9sf&w@OuD`s;79Bgwg2t46DS zQ>;mNCL65CZYow9_ta!B{P{Q88?>NXEB_!>whsG|*6xQ-sJ@$jvqV_mN>%WdMQwcS z-xbWJ2i;;Dz4t_EyyBUHRutboFy+%CrSYbk>`io9_1zd%VCXY}+mBV>EqLa;#%O(> zs-cF8yN8L}Xjk`0v4AdhZ#k-x`K<|w8BcBQqiHZb)!THhZcXw$p*c zK(UZ6CdP?F$So;OY(|}vTJ;~sQr3i{6Er=C6IJtD;$w6@0!o=G@inXJtC zxHEm%qeJLlIFsDjtB%CRUlltx+5LD}j-%E+gHt}`fUzbteNAoiCI(C!I#r;xUErX6 z`xn&#LC>rn%0s7Wz|i#!6hEcXo-x4%I5x-$=(!w+%pv~g(A}PsJa%+a4b770(WqX= zM%`GkHDSEn*N5d(RNSj+MjFSHHQ}>D)wZP=5>?j&o`r8H<}5ajkl*Uad$hqtS&695B{|u3AGnG^7eGQiZ-4 zrwJXD-B>7k7=+$Xg`N~}-Br1YyK8~dv>{71-;!%O(3;*+`i;l@hc#4_f9 zWPvdb5h}aaQ)1r$+Sk`rdhx&HV+w3*?fUyjRE$AWatXR7uR-Q8Fu$P4ZJY!HcWKfC zh#7J(YTd7U3k$KF0w!fqyd#hAgRXrgmp*{1W?-u8*%P*6hIGUU{#mRAn5hS((5zc#TkDY^Z&3%>($l+;YO}GM|vGxxUlBy#PbFqTOV9iyI)MojzXfpqqGg3al zvIs$oU`zK!r^=N1end9c)11}%+?7u{eQW;)u-n8=b`ij!ycRXbb=1LE&-Ur+Y_hsWJa`G-cB<q=CkAIr4)V2FPMqHKI4FsqF1n|brDQDJ;@F* zS#(!;x)xStyV+{BZXMJp_+Zm1lMzrybeAc%-)rLARMGGKmPgo$=HB4NcsU#K2$y`HYQ8C-x{Df16Qjwp zM7Z;z>~)`(rS|kOVbJy`D#{(o5R33bXW~LdWsC%>`t##96 z)@WHEo5ZV@SHkkoi1IDOSluk1A8GgKY}&36Gx}$;3^4|!72eDFF4gjq@BS#Ix$orJ zcW6U@g9Md(`!|!?+@ae3O(fqt^jCkQc$=CHh!Brbp8=tG`7w1sIJUTz1G;*b4C20+ ze^)y3J)Iwr<~~`2ZnA#DGCqF2jQ&t#NvHDzqhiW#!HU8vpMnuEIR2c; zeA8sEgX?Y849$-7l%#f-1pckbkGEE%RLYj1oEQ3af@6h!@{X{Fp4UQB)qv3b?_DDZicaCg>hlpEg$dE{B?hRTzBtr_jPFIE$iTCN{p?##`*QsJ?XUXFy`ekUR z<{8(YNuGvL>U=p^_l3jrX&N|ep1bLq%?9HNr{1D7!-B=lR5z?6#wB8S$G}uDTUsVt zzD#HDV7y(;_vJq+Yj_775=w`6@tTfSEdIvAb3O$vZ_&fyL6YAs@)*%UO8Jp`jd&%* zPt)Cq-D1gs4rK^U<{#zxSEzVQD{>wg?7s9T)q>eK>Dm~7aRYT786ma4MiWL(6ED#5 zk*y?`T6#P(L|RZwfuj;6@h3_f)i3%`tuo>ZV4H0Ek)O*m*iJZHZAM+HT3?|9qk_dU zsu?vL?rS%?mDK7gO&q;mw5}P`MjCg8;>Pp}d2(5`;dS)rIZM587#Y*Y?eJBV;~LeD z32^^TD=qnnY-5^AFJCSX9V?3BDGDDKAU>iF<5o*9HFR{`Y_WvekH6-2;|EoGABANE zHSUFyCEMr;*K$ZFTi?h7i9aW|{DB5%7z5wBWV59eUeCE|D*PeaL!G^H9$7QYf%8$t zgIU)AzO|3)pVVqXvccsdwqNs&WXo=27OOjsfKD~vmOr7@6Ox-ufncgN)9Cz<`q7u@ zmkF8TJ<6E)g4b`~+0`DdyG9!(_L4e&OE)J*h}X$&QiPOriCRw@EKTo9%O^zz|M=}Q z=7#WyYR}=i$g6Z{QVL#l`%F#{OR4wd<>EJVZ1QY`b%!Z!#0r`^C0iPFj%uci6dzOj zsU!TBo@c)=Hu@^-o&557dVlH^Dd;RUm^QF;4p*9SPP>wf)vCo=W?c|wvZlvj|1x#@ zF5AmwNsKdDvqbsza}G=9l5T6YQ0v@_%$C+1+dOxAg>@-c|+@l#v)9`8?B>*Uj@%s<$K_uq?(>MMYG&q(1Ki!Of> zjh+?VWbJXa**G+W<)3|@ZFJ=$+U!%bVOA@#mQK&=fKk`YPL%W~sPF6nDJ#%PJ{mb3 z_I>0z0OcBJk-y{Y95TB@r+)M7xy<1?`5UU8JxGcOq4?Xw$T^w)ra^6CRnGaeP7kvEIe_@@Kz#1y zkc{EBmK}BmWa^ZOqfp^RoLKhwtG2d{Rc(Efxh%TVJ{3{^c%SyUm#MN`wo9o$RMGVh`R$7%fH z#?qR7b}6(TGL%s#a{D_0Covx1@!k9C2Z{x5DB1Ak{2sDe1l-x20{cxVkQl75_uim!`!I--{J6j)My`AO!`4 zbk6ByzL+Fix)|dhCFdW)TIqinEP{+P$I{l~@6<52N_y#Yx{&*#c$s|j;tZ|WAd9Eb zRCqkMr^zzU7txj)eP7;9BlCLtZK&khr{ILoX-8g^%jGa=oLfOPd2dOJDrw%bE8@E} zXnCCB_UFu=c*ZLOL<6M2fBp$r8T#GRC*O(xwW`xT-pMk-A z06S}L5}SiAnarL>?pD*?R9~1Vd6rY#6)_ElHHPjxG;zf^DYJ~eT5(L=NS4>8NL_Z) z&#z^PCuq{jX?_u9JoRqJKf)rMY(6A!q#su1iyzZ?bH|QveS$!Y``A8oN97@SPFBzS zQF4b}_KJh@UOe+i^(?p9d_w8v*ArVT*})UNHSdJ+$D!V;>&NF&96G0(R~dbAk2P7m zN)zeZ*L(N$gArg@1BO&w&k{K}FCFF)Dj!@EtHxpFPM0Txh0n> zO+1$Cw*lq7>@h2{>ehCnrmGAohr6*_%o}+xGawG-<*MaBbY;H9#szA%C+y=_2&v{w z?gv=C+|W0ZIn^0KtFv~cWvl$9quZ3%2-{aRlhU@+*;VbE^@dzsCe~HnX5x5BNfmD? z*B56wn(OZU#jhJOtX&)8kEil~V1--@Kg&NLtNR)8X`f`D?s@iH=J4DBQ|X^PhwIXx z;z#QS?xhXZ!7a@_vHTen2PEvmI?sMiKszQ2Zo<4>2Jr|*UyUir_bR}vNQ`%13SI35&MbC=VJO8((xTNpk z3$a>0Qc6!&N4D{Xw7nw@96BiB`Pqx@x@mAGZoqVRNn@$^HhT4qxviH$cl@I-#V|>b zn}4J{JK>L-vH{N~%V1Z_Jm=o=Rq@9yFUp^7r=X&w+9UjvgJuJ<8ZDSS;(?nz%kNE&9c z&iy56Xws0Oc%Spn7bx2Mldx3lWQ2nGYN~m%F-&%Yzf9&!dq(hDV1BSa3`afL886xS z2pyK%=~lM4IuH2#(F9?DYk|oc5Z6duCGehT?vJUtd^>1oOtmhFlRxK~qcYeVVIKJd z#`zTm7Eqf!3A_EjwXj#|UKe9(r^jl;XaEgwR^Y$AH|xxAarhFRG&U)BT+;Z1N^3vK zFTqAW&P)X5lUIt;7e~?TX!#rH<3Ye;d*`SYDR++BAC9RHhwmsa-J&@@u&nyALM#am z@9rwN0k@BAqOJUQ(s`EG#=I%++7RSS9XD^!`~?<}_2YC)?&pMVN$ zZMICDy|O_sf^G&)Zy*TYf^G&)dB?Pz1?cTH5zVH%+F7MlH*|-D*Zm`)dfChhHvqkw}{6Ket zw%cU0wL<_+1lp_hOle`aYwh^FlaONt| zBG5|4;i&6Qx%gNEo{Muv&p{W1)`MOEtwMDBqsO(NQJ}t9M!JAjgRTVKi5>0_Pyy?D zHat-TS_PVp4XzzLP!GBa)EB$-UC=5}S64LrDe6Ieu{kfu#X~I~4uMu<`@asCRbzoo zg{#u{VF*C8_M^veSt5?UQSej-4&RxeMaONnFnDSME(~iyGjN;w6*TW6hJpsAo?mu$8S#zAw};vw$`n{5onDC;tM4w`q>X4{U2eR1QSjE3WWLQJ5+tn1*z zQ0%+~KG4KExE4c^4r)R<4>SwqqT4oGHE1>Hub{qnU=W6eUuum2%>rEj8g|#_WZUjX z3%5jyBj|%IdfkSVh%VZ-Mv5$LD~8d? z(ifz4n`m`uj8wge_LRnmZ_CZ|#S_@+{ffLo`#>R)2SYM8jz)aGpk2wzhA( z8O5fWa@M_>X8^D`4QmC;?VSQv0qX2TeLjk8v1*OYHjj%n@Q!yzzS9axNJW{i(TRw! zb2vaapYo)=WnonQQS&x$fdk9Mzn7Aa-NW^Pa11FZ6En)q>hU05~l z0aUg#k`8_x?tUE`u?>^JIhO8!oYFiI?QH_Tb3G=Scb;>;!w_TxzlaIigvNgI3L@v5 zPhRm@j3d-Mw(q_R4d0m%QH15NFUwbg(L2%JZNUUA3RCFRdHQ%~ihDZNfIt=-LQ+{b zcO#@ySSplK%7UfM7iel(ibo}wj>2x|iUx>~WcQDXY__G$MdZCJSoEdnT|M3JR@!V4 zY=3u(DQ`ya>}u8~3w$oDJQBi)I)^SO!xaZROjrxLGEZZ=y{o;)bSx#Fh&kuSI%-*- z>|O;G-*Zzgw6r|fLpZAbeZ={Zjy9FYdvu1qPAq*~M_0=OJSHEr*+RK|Ku5On=pMIG z-U& zr?I*`onw#2K->tP3s}@%XP#H6+oyxP3jjUAShi*>V(7h316y3c%2bP`4ZVMwIC`tV z>WU>!$I_3S>4#6_bMeic@DaqDqu%)t7I}xE3Gjz|#vh zB!k~Mm2C)9=5G^}dE=|SM0-99Zon&f{UsVz8WWa^nm-_w3HQFny^-P1KHk1>NXgzo ztDXALhK~YtMWR&ePJUbc`zLv{fm*TsTcLPM%Zs6;qn+F}@5?~APmdf_7LG%ib940J5U9qSe2AnI$1e7n^+ro=# zV@|r;zX{ApDL)(Yu}B#wT$9?uDo*INlDa=v?*Ckwzry5X=buSiPlWnSU!$UYMd7rQ zE}aM!E9tirv0@ZOpA5z4$H^yS{nnmR>#^=BDTB->L;X62t0l~QC1ug)CkKf5Hu_Yk zIEJE6O%tb=7oY0jMBl}9B-iSlhMhd;kzQAcumDuTBuS*R)p|pHKNTLS)h>dqT$@hf zS-l}KO@)tZJ?I8oxVDPoQQHoeM^3z%aN4NVPNoT{eOs&Lt%;L2Mu27Asralud8rbx zg21air!`vb6Aizq!op<@zk+KhCtjvGB_dSSUOYrw*OOF~7e!9HwAxk_eomh}zlVzQ zvc{lZNxWh?RZ1izjf6PtKD!5L#-(I3$9drp+#~VlmwxXVE<)- zojFP2G6?qHA=vR01rHYNbIXorD4&uqQ1T<3$KM7gfAnqtP&Z6tZGx4(AqFV@4He+U znNwT-=-rTx+6dI<@lt~nt`Z?z`Ko>w=kc|g2H%NlC2!H3Jly%T(O3wpR?GIhA%D(p zNJA~RTRlR>OSS5S%E#{SDEU3klVd{#Aq;wi=k(a1fo-eRY+J8s_!C>xzxAjQ#k&W^ zVWsy&wXi|u#>7%m5^xsE(-w{|H9S}OK7X^4pW)na7o6N|Vu8w1sCBo$@?(aXoEvhn zP%@A2YL&R1`Zg=N%!?lQ|@J1K8p-Pj@TBXYH{?Dle6<^eg{giwhJ-nz-n~7Tox8gfo<=}%Y zry>m(wBBL-m2^$Rt4FEjuQWWu7ka2nYLqsUpP(^)wpzufCr%rID??eNmU$oMQ~{iW z*8UZFo`PcQW<9J?^rEs$dP6ksJ1n24Es6Uz`Au}~k{&Nuk;h*L54XJ`T~!jN>FS1H zV0`BQ6*#ToLn!HcyA#moeenVw!t?{1$u5>O>1#W1A z<3)2W>+uyL=NX(E<_4)6;>;>1pP4xwRd{NY{GpNu(pgAFDS3M(&r)){7{08JKZ`>S zTT;X)Xe7P_ar&Pf*DTa_eIb|*Tw!g<4gG>u*`32x8NT>&D(2ew?OZEiKG@?@trT_v z_mlp)itbl52h+f-dND=G2P-*70mvrK4ZE>uvVY>V)kCL^#Y3)5?u9ck_eFR~ZA!1% zvsA<5CaE~zrZ^qc@M>*XDpXjwOV`k%3nkU+4J|{|7Hf;tO8Z1kCY{BH7q5zrs8XQLubUBFShsv z=QJUWbf*KTovcM;QHBch&6E>- z%~vo|NpEU+#zM8Md_RZBO5kjv{Z}h$tsoo%&SR7{SVj091}9sXI#cXFm&s!gseQQO zjfO(~YbwCkRZiV0=_kE7T*;>^`9>u_qvRp<0cw+!{5{SMyPByD`)cmi+827$S#V}3 z`727klJoddtPX5w)ljuPZF3R62L5lub61gVNAcHr&*6NmlE1>a?ll}A!<6-XlY&-o zZa4#!+jxH0`&p^&ja7teiw3F|@M|JY^XUMzujgD>4jw;6Z#50Pp^v|+$)pccdHKx_ zr*j+jI%1>tJ%^ZN*y-)ubIL$ z{%#tcUjFcA;|6rWmPoJN_o7ekjW3V7|CLxiv%XJ*l42LppT4*^h>9BqP;et(`sPt; z$yyiDOX}ISB-BIf;54}7c)C^>P~PV86(`zQ*O0p14JbGLe&2(-{p>;y9(YlDKquxZ zNpKM-Rn)nNTO}$8^sfl>5KBbz4-Tg#{`!&`UZSz0%1bPArYcESk={_u5XGpHvPNR8 zAHOu_WT!8bJY;wb<~=7nylpT2S&3a6{7;Rg0Y-@+oPn7u)!GY73j4?k<_57h_AXa>bQY>qTET`;DNo zq)v}s*-z9}CDB1B+K=edOJ<<>^ww)Xp-(R<3leQ!>DVSYu}9)d_8G*M?i+3@h>#Ig R^0Pr~F9|*+F~MTw{{vei{TToN diff --git a/cve_pipeline.cpp b/cve_pipeline.cpp index a5bb23c..20014da 100644 --- a/cve_pipeline.cpp +++ b/cve_pipeline.cpp @@ -36,10 +36,24 @@ namespace cve { std::cout << "Fragment shader code size: " << fragCode.size() << '\n'; } - void createShaderModule(const std::vector& code, VkShaderModule *shaderModule) { + void CvePipeline::createShaderModule(const std::vector& code, VkShaderModule *shaderModule) { VkShaderModuleCreateInfo createInfo{}; createInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; createInfo.codeSize = code.size(); createInfo.pCode = reinterpret_cast(code.data()); + + if (vkCreateShaderModule(cveDevice.device(), &createInfo, nullptr, shaderModule) != VK_SUCCESS) { + throw std::runtime_error("Failed to create shader module."); + } + } + + PipelineConfigInfo CvePipeline::defaultPipelineConfigInfo(uint32_t width, uint32_t height) { + PipelineConfigInfo configInfo{}; + + configInfo.inputAssemblyInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; + configInfo.inputAssemblyInfo.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; + configInfo.inputAssemblyInfo.primitiveRestartEnable = VK_FALSE; + + return configInfo; } } diff --git a/cve_pipeline.hpp b/cve_pipeline.hpp index 4fcd144..fa8c2b1 100644 --- a/cve_pipeline.hpp +++ b/cve_pipeline.hpp @@ -7,7 +7,7 @@ namespace cve { struct PipelineConfigInfo { - + VkPipelineInputAssemblyStateCreateInfo inputAssemblyInfo{}; }; class CvePipeline { public: diff --git a/first_app.hpp b/first_app.hpp index 8c14bab..b7b7cc7 100644 --- a/first_app.hpp +++ b/first_app.hpp @@ -2,6 +2,7 @@ #include "cve_window.hpp" #include "cve_pipeline.hpp" +#include "cve_device.hpp" namespace cve { class FirstApp { @@ -12,7 +13,8 @@ namespace cve { void run(); private: CveWindow cveWindow{WIDTH, HEIGHT, "Hello Vulkan!"}; - CvePipeline cvePipeline{"shaders/simple_shader.vert.spv", - "shaders/simple_shader.frag.spv"}; + CveDevice cveDevice{cveWindow}; + CvePipeline cvePipeline{cveDevice, "shaders/simple_shader.vert.spv", + "shaders/simple_shader.frag.spv", CvePipeline::defaultPipelineConfigInfo(WIDTH, HEIGHT)}; }; }