From 788855cca831e1065d8c4c3e8696d325164ce36f Mon Sep 17 00:00:00 2001 From: Jaan Soulier Date: Mon, 11 May 2026 23:11:31 -0400 Subject: [PATCH] add temporary fix for shadercross bug (fixes #38) --- CMakeLists.txt | 2 +- shaders/bin/blur.comp.msl | 28 +++--- shaders/bin/blur.comp.spv | Bin 2024 -> 1944 bytes shaders/bin/composite.comp.msl | 95 ++++++++++---------- shaders/bin/composite.comp.spv | Bin 6308 -> 6220 bytes shaders/bin/depth.frag.json | 2 +- shaders/bin/depth.vert.json | 2 +- shaders/bin/opaque.frag.json | 2 +- shaders/bin/opaque.frag.msl | 42 ++++----- shaders/bin/opaque.frag.spv | Bin 3968 -> 3912 bytes shaders/bin/opaque.vert.json | 2 +- shaders/bin/raycast.frag.json | 2 +- shaders/bin/raycast.vert.json | 2 +- shaders/bin/raycast.vert.spv | Bin 2104 -> 2104 bytes shaders/bin/shadow.frag.json | 2 +- shaders/bin/shadow.vert.json | 2 +- shaders/bin/sky.frag.json | 2 +- shaders/bin/sky.vert.json | 2 +- shaders/bin/ssao.comp.msl | 114 +++++++++++------------ shaders/bin/ssao.comp.spv | Bin 4604 -> 4484 bytes shaders/bin/transparent.frag.json | 2 +- shaders/bin/transparent.frag.msl | 92 +++++++++---------- shaders/bin/transparent.frag.spv | Bin 7388 -> 7316 bytes shaders/bin/transparent.vert.json | 2 +- shaders/bin/ui.comp.msl | 144 +++++++++++++++--------------- shaders/bin/ui.comp.spv | Bin 4728 -> 4712 bytes shaders/shader.hlsl | 3 +- src/player.c | 2 +- 28 files changed, 274 insertions(+), 272 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8feae46..aa62630 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,7 @@ function(add_shader FILE) function(compile OUTPUT) add_custom_command( OUTPUT ${OUTPUT} - COMMAND ${SHADERCROSS} ${HLSL} -s hlsl -o ${OUTPUT} -I src + COMMAND ${SHADERCROSS} ${HLSL} -s hlsl -o ${OUTPUT} -I shaders WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} DEPENDS ${HLSL} ${DEPENDS} COMMENT ${OUTPUT} diff --git a/shaders/bin/blur.comp.msl b/shaders/bin/blur.comp.msl index 7c77e55..fc385b5 100644 --- a/shaders/bin/blur.comp.msl +++ b/shaders/bin/blur.comp.msl @@ -10,34 +10,34 @@ kernel void main0(texture2d inputTexture [[texture(0)]], texture2d= _36)) + bool _46; + if (gl_GlobalInvocationID.x < _36) { - _47 = gl_GlobalInvocationID.y >= _37; + _46 = gl_GlobalInvocationID.y >= _37; } else { - _47 = true; + _46 = true; } - if (_47) + if (_46) { break; } + float _50; + _50 = 0.0; float _51; - _51 = 0.0; - float _52; - for (int _54 = -2; _54 <= 2; _51 = _52, _54++) + for (int _53 = -2; _53 <= 2; _50 = _51, _53++) { - int _65 = int(clamp(gl_GlobalInvocationID.y + uint(_54), 0u, _37 - 1u)); - _52 = _51; - for (int _69 = -2; _69 <= 2; ) + uint _63 = clamp(gl_GlobalInvocationID.y + uint(_53), 0u, _37 - 1u); + _51 = _50; + for (int _67 = -2; _67 <= 2; ) { - _52 += inputTexture.read(uint2(uint2(uint(int(clamp(gl_GlobalInvocationID.x + uint(_69), 0u, _36 - 1u))), uint(_65))), 0u).x; - _69++; + _51 += inputTexture.read(uint2(uint2(clamp(gl_GlobalInvocationID.x + uint(_67), 0u, _36 - 1u), _63)), 0u).x; + _67++; continue; } } - outputTexture.write(float4(_51 * 0.039999999105930328369140625), uint2(gl_GlobalInvocationID.xy)); + outputTexture.write(float4(_50 * 0.039999999105930328369140625), uint2(gl_GlobalInvocationID.xy)); break; } while(false); } diff --git a/shaders/bin/blur.comp.spv b/shaders/bin/blur.comp.spv index 545a1faf9d6c6e88d5d0b3f4d50e18db87f1aa24..4d18b1bb9105ea79ab10827c78b6135987400433 100644 GIT binary patch literal 1944 zcmZvcTT_iu9EX=(yL2v{6`0r^8gRev~-Oit(!n2L?KLJIuZ|!Ra+1?t!KA>!!KHy1mZ$->y^J=$u z?aImCiR^3{&^{RDI(X|QxgOrrf!5jsbRlg7$)^e499`I&p&8I7-vT_=YlUVC9PP^P z*puX4@aF0Xb$EDR71^HB(eBCcXs@ujuQBd;yBOo`#h8v5qi;8IC)8ftul6peHPp8= zcQ>>b>u#vLF+EUY%&WWyYF≫Jhe>OKa)9$?I`p^B7 z_Ow6xT62ud_K|jCU*C}qKqv9F?}Nbn-}s+FJ-^`HcQ4Ris=s^a1NQe6+1dJ|Zh>0X zJQQ`1kaUNm&Kaigv&SRAy1pB88+#O}|A>!o=UCL4)BXmao}c(@I}X&@qkPIe2ybrR zTgrU`Uj2ud`y{+Nd;39r$|L>4gw`(s->>uQZw>o61@+j6K0`pAeaM?Hi?VuUzd72a z=JyTw{qe2oa|Vn6ZT{Xyf%mL!3~2ildp`@Wy$*b(hjFNOk3DHW2h>|rKJDf_{QtX| zK&SpSvEIW4VE#AMQ=SC+sDBrA7vbHVzr#j4*6$MVj@_#-kS1hwi$S1(`+~3eRt~9Y&YS3b6aP- zg`8$H#@Y0nXCFP#+dv<8;G3(4&VnL%#GU%PzY}%(7JxbYjrbPs0_~o+Q8xwej^T6+e@Hl_^4lKae Wg2%+m>uU~=ePmE;NPiPK4*mi)xqyNI literal 2024 zcmZvc$xake6o$)&2AM%7!KoM=5N#0wQAEHA2NVz-c7_O179i0k(Zq$C_%5#8_%J?+ za}>X?`rZT$r}Ouj?-}Y=mF0RWlVn$tB=yMy{-vfQms#YegFXnaNh&h?^vuFc;YD$| zFf=@1e0@?T%X|&Q*>e|wi z6?E;!tgdft78h4u7B`=3&g>QNo#GiPdA3>nCn3-2+xwbEx3?OwAE;ZW8%R;_Dyf<7 zx%%y0zk2kyqB~m(^!Eq73fa0*uSS+yuv)v1F66Z!#?&EuMjO6*cnb6>Hvq|cjqp?j z(y#80rKs;g_NTiQv zLwhrGx5K;e?u9Fx(*ZZfbJaWH*0tv`{_V@>BdJ@{{Y&cBu%30|9`_;t+1lEQyYo3$ zf9@H#rvo9@nj@TSA8{x4^&RaXe4JSOJ_J1f8~-U>`i1PiyMXa>*4p90=z_hGy>>|+2f*@rQHU$ohW zvgf5i*RJljN590yrQDptTlV9oK99+L-Px{XT z?bcL|yBS0Ne>WGfX@5;_BYYfq{+sZOFCrVG{avt4AiF!?%UU`%ZxZ;--LpB~DdRlX znWn%ba37c8_9l<}a0l+helLS7AnxNTvis0?4d{#em`2tg_i;V=Vc9?4KShx|90qu?)D C0EW{5 diff --git a/shaders/bin/composite.comp.msl b/shaders/bin/composite.comp.msl index c3ffc0e..c9c855e 100644 --- a/shaders/bin/composite.comp.msl +++ b/shaders/bin/composite.comp.msl @@ -61,16 +61,16 @@ kernel void main0(constant type_UniformBuffer& UniformBuffer [[buffer(0)]], cons do { uint2 _93 = uint2(colorTexture.get_width(), colorTexture.get_height()); - bool _105; - if (!(gl_GlobalInvocationID.x >= _93.x)) + bool _104; + if (gl_GlobalInvocationID.x < _93.x) { - _105 = gl_GlobalInvocationID.y >= _93.y; + _104 = gl_GlobalInvocationID.y >= _93.y; } else { - _105 = true; + _104 = true; } - if (_105) + if (_104) { break; } @@ -79,7 +79,7 @@ kernel void main0(constant type_UniformBuffer& UniformBuffer [[buffer(0)]], cons uint _113 = _112.x; float4 _115 = positionTexture.read(uint2(gl_GlobalInvocationID.xy), 0u); float3 _124 = lightTexture.read(uint2(gl_GlobalInvocationID.xy), 0u).xyz; - float _188; + float _186; do { float4 _135 = UniformBuffer.ShadowTransform * float4(_115.xyz, 1.0); @@ -89,103 +89,104 @@ kernel void main0(constant type_UniformBuffer& UniformBuffer [[buffer(0)]], cons float2 _145 = _142; _145.y = _144; float _146 = _142.x; - bool _152; - if (!(_146 < 0.0)) + bool _151; + if ((isunordered(_146, 0.0) || _146 >= 0.0)) { - _152 = _146 > 1.0; + _151 = _146 > 1.0; } else { - _152 = true; + _151 = true; } - bool _157; - if (!_152) + bool _156; + if (!_151) { - _157 = _144 < 0.0; + _156 = _144 < 0.0; } else { - _157 = true; + _156 = true; } - bool _162; - if (!_157) + bool _161; + if (!_156) { - _162 = _144 > 1.0; + _161 = _144 > 1.0; } else { - _162 = true; + _161 = true; } - if (_162) + if (_161) { - _188 = 0.4000000059604644775390625; + _186 = 0.4000000059604644775390625; break; } - float _177; - if (((_113 >> 0u) & 1u) != 0u) + float _175; + if ((_113 & 1u) != 0u) { - float _173 = dot(_79[((_113 >> 1u) & 15u) - 1u], fast::normalize(float4(UniformBuffer.ShadowTransform[0][2], UniformBuffer.ShadowTransform[1][2], UniformBuffer.ShadowTransform[2][2], UniformBuffer.ShadowTransform[3][2]).xyz)); - if (_173 > 0.0) + float _171 = dot(_79[((_113 >> 1u) & 15u) - 1u], fast::normalize(float4(UniformBuffer.ShadowTransform[0][2], UniformBuffer.ShadowTransform[1][2], UniformBuffer.ShadowTransform[2][2], UniformBuffer.ShadowTransform[3][2]).xyz)); + if (_171 > 0.0) { - _188 = 0.0; + _186 = 0.0; break; } - _177 = _173; + _175 = _171; } else { - _177 = -0.7070000171661376953125; + _175 = -0.7070000171661376953125; } if (_139.z < (shadowTexture.sample(shadowSampler, _145, level(0.0)).x + 0.001000000047497451305389404296875)) { - _188 = _177 * (-0.4000000059604644775390625); + _186 = _175 * (-0.4000000059604644775390625); break; } else { - _188 = 0.0; + _186 = 0.0; break; } break; // unreachable workaround } while(false); - float3 _220; - if (((_113 >> 0u) & 1u) != 0u) + float3 _216; + if ((_113 & 1u) != 0u) { - _220 = _110 * (((_124 + float3(0.5)) + float3(_188)) - float3(ssaoTexture.read(uint2(gl_GlobalInvocationID.xy), 0u).x * 2.0)); + _216 = _110 * (((_124 + float3(0.5)) + float3(_186)) - float3(ssaoTexture.read(uint2(gl_GlobalInvocationID.xy), 0u).x * 2.0)); } else { - bool _205; - if (!(length(_110) > 0.999000012874603271484375)) + float _196 = length(_110); + bool _201; + if ((isunordered(_196, 0.999000012874603271484375) || _196 <= 0.999000012874603271484375)) { - _205 = _113 == 0u; + _201 = _113 == 0u; } else { - _205 = true; + _201 = true; } - float3 _213; - if (_205) + float3 _209; + if (_201) { - _213 = _110; + _209 = _110; } else { - _213 = _110 * ((_124 + float3(0.5)) + float3(_188)); + _209 = _110 * ((_124 + float3(0.5)) + float3(_186)); } - _220 = _213; + _216 = _209; } - float3 _246; - if (!(_113 == 0u)) + float3 _241; + if (_113 != 0u) { - float3 _227 = _115.xyz - UniformBuffer_1.PlayerPosition; - _246 = mix(_220, mix(float3(0.2199999988079071044921875, 0.3490000069141387939453125, 0.70200002193450927734375), float3(0.21199999749660491943359375, 0.7730000019073486328125, 0.9570000171661376953125), float3((precise::atan2(_227.y, length(float2(_227.xz))) + 1.57079637050628662109375) * 0.3183098733425140380859375)), float3(precise::min(powr(distance(_115.xz, UniformBuffer_1.PlayerPosition.xz) * 0.0040000001899898052215576171875, 2.5), 1.0))); + float3 _222 = _115.xyz - UniformBuffer_1.PlayerPosition; + _241 = mix(_216, mix(float3(0.2199999988079071044921875, 0.3490000069141387939453125, 0.70200002193450927734375), float3(0.21199999749660491943359375, 0.7730000019073486328125, 0.9570000171661376953125), float3((precise::atan2(_222.y, length(float2(_222.xz))) + 1.57079637050628662109375) * 0.3183098733425140380859375)), float3(precise::min(powr(distance(_115.xz, UniformBuffer_1.PlayerPosition.xz) * 0.0040000001899898052215576171875, 2.5), 1.0))); } else { - _246 = _220; + _241 = _216; } - compositeTexture.write(float4(_246, 1.0), uint2(gl_GlobalInvocationID.xy)); + compositeTexture.write(float4(_241, 1.0), uint2(gl_GlobalInvocationID.xy)); break; } while(false); } diff --git a/shaders/bin/composite.comp.spv b/shaders/bin/composite.comp.spv index 1606d450d8a70842b8ad6aec20c831d9ad687ccb..0185f6714b39ffc90605c920753924c0c6da47d4 100644 GIT binary patch literal 6220 zcmaKw33!#&5r%IPAyrdwVHY%r)v_2ZqD85JL@}r+!2m_O=q&_@B)K#<2(&Ii-1n{f zW^J`rD^j)A+6rnHYl~ggE_SiC`@Tr6?c>wF?|;u+eQ|vCI!c_A0Z&=gWG<|tfS5I+eXX1w< z%d3jZOY0VOuJ2#l7d#s&Wbx%<&zkPeKFlnS>sI1Bst)t-4!^9_UFv%|O%}fge0SH% zRsB2hL+Ar}%EeO9=4gQ1RgJHPKc}?5vpa&ZjUR?wQ!01$ca?g>B|m(ZdFtt(HTGmv zI%7hXt3K;#w)W!Qt`)Sdb?u53?s{mU;v=lkQR!1(vA1kUR>MB-Wy<_gwYYLS_wA=k1Se zjL;Wx2cQ=U1KT2hBUZ%e3*NptFMPqh$KYr(-XAZtm=`kI3TttLHES+d0PRi?}1vH@6k5d5*%K zxaFRz{d(*Z?mwcMXC}6DjMEo+jz*_DbF}T_F~D~->{;l3$K&z80qLER8_P@YcV`dm zk$s4v?Pz4qu@yCo9Y>VkiF|Y7waw+5@B05Q*X%UMSm#*huGY5}zdhHPgLD|{xwRmj zqkjxPTaj|w`*R2UcIBLV9MW8J`utAazrN#<`sBVde=?QrY1UQqp>7Ggg${PEdMtk!~l8i?2qbiU`UVK2ho^x`ee z#@f@xx!5J>yu-7s^^NE?z_U7vo9%hJFNf#*PpqX#_wBwsKlj#5UUm0%ESh)YbYLG| z;O7}g$G_2i&)x*gr8M5NeKYXfR$_Ty-jX=qvxRWh^wz{9s@$20v+fq++{0PGwVi8z z=N7?PU<)x*kZ%KW=CsCTNXNg3*S8$VS*LpB?nF1YZ)oIRfiAx}k3f$^?k9bHI=br^Ftkh2bT^Vv^r`32-V3Aq~BbK$Tb(c5nH-NBi}wjg_e zoO3*1&tw5#k$0mP=ob$27-OymWC{4anCoQZn#ARE#d*Cw`4QDx`q2HpqLwncTz-Dk z(hsj+IHHzE(|uSA=NgBA#}aoAy1eiGg^62-E^nOYcp`E=@XqRUZ|;2qkdMB-1APw= zwZ0QwZdbLQ3$I@|qSnZD9^6o%U5`8;_-Ugk&gI=E=2bZ zDDAgz|0WQ<3htuBSx;~mC(d(iPj})Hbmtqde*(CUye-H}f&KvyIW9w&uLJGrZ?enL zYetMR*8C{CYg)(6!1=Cm3)0~l z#(WIOxrVy=HYQu%b810;91MV35O?lYba~;Z0s0%#UA--FbCJfz`|%0%cvJ37eY_n` z{$OC8pF}#WQ{Npx&N|g^VxD*HPOt&ER`lmniI4kp7q-J(`ZfbObE)U|EUz7FDeb9i z-3<;0_QiFLjeEQW{Yv2emr&bClKh!)ZF-yRd`*39yz2!J)u= zV%_#m=^ExTcf7@)N8b~~yZ!}qxz)gZd(N@%htTyqqPDH*@?${Un{DWW@6E$-@^Nn- zL3h}ThmnthF9P?X^lrMBF9GjsE9eCe(G%Z*F9Ut;z}|iZ=`f$Z$AFyq)bB|1zKU*b z)?vRRMj7Aaceeex*&m|DC--I(> zzdd#Sw}5-qXN|7w8m^bO<*nH{-v-XJ4(CR!eRi(>jWxf6KDfT`!bNS$hc>S@L zr_eq3fWJ?y;b~yJ{@Ba+(5*+GwMRY5sQvrs*6)6dx7K)Xet;h53G7 zW&mU3?}^`{m%(D-a1Y`89lCuI4t-Jc@6pYB959EmQQsfX^)CSt|3`G=#{vCEgYf+c zUEcy=+yoH&`ZK!zKUJy9UG4P2iOZN<1E!z1LGamc?QzEs(gu+W`h3$s$7ZT literal 6308 zcmaKw37pkc702HUTj>Zc?2rv27>lDJ8cGffhJ%VSI6%0RzF>gKH}i1bAW)Vdxs1!jv`*uJ{8nA+l=q-cKf`~AOr9)BkC^7+j<=XcIM_uO;u|IU2qS3iDG zp-@*S6b2Xm!%xRPh5C$9PQ%`_Ffg-Q=eN&qs`M^zntu49#tkm?Q)Ip�)^M2VKR^ zZh5_X!^`ahUX|c#{rG46Qk(<$*B||?lgd3^#ZmH5 zy}R%O=mU8w#d6T*Xn@;YjeEhLQ(o6miePNx2P0RPE1kWa7niVVD^}s^aM_8e~+NYjkcg2vbhJE4tOo1O%*bn~y<!udUy^XFkt3@7LB}pZwO6_iO97PUm~RdB3)P@3DT*Iq%oj@1580x$3XW+4>#& zJtO_~IXmyS=Xt-je)G*^6~8yf_^Q~2^E+|}h z(TUp{`Cp3_ar%O9M0Z~Jg13Lh_2unztfh>2`=T9lhOzGhu^WNIy0j-`)=qmOw&xUe zA5`_vcK++o8$tNBCjrM$IzJgXiLNTAWT?)WiXL<9`@!IzZQGhXizakA&uuE_s(lFP z+jk%JXJ4AWHR^gj_C>=_X%2fD_M(U8&I8tc7bIjm$Z^s%EjHiSj#Wv{N1DUD+9xF2+Kiu{d{N(t$#(u2a{If$Gnq-OefPb0Xxne!b4U1nza3$F z&W^BspB>uv-uKuMe&1h*_H3l@pF`W;`QEx0ZTsbW8n*qhSN6!gorJU(-m$5yq+9@e zmwa;?!8mXL7@wqiAntP;+}bVY)xM{N*!K;&dsY*xwVsF7oR-n6 zd6e7fplf#m-)MVcylYs;+mR0IFy<^EXC3P1v%lK%3&?jovIIN>;jlkv;A=s40sC!? z=Q{x`;4AWObOZgu;XGs9TLZET{9ep;0&;cY^10%?&Q5+r?VNki{l21>3c6f=e$>(n zuU|N#mOImZSOe!86Tw}HI|p6f_x}9EtwonN&T~5sxeoLP`rMm)Uk~K92O!@8_5e}q zI}^9NTF=F&UpS)H$n`F`fk4}D=H0+|%X;P`&jY?IacAeCZvgV%gN;Z>d_(7>d*({} z?c2WzM6ZH-PvWd6xC;{JxwfS{aUr_%jn_XGTtVIzQx23<)-it0D zh;w`&oUy_Yy}6kD_WcrIjPt#}P005HdEYgMb1oxZ-=#qRD6lbcmnHrXWYl;$y1a8Y z5oeFC0PaoS$<%GWD}j8(#{8=ihbY|2{K?1<0QoT>-i@mh?>T)C-Qo8t{~;jfS*hQi z@_ZQGJl5hj95Kpx6F!1I1$f5BJ3rR^D7t>v{20>Vn(`k9a;~W!wSNNLeOkL~MvOAn z{3N<-T8Ht@k2ODquHQ93jdZxC{53$%HPvIEpFxkFyJo~FW6f*PUDG;@zXrI*XORxq zFy?bW&NbA{w=voBo?8p@^I!w;e#agB0=m3#)B*hs>F$0padVNz#v5}Tx^K(`5O2(v z(B&tB8`61Rk1lVVwcmhrSi8P2137C~znXd8$FBh29oLVZZBD%BWUj9w9p=(^Bakzf zdcF_x+Od|>KD*Y}z@flixvsHs*Kb0<1lW@$)HV$Hb>O?@TeUR36W>U@-;A-=7&*R) zuHWHz>6$kK`4J%Q;VtN{r_cS}igdU?eYb(zf%{YD_owfIl>1xg?y0>`jQRe{2|M5W zv7P@du$FIwgMoL)y6v6PHOyu1c(1>Mz9)#ce+#-?3Ak_1IrhC3UB4r0y8~VRAP{%y zyXbxI(w%Vf`MdPJY|hTR^nGlH{n7UW@I&DKl-^PWaKsw^?N1}ql|C)9`q@|x{PETLgNxdf5&L^|3m2;aZZ^(_F#jRmoRpL5eGXo~Be>_$> 24u); - float3 _107 = (float3(float(lightBuffer._m0[_87].X), float(lightBuffer._m0[_87].Y), float(lightBuffer._m0[_87].Z)) + float3(0.5, 0.75, 0.5)) - in.in_var_TEXCOORD0.xyz; - float _108 = length(_107); - bool _114; - if (!(_108 >= _100)) + float _99 = float((lightBuffer._m0[_86].Color & 4278190080u) >> 24u); + float3 _106 = (float3(float(lightBuffer._m0[_86].X), float(lightBuffer._m0[_86].Y), float(lightBuffer._m0[_86].Z)) + float3(0.5, 0.75, 0.5)) - in.in_var_TEXCOORD0.xyz; + float _107 = length(_106); + bool _112; + if ((isunordered(_107, _99) || _107 < _99)) { - _114 = _100 <= 0.0; + _112 = _99 <= 0.0; } else { - _114 = true; + _112 = true; } - if (_114) + if (_112) { - _85 = _84; + _84 = _83; continue; } - float _120 = fast::clamp(dot(in.in_var_TEXCOORD1, _107 / float3(_108)), 0.0, 1.0); - if (_120 <= 0.0) + float _118 = fast::clamp(dot(in.in_var_TEXCOORD1, _106 / float3(_107)), 0.0, 1.0); + if (_118 <= 0.0) { - _85 = _84; + _84 = _83; continue; } - float _126 = fast::clamp(1.0 - (_108 / _100), 0.0, 1.0); - _85 = _84 + ((float3(float((lightBuffer._m0[_87].Color & 255u) >> 0u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_87].Color & 65280u) >> 8u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_87].Color & 16711680u) >> 16u) * 0.0039215688593685626983642578125) * _120) * (_126 * _126)); + float _124 = fast::clamp(1.0 - (_107 / _99), 0.0, 1.0); + _84 = _83 + ((float3(float(lightBuffer._m0[_86].Color & 255u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_86].Color & 65280u) >> 8u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_86].Color & 16711680u) >> 16u) * 0.0039215688593685626983642578125) * _118) * (_124 * _124)); } - float3 _144 = _84 * 2.0; + float3 _141 = _83 * 2.0; out.out_var_SV_Target0 = _71; out.out_var_SV_Target1 = in.in_var_TEXCOORD0; - out.out_var_SV_Target2 = float4(_144.x, _144.y, _144.z, float4(0.0).w); - out.out_var_SV_Target3 = (0u | (in.in_var_TEXCOORD3 & 1u)) | (in.in_var_TEXCOORD3 & 30u); + out.out_var_SV_Target2 = float4(_141.x, _141.y, _141.z, float4(0.0).w); + out.out_var_SV_Target3 = (in.in_var_TEXCOORD3 & 1u) | (in.in_var_TEXCOORD3 & 30u); return out; } diff --git a/shaders/bin/opaque.frag.spv b/shaders/bin/opaque.frag.spv index b61b1b83043e0f388d205f84069a5110c57f6287..6726fe877e03c45306797a606648f655e078ac57 100644 GIT binary patch delta 1381 zcmYk6X-m~X6o)65?B=x+DWq~KDccD`h(f_$M!8kC+oEN*X^XAey=InK8gcs|^)l#H zZ|ZFy#x@9gp6d+UKRldserM*)%$ebzZ~ER?Q(o3m6~eL*!m9A@Q_XND^DR_{2I8ZI z_nEp}7v2#g=p=Ih+YNQF3ED$NXvX${`UJ7Fd!zOzl!ZS0-_b6Hs!&gS3^u@FI1VSk zoOAo35y<7jNgR_OS$qrj6ga>IezMqUta-n`#OBX{x{K;}hUMWP_AJzb8@Gm=UxPgd z=6d7N&qvMmi()gvKosqj1Jy1>t*k`57`1Y2>g6STi*AFjagodT>f2$AjjY2Cg8FET zhbjmL3Tvxd+Il#HjT?p`xB^#UigN1Lz+5|YhZRL_q%c|Cl)E0YBiJleT<8XPkV9bp zGga*FO)%$1eueUI3+rcR&D{nyJFEXC&Kt#d&U*05(->^7c&`>8gRS6|IKcugatG_@ zB96HWYA&L0L9f_YJ+H*o6mR7k0vU;YYSE z_b{rS!>v8S`nff8k3r3?=$CFy-7Q%838X$wN9`%v#+XYxm>^C&AYT})sm)EIsY`l5 z&+vUfJ0Lw4-eypriS_gNY8{Z~P2oGw6Q+mv9AAAGq*~MX>eR{=5AcFOv9#C>vBh>n zD)tgzeGjB!uke@jrDn_$t63}E-D~_jxQ_XScz1Ii!K8PS#5eeJU}w^Me~a%=#9Zku z_)r!@ruhE-u{g#@r1i#}=S}5VumS7;r5~EWI(>U_yk37GX#?~47HEZTif=CFLTJIx X7ur_ut6#wD;K8iKcELZcbwB(E=XH|# delta 1479 zcmYk6Nl#Q!5JpQ-5g8&eF+>Ggah^7Aj0O@kZj9RCfQUGvA~=BagmxpMI3bEZ!lmww z3lpP%2&aU^bDDRJot#wNukNd=SNHb&-dJp^DKBfTh?o-*wej|2OHui1Dw!>mr0WC2%a@Y<~A7*X-1DW8OZ$ zghQ|l_P}B21YV&7a03M@zvO)VB7*fDAtWN?(Yw4vmGufZDdh_89@d|Y8oLi_Hl|-{l=>yXfE`(A7}A(WGwlJI z#f+tf9^$8lj9b_}W7#w2c8{dHR>b$NZ2+%Yp#f(EiqHt@u06t6Psv8{)mkAXdyH=~ zCz9^%7{2-@NV%TitEXH~@zuyx_?K)P!DO2uC3}Xiz6DaU=lJR=*$aF%8%t;X65oa` zWPE}*^>6SBjCoA68Z(;60*)*FUtZ(;4Knush3aHI9hIeIewW=VR$l*+a3D!cMYUWKj`kz!gT^5k)|70bIdo;=v0+NG8aP0X%qfxvT%kzvacm z=b7nJz}SV0eJ>hAi;=Z0FctRc&?wrq*Nu8u61n0yWEZO;f}X>Tl-E8024h&;b0 z^ec!aevR1ci`A|2cDY*Fs&o3+7bq`@_4{(U+C-T6J?{_Wj!0>ShM- zufASvE?2g6)^eI_UF-?3)!O&pS}mDA*X-Ns%AdZ#P3*EC{cpX-UFV$RM4t5^GK`2l zx7a22b_NmeCvXwlC3c^kezAVz=WCr{u!ibt7iaCm$UJr8UcBQux)9r&HR7C6L%*E< z9_$0?0y07!ZTo-y?elctR&cd5KN0v4nDwKV_%;l4Ja>s*#qEeOA(3aVtm%mB0LVpL z@STYdU+`Tib}xTqM-6=u-<|4Me<$CQu-s0*7aXzj(RUxVE9xG_mJ5lvV+Lg(r@OhA z<5&eDOTW0khW_FcVBb0X1K7Sv;FH+iYv2O5-%H>kw(lL-IdUcf``*rh{hUG98=djJwe;)0bukyyJBl_|PJ9vV8S3}jm|em)&%L^cyo@fwTtRD_a~18qM9#H@J)i#TX!nRc z#}c;R3H)$||@12Ur6ZQ^EOq~2p#P7y$!ufaBooi>< zd383OJEcU1xwjB!$~kg&wAIc{0VyJb$yPfLa>f~>t=4Ca0%DA|I%=uK#;T1sw}2R{ zt+wtM6Y9M;ATHnGC$}?!_HI18Gwgkcy&GplJjJ_ddl%ZqdB#at-|jY&LuT;!rjv*< z@)0wYcw>C$X~dd!zW)E}PU623;|$Coa{k{l&v}?dd}F^6Ydafv5&0_EynBiJlvW6_nTC!#Sy4tc_V)9k2w>2Y-rMQ|UE}m`ESBGtR@Y$UnzJVK&WCqvqc6*)^~%=f-23(QwXF=^ zUv0hES}AYqtnO*5R*{bK#bFH|eRU=7yPF3#LXkOlHYU+nQbRfw(49C6Obpk5g8_rcB=nJH~0`(&U1~BReTsRCM5Q?z_Df`t`#5`alu=&eE5QIOR;gMTP`HxdJM`w&UDh3V^~EYOTYMd75&90z}{o{ zd$H|#;FH+)HEh-&i@hV~==HbHGl9MDN_&3NdQW2)k*G&} z2608cv)Jb8CH@@RyOs<8d2ILTzkv44a?Z&R+P&7>!{1@FoVbru*6Or|0)4LaLC(Dw z(dM-m#yXpF#*U)xnVk3%+B4MpU&tf zcw@EI<{e{#?Rx{_@*aNDok_I4@$AmH{Sez5XGA>By=mJEZQ~}8DOm6BHe#P=@pz|G zh%xdJGo5&2yyqFjoHf4o|LjiUzY^mN%p!6FRlBh|4|CYwv2VoO&cw)yp0le0CCc;3kEoGm1NnHb;EBH~_Ga1XKN>}_z55|=|Sk=1wb7;(Sx w`u)H4oxJ*k(v-@!d_G5`Po diff --git a/shaders/bin/shadow.frag.json b/shaders/bin/shadow.frag.json index ec4afe4..5da5226 100644 --- a/shaders/bin/shadow.frag.json +++ b/shaders/bin/shadow.frag.json @@ -1 +1 @@ -{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 0 } +{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 0, "inputs": [], "outputs": [] } diff --git a/shaders/bin/shadow.vert.json b/shaders/bin/shadow.vert.json index 51723fc..e6fb933 100644 --- a/shaders/bin/shadow.vert.json +++ b/shaders/bin/shadow.vert.json @@ -1 +1 @@ -{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 3 } +{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 3, "inputs": [{ "name": "in.var.TEXCOORD0", "type": "uint", "location": 0 }], "outputs": [] } diff --git a/shaders/bin/sky.frag.json b/shaders/bin/sky.frag.json index ec4afe4..538fe1a 100644 --- a/shaders/bin/sky.frag.json +++ b/shaders/bin/sky.frag.json @@ -1 +1 @@ -{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 0 } +{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 0, "inputs": [{ "name": "in.var.TEXCOORD0", "type": "float3", "location": 0 }], "outputs": [{ "name": "out.var.SV_Target0", "type": "float4", "location": 0 }, { "name": "out.var.SV_Target3", "type": "uint", "location": 3 }] } diff --git a/shaders/bin/sky.vert.json b/shaders/bin/sky.vert.json index e362be2..58b6196 100644 --- a/shaders/bin/sky.vert.json +++ b/shaders/bin/sky.vert.json @@ -1 +1 @@ -{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 2 } +{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 2, "inputs": [], "outputs": [{ "name": "out.var.TEXCOORD0", "type": "float3", "location": 0 }] } diff --git a/shaders/bin/ssao.comp.msl b/shaders/bin/ssao.comp.msl index 56c9b2c..8c57461 100644 --- a/shaders/bin/ssao.comp.msl +++ b/shaders/bin/ssao.comp.msl @@ -51,105 +51,105 @@ kernel void main0(texture2d voxelTexture [[texture(0)]], texture2d uint2 _62 = uint2(ssaoTexture.get_width(), ssaoTexture.get_height()); uint _63 = _62.x; uint _64 = _62.y; - bool _74; - if (!(gl_GlobalInvocationID.x >= _63)) + bool _73; + if (gl_GlobalInvocationID.x < _63) { - _74 = gl_GlobalInvocationID.y >= _64; + _73 = gl_GlobalInvocationID.y >= _64; } else { - _74 = true; + _73 = true; } - if (_74) + if (_73) { break; } ssaoTexture.write(float4(0.0), uint2(gl_GlobalInvocationID.xy)); - uint4 _80 = voxelTexture.read(uint2(gl_GlobalInvocationID.xy), 0u); - uint _81 = _80.x; - if (!(((_81 >> 0u) & 1u) != 0u)) + uint4 _79 = voxelTexture.read(uint2(gl_GlobalInvocationID.xy), 0u); + uint _80 = _79.x; + if ((_80 & 1u) == 0u) { break; } - float2 _88 = float2(gl_GlobalInvocationID.xy); - float2 _91 = float2(float(_63), float(_64)); - float2 _92 = _88 / _91; - uint _95 = ((_81 >> 1u) & 15u) - 1u; - float4 _97 = positionTexture.read(uint2(gl_GlobalInvocationID.xy), 0u); - float _100 = precise::max(abs(_97.w), 1.0); - float2 _103 = (float2(75.0) / _91) / float2(_100); - float _105; - _105 = 0.0; + float2 _85 = float2(gl_GlobalInvocationID.xy); + float2 _88 = float2(float(_63), float(_64)); + float2 _89 = _85 / _88; + uint _92 = ((_80 >> 1u) & 15u) - 1u; + float4 _94 = positionTexture.read(uint2(gl_GlobalInvocationID.xy), 0u); + float _97 = precise::max(abs(_94.w), 1.0); + float2 _100 = (float2(75.0) / _88) / float2(_97); + float _102; + _102 = 0.0; spvUnsafeArray _57; - float _106; - for (int _108 = -2; _108 <= 2; _105 = _106, _108++) + float _103; + for (int _105 = -2; _105 <= 2; _102 = _103, _105++) { - _106 = _105; - float _114; - for (int _116 = -2; _116 <= 2; _106 = _114, _116++) + _103 = _102; + float _111; + for (int _113 = -2; _113 <= 2; _103 = _111, _113++) { - float2 _125 = _92 + (float2(float(_108), float(_116)) * _103); - uint2 _139 = uint2((_125 + (((fract(float2(sin(dot(_125, float2(127.09999847412109375, 311.70001220703125))) * 43758.546875, sin(dot(_125, float2(269.5, 183.3000030517578125))) * 43758.546875)) * 2.0) - float2(1.0)) * _103)) * _91); - bool _145; - if (!(_108 == 0)) + float2 _122 = _89 + (float2(float(_105), float(_113)) * _100); + uint2 _136 = uint2((_122 + (((fract(float2(sin(dot(_122, float2(127.09999847412109375, 311.70001220703125))) * 43758.546875, sin(dot(_122, float2(269.5, 183.3000030517578125))) * 43758.546875)) * 2.0) - float2(1.0)) * _100)) * _88); + bool _141; + if (_105 != 0) { - _145 = _116 == 0; + _141 = _113 == 0; } else { - _145 = true; + _141 = true; } - bool _155; - if (!((!((!_145) ? false : true)) ? false : true)) + bool _149; + if (!_141) { - _155 = _139.x >= _63; + _149 = _136.x >= _63; } else { - _155 = true; + _149 = true; } - bool _161; - if (!_155) + bool _155; + if (!_149) { - _161 = _139.y >= _64; + _155 = _136.y >= _64; } else { - _161 = true; + _155 = true; } - if (_161) + if (_155) { - _114 = _106; + _111 = _103; continue; } - bool _199; + bool _193; do { - if (!(((voxelTexture.read(uint2(_139), 0u).x >> 0u) & 1u) != 0u)) + if ((voxelTexture.read(uint2(_136), 0u).x & 1u) == 0u) { - _199 = false; + _193 = false; break; } - float4 _177 = positionTexture.read(uint2(_139), 0u); - float _178 = _177.z; - float _179 = _97.z; - _57[0] = _178 - _179; - _57[1] = _179 - _178; - float _184 = _177.x; - float _185 = _97.x; - _57[2] = _184 - _185; - _57[3] = _185 - _184; - float _190 = _177.y; - float _191 = _97.y; - _57[4] = _190 - _191; - _57[5] = _191 - _190; - _199 = _57[_95] > 0.0500000007450580596923828125; + float4 _171 = positionTexture.read(uint2(_136), 0u); + float _172 = _171.z; + float _173 = _94.z; + _57[0] = _172 - _173; + _57[1] = _173 - _172; + float _178 = _171.x; + float _179 = _94.x; + _57[2] = _178 - _179; + _57[3] = _179 - _178; + float _184 = _171.y; + float _185 = _94.y; + _57[4] = _184 - _185; + _57[5] = _185 - _184; + _193 = _57[_92] > 0.0500000007450580596923828125; break; } while(false); - _114 = _106 + (float(_199) / precise::max(distance(_88, float2(_139)), 1.0)); + _111 = _103 + (float(_193) / precise::max(distance(_85, float2(_136)), 1.0)); } } - ssaoTexture.write(float4(_105 / _100), uint2(gl_GlobalInvocationID.xy)); + ssaoTexture.write(float4(_102 / _97), uint2(gl_GlobalInvocationID.xy)); break; } while(false); } diff --git a/shaders/bin/ssao.comp.spv b/shaders/bin/ssao.comp.spv index b5c1384611da067f7f728d53c87349d6dd0c2f48..c02ba6650b078124e0d0a94457d821312f8388f9 100644 GIT binary patch literal 4484 zcmaKu`J0br6o=pJ+t|n0s*!zYim@gPQ%%bhLaBs_!N{0lhG-o`Dru977VVaj(yC2b z{E|PQf1=;oujszNo}+1U^|(IH=d90p&ilOYcUra>*fz_~%d)IRYcJ$*&Y&y+5z`wUHSDnuaIOXP&==`B?Rg~A zRqqEpr-&NP|J3Qzr`7G_eBjyC&A$MYl$@F#`i1Dbf80|RH49UW_J|n(&yH;^3*F~( zvSR$%oPp@ZXpfjd@a;bpm4`kUomCq93_)?mqA1N`DBO6@J`8x@Lmv+JPW9ntX!mT+ z%6Y_6cNG#*bcW_)&GA`y{{PDvk#dYR$M@k}IqvC9-Df1yWvtKXVx+zK-1HYC-BWuH zy1fKB0IwehxjCbd?&G=4@q6O?piO@X(wgq8J|^kL_eUR#G}b$3{y3!h+9#nGA)TE| z-E-=9se1DHvykp=r_Yl!A$lwejYGJ`?h4e1#TUE$5YR@!lUOn$8FfO`~BRM;^xD( zdp76gcj9*7U3XrikPDKn`Mm6RVe)%#I+3ky5%3u~d;OiLqrDPnx35K@D~L1P0q+Mq zL!5On+#C^cOW?-pbEZ{DXRP%8xzAGI9dORez;d834_OWR1AQxiz9Y=SdwVC)@9*d@ zbiWd*-{o`FUjwwer`#S^C0!XkxUYQ}Qw!=q^spLk5Bk;sebGZbTz~Y?ko<^T5Bk>v z?e-wAr8m#L4%mO_cfqX{^IQ)%M*Eg@cQ(MaJJ*fLb~oHRrEe!TYu^L37lL@s_riUi zc|gB4jlB=(8w4W%ez^GqLF7LGk9_@+-w4-de)PT(Zrw&;eqZD!V7`0m-;w&?4A(ap zY)-ZZb3Dt2Ami*?;M$jfIQv$(ed>$2hv3@1n>Eb31i1}pKS+J=&cndj=L5e7k04#% z8-0%gZ9X%3d`Gs!eMaVamm)^#eX;gqpaA%+jW>TEb@lB4`a^%bnf^r5?deIl%bv79 z1+>|dJidWX!#$rXzWY1j+NT2hj67xZ`3&4X?cI25Mqj(&`t9Rcq{}|EKL@nghdlat z9&R5#Orc+O<09uU+<5aM=RLSNy@5IE#>L+6!|lfv zwj*%+aYgM9;Ku5U+8@HL?f2N)>c&ORM{wiKi=2<)=JWyPs2dl1e*(83?@8D`h1-v| zsC^V}tiGuI8Qj{#fVI_)i=5Bl#+w&8U%<^74$M(EF8p7@_0I=BZ=cOqK>JaiOE2Ux zpsgcldPlq~@!ow69}2uj$AI@|fBKu?I9$K)Ll@xhx%+$r^z8*3lkHphGN7;NJ6VVB zUgp&TV|;Iow~t2h^N?%6YT$h^e-+aE+>rF;NmoYB3V1b$oT?PF5*fXI2VV**fpcny b{2sIii`iRV0gQ9G_avlyEC1r@P5^%c5Y&_~ literal 4604 zcmaKuXLpuG5Qbj^Q6Vt_0|W#$NDmm5P(>gR6-y8hRICt5ga9Fdgk}vOh>F+{6)Y$g ziekZv4Y6Q>AK;(xoBar0*P9)Uk>hf1=AL_Ic4v2==Xuj1r{5`=%t@I{rXX{a{~cX3 zIax(}LGp)V^D-xA^(j>|tIC?1YsyB9Jm36+Ob1OiR!B}RJO|WQ*DX;u+67&$D>ya5 zRXgy{{MiI^$>|7hUfoz*HoT^+uD*JHExx)rD;ieSE}m7ps(JY`<*a@(_C)z?D%04| zRM%YBup~;H$F={PpPT7~-qcjx@K0{Xf9+ukow<)Z&cHqe&1F%>)S)yxV~}s zZN6(7Z|g^W4_50;tON`tSMJ)5@bj}?%f#-)PlK0a{nogCK|8+?-?gka-UWDmF`svH z^hnkC@K49jWVTLr{vucjhvso^Zm2!5L)e417&xanJwe+!df|Jn#l+9R zx=-gE#_8(!2KFIh4$uGC@#Dw!-N%{0y+z+=!OP2!O%DHT{B1vMuZ%fM@Xb+=oWAhP z!3~w+doM?;M*m&Y58oX1$mtK?^keCi@CV>CDq@|1INp&cO=mF(ZoX$R82G%0KLqYG z)r%)X-Mx8Mo<|IQM+q6Ftu&i!jd$t!{a?+{RAa6+z7Hp=aZS(Eb%tRb=6X-(V(ra) zGhT*uP4yzWJrCQLs2>NpHGW52$9-Aj_r&)>&3HN1IbBzOMDoq=gFg~$uFtIXqp;Si zkHas;dUg(d_i5ar?;d>L9QyWb|Mu;CqZ7A>QOsoDaqjNpSG+M;Yh8ORaQ^Z5?)yUE ze82GjIIQCjxbNUazvFhS1^A8n zm`D2)C+6B$0KW;Ihxx8yA6H@>_F+yHP_qxY^Le)V>eHCdvzrP$f8p?a;+(I7d(QJX z3%R*@z+sNh*EEm|<}jbn-SniH>oedT#vROn8+RO{%JaS&sGD~em4^_bYF^fAvQ4{6@|O_NwnYay{^_!@mJu0jAT3`8NV{)Hf#W zCb;t$i+$Y;cVF%y_H_$f-EZ#NwAVRsb@Mz^zb$it?}umVyI&3Fg7#->zqbP8K3n-z ztIY%6qxWMxpLx`4fVy{JPCke|)WUlM_Yix%4Q`Eyy!mi*jd`XEu%5BjXVi7-fX|8N zybvq`#)`0uK_6hO9vIu7?sy5@xWA1*(|rThxWjuj-U!rPQ*IASldp{)T-QF#Sq7Rw z^w12q2V={DvFKq1+<5e`GQ~039*nO7>h>USpf~ru8rXmMx5J$)&hrkqIqK`vvvVh0 z-E&=&w7cLwQ^vNSIrrT_y#&NP-vjqPeUFSgr@1Y_Sbq@pYv9)R15v*g9`(kfejVJH z_0jvi@D^aqdf$chz30d8ynSeLZ>;OYZG?0q9#z3txb$G1;ok@o;x-Dk6& zvo6Oz2-Np5e-G>?;Mw~vkMF}nN%#A(8Sd~oQhykzd57|t=MlJf<~%-Ik)!qbaji!| zG4Srqw?5W<3~qckXJqc-VuoW&lvaYy_{?1ihF7rzm&!PN`1 zw)NS59j!Rj;xHUb2HTveo+8@B}#}V3xaQkt@ z+y~(18jHC^R0`TPvF+{0@mo87i)hCw;!LC&_09Pk6O%q5N@uq znEP|Ma}Ng2t$z?i%^|q?)F_?K|wbAW$GcsE}G^#j~X5A4@T>xymr zO!#cXyLT8q2>9HX@AKj}%K5$l#(gL9fPWLHe+!KH?yO1LckqS4Sljo~_tUkkTL#S8 z3Cy>T7V3+z%Rw{nd9Z#d*5`L+@)spv8#VRt#UN@Hq?`t9^!h!#4%C47JNF2@6PU-^ U@~OZ)hii|+y0-RDZg&j$3!Y4+ZU6uP diff --git a/shaders/bin/transparent.frag.json b/shaders/bin/transparent.frag.json index 491809c..70f10ee 100644 --- a/shaders/bin/transparent.frag.json +++ b/shaders/bin/transparent.frag.json @@ -1 +1 @@ -{ "samplers": 3, "storage_textures": 0, "storage_buffers": 1, "uniform_buffers": 3 } +{ "samplers": 3, "storage_textures": 0, "storage_buffers": 1, "uniform_buffers": 3, "inputs": [{ "name": "in.var.TEXCOORD0", "type": "float4", "location": 0 }, { "name": "in.var.TEXCOORD1", "type": "float3", "location": 1 }, { "name": "in.var.TEXCOORD2", "type": "float3", "location": 2 }, { "name": "in.var.TEXCOORD3", "type": "uint", "location": 3 }, { "name": "in.var.TEXCOORD4", "type": "float2", "location": 4 }], "outputs": [{ "name": "out.var.SV_Target0", "type": "float4", "location": 0 }] } diff --git a/shaders/bin/transparent.frag.msl b/shaders/bin/transparent.frag.msl index c8000b3..773a2de 100644 --- a/shaders/bin/transparent.frag.msl +++ b/shaders/bin/transparent.frag.msl @@ -59,109 +59,109 @@ fragment main0_out main0(main0_in in [[stage_in]], constant type_UniformBuffer& float _131 = float((lightBuffer._m0[_118].Color & 4278190080u) >> 24u); float3 _138 = (float3(float(lightBuffer._m0[_118].X), float(lightBuffer._m0[_118].Y), float(lightBuffer._m0[_118].Z)) + float3(0.5, 0.75, 0.5)) - in.in_var_TEXCOORD0.xyz; float _139 = length(_138); - bool _145; - if (!(_139 >= _131)) + bool _144; + if ((isunordered(_139, _131) || _139 < _131)) { - _145 = _131 <= 0.0; + _144 = _131 <= 0.0; } else { - _145 = true; + _144 = true; } - if (_145) + if (_144) { _116 = _115; continue; } - float _151 = fast::clamp(dot(in.in_var_TEXCOORD1, _138 / float3(_139)), 0.0, 1.0); - if (_151 <= 0.0) + float _150 = fast::clamp(dot(in.in_var_TEXCOORD1, _138 / float3(_139)), 0.0, 1.0); + if (_150 <= 0.0) { _116 = _115; continue; } - float _157 = fast::clamp(1.0 - (_139 / _131), 0.0, 1.0); - _116 = _115 + ((float3(float((lightBuffer._m0[_118].Color & 255u) >> 0u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_118].Color & 65280u) >> 8u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_118].Color & 16711680u) >> 16u) * 0.0039215688593685626983642578125) * _151) * (_157 * _157)); + float _156 = fast::clamp(1.0 - (_139 / _131), 0.0, 1.0); + _116 = _115 + ((float3(float(lightBuffer._m0[_118].Color & 255u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_118].Color & 65280u) >> 8u) * 0.0039215688593685626983642578125, float((lightBuffer._m0[_118].Color & 16711680u) >> 16u) * 0.0039215688593685626983642578125) * _150) * (_156 * _156)); } - float _239; + float _235; do { - float4 _186 = UniformBuffer_1.ShadowTransform * float4(in.in_var_TEXCOORD0.xyz, 1.0); - float3 _190 = _186.xyz / float3(_186.w); - float2 _193 = (_190.xy * 0.5) + float2(0.5); - float _195 = 1.0 - _193.y; - float2 _196 = _193; - _196.y = _195; - float _197 = _193.x; - bool _203; - if (!(_197 < 0.0)) + float4 _184 = UniformBuffer_1.ShadowTransform * float4(in.in_var_TEXCOORD0.xyz, 1.0); + float3 _188 = _184.xyz / float3(_184.w); + float2 _191 = (_188.xy * 0.5) + float2(0.5); + float _193 = 1.0 - _191.y; + float2 _194 = _191; + _194.y = _193; + float _195 = _191.x; + bool _200; + if ((isunordered(_195, 0.0) || _195 >= 0.0)) { - _203 = _197 > 1.0; + _200 = _195 > 1.0; } else { - _203 = true; + _200 = true; } - bool _208; - if (!_203) + bool _205; + if (!_200) { - _208 = _195 < 0.0; + _205 = _193 < 0.0; } else { - _208 = true; + _205 = true; } - bool _213; - if (!_208) + bool _210; + if (!_205) { - _213 = _195 > 1.0; + _210 = _193 > 1.0; } else { - _213 = true; + _210 = true; } - if (_213) + if (_210) { - _239 = 0.4000000059604644775390625; + _235 = 0.4000000059604644775390625; break; } - float _228; - if (((in.in_var_TEXCOORD3 >> 0u) & 1u) != 0u) + float _224; + if ((in.in_var_TEXCOORD3 & 1u) != 0u) { - float _224 = dot(in.in_var_TEXCOORD1, fast::normalize(float4(UniformBuffer_1.ShadowTransform[0][2], UniformBuffer_1.ShadowTransform[1][2], UniformBuffer_1.ShadowTransform[2][2], UniformBuffer_1.ShadowTransform[3][2]).xyz)); - if (_224 > 0.0) + float _220 = dot(in.in_var_TEXCOORD1, fast::normalize(float4(UniformBuffer_1.ShadowTransform[0][2], UniformBuffer_1.ShadowTransform[1][2], UniformBuffer_1.ShadowTransform[2][2], UniformBuffer_1.ShadowTransform[3][2]).xyz)); + if (_220 > 0.0) { - _239 = 0.0; + _235 = 0.0; break; } - _228 = _224; + _224 = _220; } else { - _228 = -0.7070000171661376953125; + _224 = -0.7070000171661376953125; } - if (_190.z < (shadowTexture.sample(shadowSampler, _196, level(0.0)).x + 0.001000000047497451305389404296875)) + if (_188.z < (shadowTexture.sample(shadowSampler, _194, level(0.0)).x + 0.001000000047497451305389404296875)) { - _239 = _228 * (-0.4000000059604644775390625); + _235 = _224 * (-0.4000000059604644775390625); break; } else { - _239 = 0.0; + _235 = 0.0; break; } break; // unreachable workaround } while(false); - float3 _243 = in.in_var_TEXCOORD0.xyz - UniformBuffer_2.PlayerPosition; - float _275; + float3 _239 = in.in_var_TEXCOORD0.xyz - UniformBuffer_2.PlayerPosition; + float _271; if (((in.in_var_TEXCOORD3 >> 26u) & 63u) == 16u) { - _275 = _110 + ((in.in_var_TEXCOORD0.y - positionTexture.sample(positionSampler, in.in_var_TEXCOORD4).y) * 0.100000001490116119384765625); + _271 = _110 + ((in.in_var_TEXCOORD0.y - positionTexture.sample(positionSampler, in.in_var_TEXCOORD4).y) * 0.100000001490116119384765625); } else { - _275 = _110; + _271 = _110; } - out.out_var_SV_Target0 = float4(mix(_108.xyz * (((_115 * 2.0) + float3(0.5)) + float3(_239)), mix(float3(0.2199999988079071044921875, 0.3490000069141387939453125, 0.70200002193450927734375), float3(0.21199999749660491943359375, 0.7730000019073486328125, 0.9570000171661376953125), float3((precise::atan2(_243.y, length(float2(_243.xz))) + 1.57079637050628662109375) * 0.3183098733425140380859375)), float3(precise::min(powr(distance(in.in_var_TEXCOORD0.xz, UniformBuffer_2.PlayerPosition.xz) * 0.0040000001899898052215576171875, 2.5), 1.0))), _275); + out.out_var_SV_Target0 = float4(mix(_108.xyz * (((_115 * 2.0) + float3(0.5)) + float3(_235)), mix(float3(0.2199999988079071044921875, 0.3490000069141387939453125, 0.70200002193450927734375), float3(0.21199999749660491943359375, 0.7730000019073486328125, 0.9570000171661376953125), float3((precise::atan2(_239.y, length(float2(_239.xz))) + 1.57079637050628662109375) * 0.3183098733425140380859375)), float3(precise::min(powr(distance(in.in_var_TEXCOORD0.xz, UniformBuffer_2.PlayerPosition.xz) * 0.0040000001899898052215576171875, 2.5), 1.0))), _271); return out; } diff --git a/shaders/bin/transparent.frag.spv b/shaders/bin/transparent.frag.spv index d551712d258a1f7ca44353e23cb06d549837a990..f4517288de77e06e94faa48ea6afc8cd8eaa570a 100644 GIT binary patch literal 7316 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 L^gYAOv%voW>F@bX literal 7388 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 diff --git a/shaders/bin/transparent.vert.json b/shaders/bin/transparent.vert.json index 51723fc..0199b49 100644 --- a/shaders/bin/transparent.vert.json +++ b/shaders/bin/transparent.vert.json @@ -1 +1 @@ -{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 3 } +{ "samplers": 0, "storage_textures": 0, "storage_buffers": 0, "uniform_buffers": 3, "inputs": [{ "name": "in.var.TEXCOORD0", "type": "uint", "location": 0 }], "outputs": [{ "name": "out.var.TEXCOORD0", "type": "float4", "location": 0 }, { "name": "out.var.TEXCOORD1", "type": "float3", "location": 1 }, { "name": "out.var.TEXCOORD2", "type": "float3", "location": 2 }, { "name": "out.var.TEXCOORD3", "type": "uint", "location": 3 }, { "name": "out.var.TEXCOORD4", "type": "float2", "location": 4 }] } diff --git a/shaders/bin/ui.comp.msl b/shaders/bin/ui.comp.msl index a760167..29daf19 100644 --- a/shaders/bin/ui.comp.msl +++ b/shaders/bin/ui.comp.msl @@ -23,142 +23,142 @@ kernel void main0(constant type_UniformBuffer& UniformBuffer [[buffer(0)]], cons do { uint2 _59 = uint2(colorTexture.get_width(), colorTexture.get_height()); - bool _71; - if (!(gl_GlobalInvocationID.x >= _59.x)) + bool _70; + if (gl_GlobalInvocationID.x < _59.x) { - _71 = gl_GlobalInvocationID.y >= _59.y; + _70 = gl_GlobalInvocationID.y >= _59.y; } else { - _71 = true; + _70 = true; } - if (_71) + if (_70) { break; } - float2 _76 = float2(UniformBuffer.Viewport); - float2 _77 = _76 * float2(0.0007812500116415321826934814453125, 0.001388888922519981861114501953125); - float _80 = precise::max(_77.x, _77.y); - float _81 = 50.0 * _80; - float _82 = 10.0 * _80; - float2 _85 = float2(_82) + float2(_81); - float _86 = float(gl_GlobalInvocationID.x); - float _93 = float(uint(UniformBuffer.Viewport.y) - gl_GlobalInvocationID.y); - bool _99; - if (_86 > _82) + float2 _75 = float2(UniformBuffer.Viewport); + float2 _76 = _75 * float2(0.0007812500116415321826934814453125, 0.001388888922519981861114501953125); + float _79 = precise::max(_76.x, _76.y); + float _80 = 50.0 * _79; + float _81 = 10.0 * _79; + float2 _84 = float2(_81) + float2(_80); + float _85 = float(gl_GlobalInvocationID.x); + float _92 = float(uint(UniformBuffer.Viewport.y) - gl_GlobalInvocationID.y); + bool _98; + if (_85 > _81) { - _99 = _86 < _85.x; + _98 = _85 < _84.x; } else { - _99 = false; + _98 = false; } - bool _103; - if (_99) + bool _102; + if (_98) { - _103 = _93 > _82; + _102 = _92 > _81; } else { - _103 = false; + _102 = false; } - bool _108; - if (_103) + bool _107; + if (_102) { - _108 = _93 < _85.y; + _107 = _92 < _84.y; } else { - _108 = false; + _107 = false; } - if (_108) + if (_107) { - float3 _121 = float3((_86 - _82) / _81, 1.0 - ((_93 - _82) / _81), float(UniformBuffer_1.Index)); - float4 _123 = atlasTexture.sample(atlasSampler, _121.xy, uint(rint(_121.z)), level(0.0)); - float _124 = _123.w; - if (_124 > 0.001000000047497451305389404296875) + float3 _120 = float3((_85 - _81) / _80, 1.0 - ((_92 - _81) / _80), float(UniformBuffer_1.Index)); + float4 _122 = atlasTexture.sample(atlasSampler, _120.xy, uint(rint(_120.z)), level(0.0)); + float _123 = _122.w; + if (_123 > 0.001000000047497451305389404296875) { spvImageFence(colorTexture); - float4 _130 = colorTexture.read(uint2(gl_GlobalInvocationID.xy)); - float _131 = fast::clamp(_124, 0.0, 1.0); - float _136 = 1.0 - _131; - colorTexture.write(float4((_123.xyz * _131) + (_130.xyz * _136), _131 + (_130.w * _136)), uint2(gl_GlobalInvocationID.xy)); + float4 _129 = colorTexture.read(uint2(gl_GlobalInvocationID.xy)); + float _130 = fast::clamp(_123, 0.0, 1.0); + float _135 = 1.0 - _130; + colorTexture.write(float4((_122.xyz * _130) + (_129.xyz * _135), _130 + (_129.w * _135)), uint2(gl_GlobalInvocationID.xy)); break; } } - float _146 = 8.0 * _80; - float _147 = 2.0 * _80; - float2 _148 = _76 * 0.5; - float2 _149 = float2(_146, _147); - float2 _150 = _148 - _149; - float2 _151 = _148 + _149; - float2 _152 = float2(_147, _146); - float2 _153 = _148 - _152; - float2 _154 = _148 + _152; - bool _161; - if (_86 > _150.x) + float _145 = 8.0 * _79; + float _146 = 2.0 * _79; + float2 _147 = _75 * 0.5; + float2 _148 = float2(_145, _146); + float2 _149 = _147 - _148; + float2 _150 = _147 + _148; + float2 _151 = float2(_146, _145); + float2 _152 = _147 - _151; + float2 _153 = _147 + _151; + bool _160; + if (_85 > _149.x) { - _161 = _93 > _150.y; + _160 = _92 > _149.y; } else { - _161 = false; + _160 = false; } - bool _166; - if (_161) + bool _165; + if (_160) { - _166 = _86 < _151.x; + _165 = _85 < _150.x; } else { - _166 = false; + _165 = false; } - bool _171; - if (_166) + bool _170; + if (_165) { - _171 = _93 < _151.y; + _170 = _92 < _150.y; } else { - _171 = false; + _170 = false; } - bool _192; - if (!_171) + bool _191; + if (!_170) { - bool _181; - if (_86 > _153.x) + bool _180; + if (_85 > _152.x) { - _181 = _93 > _153.y; + _180 = _92 > _152.y; } else { - _181 = false; + _180 = false; } - bool _186; - if (_181) + bool _185; + if (_180) { - _186 = _86 < _154.x; + _185 = _85 < _153.x; } else { - _186 = false; + _185 = false; } - bool _191; - if (_186) + bool _190; + if (_185) { - _191 = _93 < _154.y; + _190 = _92 < _153.y; } else { - _191 = false; + _190 = false; } - _192 = _191; + _191 = _190; } else { - _192 = true; + _191 = true; } - if (_192) + if (_191) { colorTexture.write(float4(1.0), uint2(gl_GlobalInvocationID.xy)); break; diff --git a/shaders/bin/ui.comp.spv b/shaders/bin/ui.comp.spv index fa4614ecfbac71ae8d2e608afa7247957e8b9fd5..2f331a871aea2252a738a34267421181eab598f9 100644 GIT binary patch literal 4712 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 o9{)!Ch`ulZkis_on_ground = false; } - player->query = world_raycast(&player->camera, REACH); } else { @@ -237,6 +236,7 @@ void player_move(player_t* player, float dt) float dz = keys[SDL_SCANCODE_W] - keys[SDL_SCANCODE_S]; camera_move(&player->camera, dx * speed * dt, dy * speed * dt, dz * speed * dt); } + player->query = world_raycast(&player->camera, REACH); } void player_place_block(const player_t* player)