From 905b37362d254765fd3640bf8b15fbcc1917e8a4 Mon Sep 17 00:00:00 2001 From: Quentin Decaunes Date: Sun, 2 Jun 2019 21:00:57 +0200 Subject: [PATCH] Added gfx and soc clock frequency in the experimental tab. --- bin/WinRing0x64.exp | Bin 0 -> 8115 bytes bin/WinRing0x64.lib | Bin 0 -> 15124 bytes bin/libryzenadj.dll | Bin 0 -> 15360 bytes bin/ryzenadj.exe | Bin 57344 -> 27136 bytes index.html | 40 ++++++++++++++++++++++++++++++++++++ js/app.js | 9 +++++++- js/methods.js | 4 ++++ js/options_description.json | 6 +++++- main.js | 25 ++++++++++++++++++++++ 9 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 bin/WinRing0x64.exp create mode 100644 bin/WinRing0x64.lib create mode 100644 bin/libryzenadj.dll diff --git a/bin/WinRing0x64.exp b/bin/WinRing0x64.exp new file mode 100644 index 0000000000000000000000000000000000000000..0aa76f87bdcb9937579620668a9bb1e7f86ebb44 GIT binary patch literal 8115 zcmeI1ZH!b`8ONX9p@2XwP*|YlWr3ya0^QF0&LVVQ*kyMdSe9jB2UuQ~oy#)qu(Qq# zbRi^S+Sq>4nCb^j_<)fp8WL-wu~kzw)>>m#G*vM%u_h|UU|J)I{Xne$=Q;P>x#yls z{N%UZu;>2o?|II1&bhD8GZa4ANWXdEYuQ6fi7KSFcBe2=n{W@X``rUX1?+dsRcr>k zZv1O6IH%4{wH#2C=sWX>t}M_;YTr$Zds*=q+R^}V5`Sq8KG=V72L6v{UYyInz1?(xj?qCnL8Ek>mQx$8qp{-jNO5{9I-5?m7fL1CHFK_5Q0?%n+Kn932eToKD1q;z6tgrQO`kj zi+UM~KR6M(4Amp*dr%8SwW8&ZPlSE|#NT(jMJ3VlI1zdS?8Bm>X!}LI z3HFev8rt2WZh|cq^%~j%QE!1Q5p@Oapr~75_^={!H(LGxM(7V<4~rT``%zJEgDn#^ ziZ&`_tI(T<4X%dD>P3pnNveuU;N{lupY8lviQSYJ6D=XLrQO)o>ENV5_Mp1Xs9#K}X7G;IsQBf^mn?#)f z8yD3I_L!*8fE^RH4Q#Wh8L;D`qF}9}J`Z+6R1&OBR0-^)s0`Q^QJ({w5VZqrt5RU6 zM0JDlofn~dXeUMWfjus&1%3rlgJA8V=72e(_JBPhY8%*TQNv(SQ3N(6Y7{Icsuk>v zs61F)R1K^sY8)&f>I&FXqE3P(MO^}WT2uinCF&YjNz@rI&e|e03wBmi39LiZRj_GM zGhi7}m(Z3))xbJMy@_^4)GXL`QP&f_M!Ku+yV(YG5aSjv#gn#St3oMmH%CE7shv*34&Qj&|}= z2_51wSn=Gd_+kx@vJ`&H*bjLI_Z`IWO<=7qbI+xmL*{E;?wJd=6MjV#3D(_RD9CYn>Tu9H*(#~i%N*uNZNRW z{sBa9fqkcK?^pNz0N+LMS_iL`=_Tn0hskl6O>pQ6aqz|Ahl^*EG~GB8;V=VwHc#4i zUljJ*fGGR5mzUCT-XzP)@r+yHb2QY)4VL5kLO+EEEYJG#BwQQ99Se8z$Ky5f>_#kC zZ<*fg#zTGl(Ri)v5p6enTIngTHO~v+cUqcVe3_*_8F_h!@RU%mTORtnaugmY6Y%j) zLVkc(#&4V6Fc%$1zdt(yPI~cqxyU@5o)8ZmMc)Xco{x2n^LT|~Lj3MJ9`5CxNA}~p z^N{UVUtX@Cr_L|#llO7+;;|z?GzV=*Z<#rHw0L$W!o9p`yw(-)Yf^s5!}+of=5jm? zzxua$2K`dW<>a|%W3y+}Zxq*vuOsJBEAfX6}FELmTSY6@>9-a&HM0Cw-EkDMJu^l8D0G^-C(CDN+KYwFuV1A1 z-{*Y6|CpBiKd1fDKMY``w`sKX@D7-a(_PKN>{NreDOP{kziC_QVEWR#va zNg_(0GD)<9K5LR#jJ_Bkar$b2BjrF#@f?q zT56J1iZ+=fouZUUGD#XRNoSIdm?V>?vPnAA^sGrTDf)s*I#YDRB=I=?&?Lz?{lp}R zIQ`Ni{Pbhl-iAjS8&{}$Q-o_3y(u!J53yH-D3w?ns$s5--LJU!-G)`QiW%ozjpqKcukuMb7pqly^h^C_+q{h4 zKUc4JeYzpt#pv(v&DrbkO*^DJ+x)#{?)R@2?_VVbE&6=OsrS{E-eOc$=8dI((A_^}Rdxj&ylJbdF2w4M W?#|t;;?My=KcH@brl5YZT=-uktk~rM literal 0 HcmV?d00001 diff --git a/bin/WinRing0x64.lib b/bin/WinRing0x64.lib new file mode 100644 index 0000000000000000000000000000000000000000..0f16977102c8346f0dc8304b903daf09288906d7 GIT binary patch literal 15124 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 BVw(T} literal 0 HcmV?d00001 diff --git a/bin/ryzenadj.exe b/bin/ryzenadj.exe index 3163ce287bfb827bdd82c141148c94c1f558642b..57d4b05ccb9d445bf56f21a306dffb8681c62f10 100644 GIT binary patch literal 27136 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 literal 57344 zcmeHw4`5WqwfAh24ND+w__G*A@q*zQm0%!L0|eZV4cy=cBMFFtCL!67l+7mHKM;Iq zgUhz8*X`rIs>S~MD7CLvu@BpVfYv5NNf6M0wxUvv*7|OYwGk^uOWp5xX71hHB>c;J z`h9(`dtv6BIdjgLGiT<`%$>P+Q+(SNmdF@OLI{T$+XG0KmB;6f(hQ7^x_sX#_N(DX zChalUk4!47t@B8Y?uOOw%6h4)(&cLKN~;`_+vk$%T$1gkQmMY7+A%FPH6=q+ow9w} z4U5~XPCYDq>LsTY>F@tEzuwMaL47fYh4m{rwAIfCockk@UuT@-r2NHg`OZebpZv72 z{w5A>^@}*PYU$rN1${nGFR81lr7{QBu%wW&>Tj6X_O7m#dR{M^%tj=P8p-YfWtE_w zNCTt*SHTSePhc#Wa9lcMCCDY`;!0!{8+9Q~7F3}`2gFB|u0xE?gWMxV13N*)Yy-QM z^z<^eQ`1LeDm@pVb06c7)6Nj3Jq02+RL?X(w~h~n)4Yx*FUV!hh{zzSdu+K#N{m%Z zb5~b-D;b-Z4Z=2r83^A%h`Fq=a++XcM@`7+LV&L#oed~mR>oSUH44TuavMkLoa(@@)AS2=m(Us;W9*54o7q+vD}4b>h8M{ zQRxIkA0#1q0RHO!723P|qq&GaGb6fe9-+#6ii0%?GBOH z1}b+LG5?ORi&GK3jDFa?f|w^#xxoTNCc^&t4n!Z!LG+^$h)$q?b^izDPNahFnvBRv zwe+9~yKkd{iqQSL%g7ryQt~yj`5=ag?k!Z%QU-|)i1t+=wB(hg`$6<=v{8J4Vae-dY!8J2Km51ruC66D~N9%RrS*pMDGyu zLZZ#5=qDE;+Crv%otpL(@jXG-HMA%1E)n(M?zbEWcqA8^B9`bH6DaeH^@2Bx7?t#B^59}Y%RppS;aG0?+-E29y zGQ%VXof&Cz(3_Edi|l_tyGVJpNa>T6ld{sS?)z&vY*$_+KFO{ekd@!ciYaWF`Deyt zWo3p{R-75Ktavj@WdF0-CltZcB2f%VAY|UxmIRlD~B;}x;>RXnPW)Ipj((On}rOSA=W#v;j ze8-A&)!AAKk4pZxPs_@y z%5a;q{}+4I?@xu%BYyET#HAJ8n~{o`cbK;anIq*Z$6=8!Q%f>to6-g`xILR>%e$BK zlO-*3c*>-n7=>E^HI~C#Yk3=3)E^_C)5(%ZPPG2#!}`}pQa&qEdX<|;qE@mpyfCLlz3tO* z*rp^arD?J1N@j#I(!U>?MyTT>lr;Z-t|uu%8Ry?W zj(AR@B1);rM%5glzJrwca?DXmDc5ib@%IHvo2)r`{7mOn_ycxN?Tb!#up3lDn^F{yV?k!4J|9FZ@ zyfIBZ!I2Sa@+X{NQt#%r9O7LXeeefrOdpKZ$@N)f#dyU5^qHJzssH7oFAVIEQrL1c zbkGfW36&8nFv+<4N8?ui(ZAwW&jYdh$GqQlsKYo%A~B2t!!}}=09ubH=a{T?s1C9= zSdaz=?{YL3@387kf|^d$SyU_DpZ8%E!PMtIM*EdzNTKia#Q&MuTMX3>Qr#lF zkgom?T-+T;I5I;0L=a4B16iaT3R~{~PsXUL+tD^Tht(RQ<7QZan*skdYDt6|>#8pV z$4!sX*|_W3sJCUMNK`ea1>+ze1~SP1QxRr{N+zfse+h@f9iJSZ5ViZ~RAv9O@_D1*-bdp!&T)4L5}PIWD}s#cI>w^6nU7c^_lm)bEz_ zw4bb+2AB5%Ts)Ne1unciySnw{Ab;LH#PTc`Ufzvr=HT*14Y9nRv|g}37pi+c98|v_ z!o@@J=T|Pgyqi>caCy^)Sl)9j7hJz0^?2`~`aJ^|52b!fFTA{BwRUiMi-%a=AAfVf z^~+HE{yeCDZ@|Svsh{t{%bTKZ9$cPlh~*hCyu3@*^ugtQ4i^uleh)lz!T!8VedL2d z{`}Su%bRlHkF>mM785jgX;HlxOgc3EWGgYE?1WiE^pot%lqxq z7hFF{Ro@>}zZc-*q14ZD;pI(Mn+BJ6#}Lc=_^Au7-z3#ExV#VG;-SFLN zJJ z5Iz_h`L$q*tSn5Mm3db}FcX-BRkwN55j;7{$}6-|?(A+sLRpw;J$1m~P5z{FQbNxw z!xMV&v|S+65`DNFOpt?Xk9u5nM3M09|W_*9negI%J8tI zA|i(U59pqiX%1Y+Yk+4MYc5hUQr#2L8^V^cXDfV6L`(m|UFR$NUqprf=yNLkK`=yXez8{VEnLOIw2#cA;Uai4Td(-MGndV4eOruF*pjCeO-B~d zqVc50y8j79i@gbK30diJRK_hQmABcH7tlYpZz2h5YxSbPg~Nx#mR@**_L8!p6FkVY zD=n1&$!X*ZsZCL-x1!W#QR*S0hAj_ky50for|Yq()bgm*15s*9l=^j{Yq_Rt>p)%Q zQ7Kzgswhf*#viF;4pD2i9GQYXim>RP7;8tcUCG!Oz{m~vzZ}8yV5a(wcd;*bFl;fS zD-Eb`bU#N9ZpcW_Uj_k5R$jxvmvby%`OvO>Xba6RQ9sM3=jfu~MBc-Sf_Ix_WkZHF zKe!e*JT^Xxf(z0SB~bO-H`b zgnNYc{vta)-No3P99+pEP@?mVaxu0W1Fw6t{C^#`_A);Ege`MlrQ4|u6N+aeb?pxI zDB4mf$3|0oZs2tvMrVC9^2|OL`$wVqVN7zl!F-IyuNH-@*n!PQHHNEqq1wugnSq1m zO&`NIcBK@%&tsZrXPEl>FwtEH5S?>@Oa&2XB zhO<_?G7J^}ZnLQP@jp@v9a8uHAu^rb@Cs!?@KiyX!FRn}b)yxtP_7&t*AXtTqF#J5 z2_K|t1$iw4G&%I7h7T5n=9@smt`z(L5pdY6T1i7uYgeKi8rh*5reSz2uqI+^tLorP z?MWRlT_>WapL6SZ2)*F!thhnE7u%J5Ip4gSnJ;I#^OL-0*}p#*8NQRe+qR)W4VWWs zxva=+Lzm5$yLVwn>x@cye?XP<(FJIhz^=M%N3mV*^t z8*P0GT|@md8n{TggR8zwWBE!%+nZpa``}=-8>Dmj&b=vUo3JGTsbVEL=TF#~E>ui~ z)VIHb95KGYjdGHCck8L+@`Pjlw-YcFj41LqnV2^TUQH-cWD_k`;DZiqC|eoEfaW{{ z^L;|Oa$;w`|I;KnG(TB37w!jcltVJ%9l(>l$%u#fpr|#uP?2-xP=45t&U6i`mY*ok zQDt+%b4C6Z^fr~u3N+B&mn{3AOQOZt3EVES{{URSA)~~6IVLzI__6}0rcc7%O*s>RV+8Cs1FXpTra^k15GLd?~&CPe8X5K3_dp1WDFCfL26F2y9 z6F~snI$s6&M8}$}DgMh_WCQUj3;O(hNxm^5`EOy%^`tOlNdi|-0oJ=jJ{`75g8cCY zkf-|ll8OA+uw}R)ze{9`zi*gtVo3fhY&rQ7SMmzT)PI7JqU1S$TbHc-{+c&?CTJCC zC)S9kpFm3ay_U6uXLZ;^sSk2R3({<%f&>_+P?C1h)oY=drY`@1Tr_K7HeZ&ZNztbz zJEo51Vrj+~Y4FBmP4g0H7T!4h&)h^zrP(XG-|B)(2s`ume#V>pe-ZI)M}?o!QDFsU zGxec2&UijJ_86Ra{_{ce?gaGqiSjkii}3+7UeajWY#e0J)F+4cZ))-Ns)Kr=+=Z#us89}3Iiw&uJ`Fkql9!4D6iCPXN&522#v$aTn`cfQ_ zhIV8$VzD7_e1A(abr0jJ9RPHI6KKXeAvveo3p?qF700u+cjD>8o6#r-3y+&`!9$nv z4ndJXQR!JSWSkAJfd>Zm8g3ueSZ3CRj1fyy$@7)enHXv+m{IVuw@tU#zm zXxv=50eLHVUSNx`fXb7DfjvBhdjfci$SD&!G>?*+Kqrxd0nGLUx(I}fHwmU*p0Z_R zz|g4(*$6WcauM+3@3YcFIN0a<&Y ziGX#pZ)A=6>xDRh_o4c}?4U2Vz0gX|JWyz>YcFgfE^q{z0p;MXtpaQV2=1a~QhQ)0 zVzdG~5cn11%JzU7A-oT473$Uph`RaL^O}+Y+yP_)a_QYkfOG;Oe0KjYx5Esv2^e1=uW@Dg@J3p2G1o z7`BO=Wg_Phq`3G_BBPxJXc0^|3#Lw#L?IVDJO@#RDg1}X%o1!xaQ zutBtA2C%C3!14%TC9vxDz?KN%eqfIFKu3gd7+6hvfI*YckpygYdmuML$OHD(_CRBV z;03lu4jFefQR$CpbXe5{l$4xX}Mnuc>k&XXeNI8t1^i^%X2z=6OH zc*NNr=mHR}{tmGE_CPvv1>sU)uJ%Algir>op*^rULbwlDV|$<_LUDg={DFg5a&Eu$I?O(LgSAa5!So1E*)lL*2X=~_yF|_&q_}tsk%NH_0XhX!vta7tDO-jU464Xk zD{^{~;^KWk_&Y@batruO0Gk8jC=oI?3hqp#4g_X`)zcoR1wa}ECope&U|WRnFfdZcK* zY+Yzpw4`hZ(fFn|>q0M5${i7!sSA~Wq?I%iLLJ0*qb~F|rRGM2a&@6kqC$A`OMRW# z#_K|Vqm(Hkl&1@Q|5&7?JP4g4wzpo=9FdL*OMM9`;RvfP^tGsv6+#yi+YVi54yAq= z5wht*i$K!qWP?y1v8~gEYA96~5u)uk-Xp#ltrJ#)sjG=?zAhA`)Xa#GT^CvuHO~&A zdx;YK0@Jb)l2dlBywOC$<+s*4MupA>QYohR=%InLQf+bpQVSA z@;h!H@N{&}N1J$N+ynp69tckv{|uc@_5GUS_jr7o#~&cZSqaW=ij{n97d~I49946V zgv0ctMcW#g`i*8SEyO0Q@>;(C4}Es!VE!qVWLJ)Q$L1?mQ*l*E(kI95iAS-eX20TS zQB~U_Wn3C|veRgn69?I+Y=%U$cZ7L2puelvp4ef}K~V=+bkBR?Ec?f2Zm=3`o@|0; zux(E2!S6A4(lt1|#kXCU%!MDKFQ{yq_Jah;HO^15P zMZgOY(Hp46kmD@DMDIM$YMzxtzDM(?h$T#`-4nxh^o_ zBhP81S#9SPr?%~02m>_jJpb#+;u#oZwT%AfXxYMnk3kO|)XYXNvCcSU-R#A7IJ~fy(U5VVlLEoZw<5-Y*hYDG$E8yx-YS!(j=)YO`rd7(GFpBH`Jt8bJ z6IXJE6Ssn44H(*uzx|Q;dalQ0-EH7y-FrywJBX@mM;&R=>Ca`}$+X#;2?AU@UREa1 zWb!DIIIzeMl_cO;@+Gx4h956?cW^D>M<*SjPD5epMTlf2R~^pbarF=5XtNZXYOjD} z8N|^`)`>!vS~s2Y8Py(e z1%+s02Y9y#^fuCeNX-KG7Qpochuru>6yWXNMy7Z0mVbAw-tzc7?@f`2?meoXfI|N1 z=J2@M2B?e>9*S-?c29-E{)X_5)4hQ!6!)U~qNd}O4r~!7qV(8fE^gPy?Gd}&TvF)d zc`reVTYMY6WWX<>7kjmI2L05NWGUXveiTU9@-$C&>>HlM#Lb46*LQ-}-%2_+w&S}I z|NFUnFG7D*11J`^^)P;7c;qVd+^UB_eh?49{H+K%Xk7GN;Cus#A7>d~1B0v>bBG)? zKD-9$V%#SIuU}mehn557w*Z`$M1plJYSl8yqBy|f2BEEXwux1Dcn;thP%gvcT=*J z4(^`gG_`L;kMic)JlDhyY0W+K?Zan8Y3kB=@IU~u!Xj#W#y?p7)mcCmEe;g48&ne zD$#L6&5-@o8M(-_(=ino>==L09NBzZ!A=`O_KZyW8VhQ}mN$M$>Q-W>hJRo*pzPSB zRea=SDy%dQB*KzzyGZpP33CVbwpt(4dbg+0%hj(JWQZ!PYbJRT|A4l+s zt@4~scXE-xHM8ffBBiyhpZZ8aIFR-w&S+`dQ+yk?hh`akAIT_9PHf$nOFvKGduQ(m z3`RAxvG$PyhpZ$`$wn1mBp;t|e3mbWCPgx2ECzdwGK?FS)6y%OpGY-fi1d9h zgT~{`ww;EaPa>8GgzHHZdWNZ&@5jUG#p*?EG$*L@Qu)oAG^3?wn0h@DI}K+X1V~5D zK^13Yv|@Qcl%6#I>(RHS@L zU#{WRqi(JgE5?ibe>Gs)idQ;QP$hh8NgppA3FD2qvW(@pd2zGQ5gyKMu_DLm6Y7Oe z0Dn4i@MIO^FK*W>(1%W)hI{;1G$O&T-5VjN?t{T7*{IG%YLK5aA3X_aE^;LhUA34~ z&AW}?hQh$Xr)W4c+uAl8{Ya}y3mmZo>^Qw74~|oY`_Fi)%>A`g zR^EpJ*5URl=|9jwAxkULxYyG*&f<4v`5tjs=BNA0?APo!KbemW*qhVw4hc{`DA+?I zpU2dZQ8eeMH(gmY(mtovoubUguwb9l;>IAdKeOjebi%+f(TM&#GuU0!oGG{|lK~U> zJ(?afB%QNTqR-s>s=5$v$T^0_8?oti-!S=`mhqU626qR+-#qtP>5NcH0f1hB7# zFM30%-$TAy147QhK#Od)9m423*rZ7P(2**k9nHbD`}%7)6)7Fv*Faej|2X*;3Qzc*j_HCm0nwfp2az00hxSFBq9muPk>PDl4k4_j_}oa$3ZskE@A2q`>*OefqT z@KCWN(tq25JUU1(PLo@^Bsm9o4o;YJTIIcX=?51yUBN4O?maU;(dxFyiqUx=1fQC* z{mrb0t^qcu&F71?@NtwIweY88g=V2g;1LT~Q2GKa+?x|E3(eAs<&>&WAuI8`^hqa@ zZ&4Cs$+;`i-}Q%SrsJC#=)4?f7!ov`(&!OKX$}rg`RZeOyMgv=(7Nx$V=$@PX=ppV zA1DPJ+w4UizZH19-t#n#nx-Umnm`hwZA-E_EwhYyFkGK8A>SI24;g=;?6uZku2M=%O^RFZP&$W?ps7=o4DKDx`$1$y)M&}R$WMLrBv8*H;g)kBT~bj6fo783+ZTcHH`uFq!VFQ*ngKC04y?YNl6rQsE zkw`yB`Lbfzm|Nwk@A6&hZ%R+{jaOtTw6W_m=ez#Cgtg|4pEB!12JbN3`!r;!g{bRb z-PB*{8U-@jeDXli;*v1d5@{4U7PdZ%QI;E#D=k<*r=li_1Hl=sOd-)qr*0~%-Bf9f9 z_PV?dr%gGOA1W~99L(SN;X;SYXWm{oqBEG3Q8?l#%1u%}#2sZ)`tUqD(uYMv>cuE4 zJf-)Buz7AvvVnOs=T;;qFz=+fjRY<+?)>yLUS*cnWysi5p?`3P`NyrEaW=&`4Qrl! ze}};qG+qI;XBcRg015obck#ymWaeJ;#xNUQ!SGn%???jI-@b(>&0$bso721D%AAAd z?Xb+IyiS&pU1XJc-yep1NFV_Mhaq6z_wG24tKC@r4dJ17;~l^-E>X?|PZ{D%J&U2t z&?&dREy*J~>FqkKXt7I>k(`(8o1qx9A>r>ZwHq%7Lc>_lcp0$#Q*DxWtiMBQHzp&A zn;02Mz^JFt?+0L2Y(-a0%fF-i9B=;*?nhq)g~syx1N>g&cQc<46azN)3~d5Wo$?%Y zPRoK_eDihA^SCX=jgLK=t3=+(L3v~w_T_&bl-=k2>zdQ4b7agh{xaO@i%xZ^Z05WkK?kR zbN=Hzp3UhSc>DpUFdl!Gmw1}fcXP@f9`EC^jnk8P+`=jQdA#yrvg*{2DemL(XFNX5 z<7A#|;&BR(NAh?SkF$9^na4X~_=TSRpoqDf=I_`*V{iP5dm!$CxCi1Mhoyi+m)n@y;HHjdgQ9S#FO4D zaKf2qIO&~WSN7*6ob-+@Mmp)FcSJGL#*^N};+z(H&ha8;Y|lZVvW8#!`?xUXRx*ZP z`2C2J@hvvti+CLOK->dy55zqX_dwhOaSy~j5cfdb191<;JrMUm+yhY$;6-Tui?HwE zZ7TX&#-tX#jxQtozwk?MOA|xR!Hx8*CN1XsTb0%?<2BEyU2!b#fw%|a9*BD&?t!=m z;vR^5Ant*<2jU)xdm!$CxCj2OJb;%O;#b@Q|06xnSjepODQEnOdm!$C^LwDt7QbI& zy|gkue#E*Xj>kO^_dwhOaSwb!9=N5>wWQ9qI$J7qyJt(;O;ehL;-#+2RZfTGZID(w zyi!R)k#y6luhNg-XjlLI#q$Sbv&9WwsZv_9{!WKWLT+jC(y7w?qMJ&kBK&rWyQZ?r zAuV(CD^VzRxZMpPH#Bl8pzyVoPM<@! z*U{AIsPcmBlImc=YKQx*`97DYZneu%E#=I}T2<#gGyfpHlFL``aMx8;I{PVJ=WcMV z)~n-P-{_bvO{vy|T@6`GtB=pM#?`RSr88Eb){!c6?xmi})g-HXLXsr%QzR|&g$xm= zco+kZM8a89s@POu&4UZ(5%lHE;IPIi(jKoHX}YFd?cut69~bMf^q-%3UFN11 zuB`s5v_dqQ=XPnuima^LrAqf|4}J_rQ(4a=DYB}=mwmMp#MEJjiNVAmP-Y4!|RAM9IO<%+mSw`*Bl zwWC2QXh08M>}W!-TvkvhWl1`@8uz?Z=vs|C`zqwojG%i?s3JT2>DBDh75ta=!d@r* zsT-`@Ype8DO7=>htEyHi;O*MqDzc}aoMzAYWN`Gryf2P^sik%d$=CX zq^miLp9U-HuZJed@_vd2){Ewqa+*iTr7_;_rzgsER(mjxmuvIQ08OHc^wSs1tZ5u* zmzWpMu5zG0jKvY=h>ip-2$}?WXza zT&nx&?Z+HZ$;&^J-dNuabjTpRvCJ{52kIriffXZYIn9rQ`b0my1DVgIx6U;Ly#tuf zr5EsbX&Q{!p(9_CJ-Yfh{NLe$C8f5~ zn&*ENs#mVJe%I5t*EP9zO#-S`Fnc8yl5Wq+MGfxiO4rJQ;>tCS`Mx@5wP&Sc`gPf} zW?WaDwd%T>s;u1Wa&ohBb7s|KRbM}S=2xcA%DKKWcjn4f#JjTTx|vx^98O22$FWjh z>rHE{Ud5ev1!4+xO%xy=$2}1DK->dy4}8HMFpM*?an&hoT-k6oZYJ<0X?%;&Fd>Oe zSaMP0_zFul6=_H^u%!8b__6Zj841~jlq8liGnu8#NEZC&WM-}&!OSyLnAtrdhBgc| z9>!wx;xxwo-hE&gpTx#58PhnrBCUU4v6z^} zi%>m`SB z9?pzqCf1e3*n0@eby==6h12}kGFG9}p_BLq(gw;8>emDNIlo_Uub}L4sMEL^+Wj(+ zkKYdi`hMmxcG1k^>>|T4W@;Q(kz6ABdULXH58@ z!QtGN;kXY?%)Deo%*yv^fM=ive5rUqk^6Ap<&yq;_x_*;^nP^NH zZD6CZbc^H>p10Co@KNQvI*EnX#WE zT-PihmnC1pe*6h=EAT|X$w&tPQxR?j{uRKBk!MD@5^3WR#>OLLAmktv zBHW5lgK#IpHxRZW>_FIya0KC1g!d3WM@W5vu?Yy*Ak0RP5tbvYLAV=%YLCYD8Z^LfI+<;48t0aJStwcG4uYvjobHpis zPabH*U;b-F*xANd+IY;X2*-g}0PaHQ0Nx3B3ZV-)rcO2kK?Pm{cnYBpxP%2o;l+%N zd=_g6z(WW#fp-ChFF`)=k_n7$Lnr~>0+@CwV;i1hEE}*HVJh%#fV~KZfu~&tI}pl% zHv@JeJPf=S(29-bEx;=PcOqDUcLGY6qfFpdz%2;1z;^;N34dS>xCGdUkOX`SU>8C< za5f2cAymV*M!*(?CbAze8_za*WIy0Gg!{;Tz_crn2A&PrjPNVq+W>nJP5@8KfPDxZ zz?%U(5qg2MDU4MibmCdJ8BoncIlw#ds>|C5Nx*vn7hVm20fbRqxVS}%LTLCK(O2}rwYYNfU!0~+qb0TaaI$#jt zKHysbw^^LdNa~z8UcQ2xY)`0KSdj1b!OuA{p%kTmqbluo8G4;9`V#fR_Po zMwr@xx&hV|!MDJ-0sa!Olb*AD-Ke>vbmgiC>+C}zyE z7`6k?09=mH0=yRRE`&Y6Hv#TII1YRd;1Pr_;4cGy&i_iyr z3*g)`^f}c+xGXBSISRO@L1$Oa*=zaQt%U2c8M& zMv#Hu2Uv(dTfP#w)PUy#geKrtz&eCx;EjM!BWwcR3HS=aX5d|bZzJ3Xoc1)XMR*x) zaUI}dgj(1fzv3QApB zFE2i&)iWhkD^Z7EQjy2B@}Ae=s!>|GUs8GYFI)eY?61?B{(H1~+^@l%8vH=ZpQxoz zYS5(JU&polJ2m)@?td-)f!_X_+&dbq(DL&%c(n$f(cm}@eqV!!HMwyb{F0jUylT5N zdroNe`k@Bhnq51!^m!HiHyI?&j{l~bvx@f)i{3Zcs8g-Mz?x!c_kq^S3``youTz%%4_jasMF!5ZLjijkGHy`t*qSRs4cIlbK-;OaymAgPZV!?Wn&|+ z5>6aZKZnR z*V;OKflOasVPA!n<6~}}OP7vixlZVSLG|qVC|>Ts`?xR>-^!K=8*Azts^Oa?SlCz& zpSoAWKgMVZ_Kb(6!aEjVLV7MMcRN<2aZqD#t=myqT@KGyI;r~Q_;`i$IFg<8PZ7-}vZti7n3Niozi-kU*W z?-R9jJ^FZk8Ja2Ig999z5ohGXzp)=0Xqvg13UwLcoNQikk>ffz#csN<9&a1|G=p~KlPiu z8=C6zqch@@{JE2-Ps^Sx;pZe8=(i8%PF`BJAS-vWgiqaF)s;@HW9Cj?@9<2%VP0xV zUZuz5s9%LI=b^ymnLF9%cFp$SgZuhQPgZ?hmAk>yP~*+Q%4&9{r+(Vn>60bQigh(u zWNSYFAWDNONy_uO@m)VnRu`x(XEK+Aqz7v(cb#{=mIj6Y)CFeH>JoR|T1=m-9iB*L zY<3}Eo?)$KcdT_dB`3vmCs%rkTx%QFINXyZUtN9`tp(;zuBmi-9FyneT^rHeUpS&a zhGS6adDr%{HSgL;r6Hbot?tix|G*tGUiE)$4{Q_PL8tx5`f$llIv+p&INY&Q(Dppq i@@Va2&5vz<3^d7rcW7~KOWP)G%icz4{Q95of&U9ycF(f_ diff --git a/index.html b/index.html index f3a2fc0..789a1de 100644 --- a/index.html +++ b/index.html @@ -119,6 +119,46 @@ +

+
+
+ +
+
+ +
+
+

+
+
+ +
+
+ +
+
+

+
+
+ +
+
+ +
+
+

+
+
+ +
+
+ +
+
+

+ + +

  • diff --git a/js/app.js b/js/app.js index 81161e9..d6ab208 100644 --- a/js/app.js +++ b/js/app.js @@ -53,11 +53,18 @@ function applyRyzenSettings() { value = value; break; + case "--max-gfxclk-frequency=": + case "--min-gfxclk-frequency=": + case "--max-socclk-frequency=": + case "--min-socclk-frequency=": + value = parseInt(value / 10) * 10; + break; + case "--psi0-current=": case "--vrmmax-current=": value = '0x' + decimalToHexString(value * 1000); break; - + default: break; } diff --git a/js/methods.js b/js/methods.js index 69c331c..82136bc 100644 --- a/js/methods.js +++ b/js/methods.js @@ -373,6 +373,10 @@ function getCurrentSettings(keyType) { "--vrmmax-current=": 'vrm_current_m_a', "--min-fclk-frequency=": 'min_fclk_frequency', "--max-fclk-frequency=": 'max_fclk_frequency', + "--min-gfxclk-frequency=": 'min_gfxclk_frequency', + "--max-gfxclk-frequency=": 'max_gfxclk_frequency', + "--min-socclk-frequency=": 'min_socclk_frequency', + "--max-socclk-frequency=": 'max_socclk_frequency', }; var settingsToBeUsed = {}; diff --git a/js/options_description.json b/js/options_description.json index 9c25510..aeeaceb 100644 --- a/js/options_description.json +++ b/js/options_description.json @@ -7,5 +7,9 @@ "temperature_limit_c": "The temperature the CPU can reach before boost levels off.", "vrm_current_m_a": "The limit of current we let the motherboard deliver to the CPU.", "max_fclk_frequency": "Fabric is AMD's marketing term for the bus connection that connects processor dies (GPU/CPU). This define the bus's max. clock limit.", - "min_fclk_frequency": "Fabric is AMD's marketing term for the bus connection that connects processor dies (GPU/CPU). This define the bus's min. clock limit." + "min_fclk_frequency": "Fabric is AMD's marketing term for the bus connection that connects processor dies (GPU/CPU). This define the bus's min. clock limit.", + "max_gfxclk_frequency": "The maximum clock speed the integrated GPU is allowed to run at.", + "min_gfxclk_frequency": "The minimum clock speed the integrated GPU is allowed to run at.", + "max_socclk_frequency": "The maximum clock speed the CPU is allowed to run at.", + "min_socclk_frequency": "The minimum clock speed the CPU is allowed to run at." } diff --git a/main.js b/main.js index d857693..07649d0 100644 --- a/main.js +++ b/main.js @@ -86,6 +86,31 @@ if (old_version !== new_version) { settings.set('latest_controller_tabs_settings', update_latest_settings_to_1_11_0(settings.get('latest_controller_tabs_settings'))); } + /** + * Since 1.12.0, new option to ryzenadj. + */ + if (compareVersions(old_version, '1.12.0') <= 0) { + const update_preset_to_1_12_0 = function(settings) { + // Adding missing options. + settings['apply_max_gfxclk_frequency'] = false; + settings['apply_min_gfxclk_frequency'] = false; + settings['apply_min_socclk_frequency'] = false; + settings['apply_max_socclk_frequency'] = false; + return settings; + }; + const update_presets_to_1_12_0 = function(preset_list) { + // For each preset. + for (const preset_name in preset_list) { + if (preset_list.hasOwnProperty(preset_name)) { + preset_list[preset_name] = update_preset_to_1_12_0(preset_list[preset_name]); + } + } + return preset_list; + }; + settings.set('presets', update_presets_to_1_12_0(settings.get('presets'))); + settings.set('latest_controller_tabs_settings', update_preset_to_1_12_0(settings.get('latest_controller_tabs_settings'))); + } + settings.set('settings', { ...settings.set('settings'), last_used_version: require('./package.json').version,