Also unpack regular unary/binary operations on MSL.
Apparently MSL gets confused when you have packed_float3 op float3 ...
This commit is contained in:
parent
dc565136fb
commit
192a882df3
@ -103,7 +103,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float2 _95 = _88.xy;
|
||||
float2 _96 = _88.zw;
|
||||
float2 _97 = clamp(_82 + (float2(0.0, -2.0) * _7._m0.xy), _95, _96);
|
||||
float3 _109 = _11._m5 * clamp(_8.sample(_9, _97, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _109 = float3(_11._m5) * clamp(_8.sample(_9, _97, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _113 = _12.sample(_13, _97, level(0.0));
|
||||
float _114 = _113.y;
|
||||
float3 _129;
|
||||
@ -118,7 +118,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _130 = _129 * 0.5;
|
||||
float4 _134 = float4(_130.x, _130.y, _130.z, float4(0.0).w);
|
||||
float2 _144 = clamp(_82 + (float2(-1.0) * _7._m0.xy), _95, _96);
|
||||
float3 _156 = _11._m5 * clamp(_8.sample(_9, _144, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _156 = float3(_11._m5) * clamp(_8.sample(_9, _144, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _160 = _12.sample(_13, _144, level(0.0));
|
||||
float _161 = _160.y;
|
||||
float3 _176;
|
||||
@ -134,7 +134,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _180 = _134.xyz + _177;
|
||||
float4 _181 = float4(_180.x, _180.y, _180.z, _134.w);
|
||||
float2 _191 = clamp(_82 + (float2(0.0, -1.0) * _7._m0.xy), _95, _96);
|
||||
float3 _203 = _11._m5 * clamp(_8.sample(_9, _191, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _203 = float3(_11._m5) * clamp(_8.sample(_9, _191, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _207 = _12.sample(_13, _191, level(0.0));
|
||||
float _208 = _207.y;
|
||||
float3 _223;
|
||||
@ -150,7 +150,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _227 = _181.xyz + _224;
|
||||
float4 _228 = float4(_227.x, _227.y, _227.z, _181.w);
|
||||
float2 _238 = clamp(_82 + (float2(1.0, -1.0) * _7._m0.xy), _95, _96);
|
||||
float3 _250 = _11._m5 * clamp(_8.sample(_9, _238, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _250 = float3(_11._m5) * clamp(_8.sample(_9, _238, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _254 = _12.sample(_13, _238, level(0.0));
|
||||
float _255 = _254.y;
|
||||
float3 _270;
|
||||
@ -166,7 +166,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _274 = _228.xyz + _271;
|
||||
float4 _275 = float4(_274.x, _274.y, _274.z, _228.w);
|
||||
float2 _285 = clamp(_82 + (float2(-2.0, 0.0) * _7._m0.xy), _95, _96);
|
||||
float3 _297 = _11._m5 * clamp(_8.sample(_9, _285, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _297 = float3(_11._m5) * clamp(_8.sample(_9, _285, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _301 = _12.sample(_13, _285, level(0.0));
|
||||
float _302 = _301.y;
|
||||
float3 _317;
|
||||
@ -182,7 +182,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _321 = _275.xyz + _318;
|
||||
float4 _322 = float4(_321.x, _321.y, _321.z, _275.w);
|
||||
float2 _332 = clamp(_82 + (float2(-1.0, 0.0) * _7._m0.xy), _95, _96);
|
||||
float3 _344 = _11._m5 * clamp(_8.sample(_9, _332, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _344 = float3(_11._m5) * clamp(_8.sample(_9, _332, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _348 = _12.sample(_13, _332, level(0.0));
|
||||
float _349 = _348.y;
|
||||
float3 _364;
|
||||
@ -198,7 +198,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _368 = _322.xyz + _365;
|
||||
float4 _369 = float4(_368.x, _368.y, _368.z, _322.w);
|
||||
float2 _379 = clamp(_82, _95, _96);
|
||||
float3 _391 = _11._m5 * clamp(_8.sample(_9, _379, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _391 = float3(_11._m5) * clamp(_8.sample(_9, _379, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _395 = _12.sample(_13, _379, level(0.0));
|
||||
float _396 = _395.y;
|
||||
float3 _411;
|
||||
@ -214,7 +214,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _415 = _369.xyz + _412;
|
||||
float4 _416 = float4(_415.x, _415.y, _415.z, _369.w);
|
||||
float2 _426 = clamp(_82 + (float2(1.0, 0.0) * _7._m0.xy), _95, _96);
|
||||
float3 _438 = _11._m5 * clamp(_8.sample(_9, _426, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _438 = float3(_11._m5) * clamp(_8.sample(_9, _426, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _442 = _12.sample(_13, _426, level(0.0));
|
||||
float _443 = _442.y;
|
||||
float3 _458;
|
||||
@ -230,7 +230,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _462 = _416.xyz + _459;
|
||||
float4 _463 = float4(_462.x, _462.y, _462.z, _416.w);
|
||||
float2 _473 = clamp(_82 + (float2(2.0, 0.0) * _7._m0.xy), _95, _96);
|
||||
float3 _485 = _11._m5 * clamp(_8.sample(_9, _473, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _485 = float3(_11._m5) * clamp(_8.sample(_9, _473, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _489 = _12.sample(_13, _473, level(0.0));
|
||||
float _490 = _489.y;
|
||||
float3 _505;
|
||||
@ -246,7 +246,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _509 = _463.xyz + _506;
|
||||
float4 _510 = float4(_509.x, _509.y, _509.z, _463.w);
|
||||
float2 _520 = clamp(_82 + (float2(-1.0, 1.0) * _7._m0.xy), _95, _96);
|
||||
float3 _532 = _11._m5 * clamp(_8.sample(_9, _520, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _532 = float3(_11._m5) * clamp(_8.sample(_9, _520, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _536 = _12.sample(_13, _520, level(0.0));
|
||||
float _537 = _536.y;
|
||||
float3 _552;
|
||||
@ -262,7 +262,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _556 = _510.xyz + _553;
|
||||
float4 _557 = float4(_556.x, _556.y, _556.z, _510.w);
|
||||
float2 _567 = clamp(_82 + (float2(0.0, 1.0) * _7._m0.xy), _95, _96);
|
||||
float3 _579 = _11._m5 * clamp(_8.sample(_9, _567, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _579 = float3(_11._m5) * clamp(_8.sample(_9, _567, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _583 = _12.sample(_13, _567, level(0.0));
|
||||
float _584 = _583.y;
|
||||
float3 _599;
|
||||
@ -278,7 +278,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _603 = _557.xyz + _600;
|
||||
float4 _604 = float4(_603.x, _603.y, _603.z, _557.w);
|
||||
float2 _614 = clamp(_82 + _7._m0.xy, _95, _96);
|
||||
float3 _626 = _11._m5 * clamp(_8.sample(_9, _614, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _626 = float3(_11._m5) * clamp(_8.sample(_9, _614, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _630 = _12.sample(_13, _614, level(0.0));
|
||||
float _631 = _630.y;
|
||||
float3 _646;
|
||||
@ -294,7 +294,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float3 _650 = _604.xyz + _647;
|
||||
float4 _651 = float4(_650.x, _650.y, _650.z, _604.w);
|
||||
float2 _661 = clamp(_82 + (float2(0.0, 2.0) * _7._m0.xy), _95, _96);
|
||||
float3 _673 = _11._m5 * clamp(_8.sample(_9, _661, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _673 = float3(_11._m5) * clamp(_8.sample(_9, _661, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _677 = _12.sample(_13, _661, level(0.0));
|
||||
float _678 = _677.y;
|
||||
float3 _693;
|
||||
|
@ -121,6 +121,6 @@ kernel void main0(device SSBO0& ssbo_140 [[buffer(0)]], device SSBO1& ssbo_430 [
|
||||
ssbo_430.content.m3s[5].c = _60.m3s[5].c;
|
||||
ssbo_430.content.m3s[6].c = _60.m3s[6].c;
|
||||
ssbo_430.content.m3s[7].c = _60.m3s[7].c;
|
||||
ssbo_430.content.m1.a = ssbo_430.content.m3.a * ssbo_430.m6[1][1];
|
||||
ssbo_430.content.m1.a = ssbo_430.content.m3.a * float2x3(ssbo_430.m6[1][1]);
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]
|
||||
main0_out out = {};
|
||||
out.gl_Position = _18.uMVP * in.aVertex;
|
||||
out.vColor = float4(0.0);
|
||||
float3 _39 = in.aVertex.xyz - _18.light.Position;
|
||||
float3 _39 = in.aVertex.xyz - float3(_18.light.Position);
|
||||
out.vColor += ((_18.light.Color * clamp(1.0 - (length(_39) / _18.light.Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(_39)));
|
||||
return out;
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
#include <metal_stdlib>
|
||||
#include <simd/simd.h>
|
||||
|
||||
using namespace metal;
|
||||
|
||||
struct UBO
|
||||
{
|
||||
packed_float3 color;
|
||||
float v;
|
||||
};
|
||||
|
||||
struct main0_in
|
||||
{
|
||||
float3 vIn [[user(locn0)]];
|
||||
};
|
||||
|
||||
struct main0_out
|
||||
{
|
||||
float3 FragColor [[color(0)]];
|
||||
};
|
||||
|
||||
fragment main0_out main0(main0_in in [[stage_in]], constant UBO& _15 [[buffer(0)]])
|
||||
{
|
||||
main0_out out = {};
|
||||
out.FragColor = cross(in.vIn, float3(_15.color) - in.vIn);
|
||||
return out;
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _21 [[buffer(0)]]
|
||||
out.vColor = float4(0.0);
|
||||
for (int _82 = 0; _82 < 4; )
|
||||
{
|
||||
float3 _54 = in.aVertex.xyz - _21.lights[_82].Position;
|
||||
float3 _54 = in.aVertex.xyz - float3(_21.lights[_82].Position);
|
||||
out.vColor += ((_21.lights[_82].Color * clamp(1.0 - (length(_54) / _21.lights[_82].Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(_54)));
|
||||
_82++;
|
||||
continue;
|
||||
|
@ -40,8 +40,8 @@ struct main0_out
|
||||
vertex main0_out main0(main0_in in [[stage_in]], constant _42& _44 [[buffer(12)]], constant _15& _17 [[buffer(13)]])
|
||||
{
|
||||
main0_out out = {};
|
||||
float4 _70 = _44._m0 * float4(_44._m3 + (in.m_25.xyz * (_44._m6 + _44._m7)), 1.0);
|
||||
out.m_72 = normalize(float4(in.m_25.xyz, 0.0) * _17._m1);
|
||||
float4 _70 = _44._m0 * float4(float3(_44._m3) + (in.m_25.xyz * (_44._m6 + _44._m7)), 1.0);
|
||||
out.m_72 = normalize(float4(in.m_25.xyz, 0.0) * float4x3(_17._m1));
|
||||
float4 _95 = _70;
|
||||
_95.y = -_70.y;
|
||||
out.gl_Position = _95;
|
||||
|
@ -31,7 +31,7 @@ vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]
|
||||
main0_out out = {};
|
||||
out.gl_Position = _18.mvp * in.aVertex;
|
||||
out.vNormal = in.aNormal;
|
||||
out.vColor = _18.color * _18.opacity;
|
||||
out.vColor = float3(_18.color) * _18.opacity;
|
||||
out.vSize = _18.targSize * _18.opacity;
|
||||
return out;
|
||||
}
|
||||
|
@ -103,7 +103,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
float2 _82 = gl_FragCoord.xy * _19._m23.xy;
|
||||
float4 _88 = _7._m2 * _7._m0.xyxy;
|
||||
float2 _97 = clamp(_82 + (float3(0.0, -2.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _109 = _11._m5 * clamp(_8.sample(_9, _97, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _109 = float3(_11._m5) * clamp(_8.sample(_9, _97, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _113 = _12.sample(_13, _97, level(0.0));
|
||||
float3 _129;
|
||||
if (_113.y > 0.0)
|
||||
@ -120,7 +120,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _135 = _77;
|
||||
_135._m0 = _134;
|
||||
float2 _144 = clamp(_82 + (float3(-1.0, -1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _156 = _11._m5 * clamp(_8.sample(_9, _144, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _156 = float3(_11._m5) * clamp(_8.sample(_9, _144, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _160 = _12.sample(_13, _144, level(0.0));
|
||||
float3 _176;
|
||||
if (_160.y > 0.0)
|
||||
@ -137,7 +137,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _182 = _135;
|
||||
_182._m0 = _181;
|
||||
float2 _191 = clamp(_82 + (float3(0.0, -1.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _203 = _11._m5 * clamp(_8.sample(_9, _191, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _203 = float3(_11._m5) * clamp(_8.sample(_9, _191, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _207 = _12.sample(_13, _191, level(0.0));
|
||||
float3 _223;
|
||||
if (_207.y > 0.0)
|
||||
@ -154,7 +154,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _229 = _182;
|
||||
_229._m0 = _228;
|
||||
float2 _238 = clamp(_82 + (float3(1.0, -1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _250 = _11._m5 * clamp(_8.sample(_9, _238, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _250 = float3(_11._m5) * clamp(_8.sample(_9, _238, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _254 = _12.sample(_13, _238, level(0.0));
|
||||
float3 _270;
|
||||
if (_254.y > 0.0)
|
||||
@ -171,7 +171,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _276 = _229;
|
||||
_276._m0 = _275;
|
||||
float2 _285 = clamp(_82 + (float3(-2.0, 0.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _297 = _11._m5 * clamp(_8.sample(_9, _285, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _297 = float3(_11._m5) * clamp(_8.sample(_9, _285, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _301 = _12.sample(_13, _285, level(0.0));
|
||||
float3 _317;
|
||||
if (_301.y > 0.0)
|
||||
@ -188,7 +188,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _323 = _276;
|
||||
_323._m0 = _322;
|
||||
float2 _332 = clamp(_82 + (float3(-1.0, 0.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _344 = _11._m5 * clamp(_8.sample(_9, _332, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _344 = float3(_11._m5) * clamp(_8.sample(_9, _332, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _348 = _12.sample(_13, _332, level(0.0));
|
||||
float3 _364;
|
||||
if (_348.y > 0.0)
|
||||
@ -205,7 +205,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _370 = _323;
|
||||
_370._m0 = _369;
|
||||
float2 _379 = clamp(_82 + (float3(0.0, 0.0, 1.0).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _391 = _11._m5 * clamp(_8.sample(_9, _379, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _391 = float3(_11._m5) * clamp(_8.sample(_9, _379, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _395 = _12.sample(_13, _379, level(0.0));
|
||||
float3 _411;
|
||||
if (_395.y > 0.0)
|
||||
@ -222,7 +222,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _417 = _370;
|
||||
_417._m0 = _416;
|
||||
float2 _426 = clamp(_82 + (float3(1.0, 0.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _438 = _11._m5 * clamp(_8.sample(_9, _426, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _438 = float3(_11._m5) * clamp(_8.sample(_9, _426, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _442 = _12.sample(_13, _426, level(0.0));
|
||||
float3 _458;
|
||||
if (_442.y > 0.0)
|
||||
@ -239,7 +239,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _464 = _417;
|
||||
_464._m0 = _463;
|
||||
float2 _473 = clamp(_82 + (float3(2.0, 0.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _485 = _11._m5 * clamp(_8.sample(_9, _473, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _485 = float3(_11._m5) * clamp(_8.sample(_9, _473, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _489 = _12.sample(_13, _473, level(0.0));
|
||||
float3 _505;
|
||||
if (_489.y > 0.0)
|
||||
@ -256,7 +256,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _511 = _464;
|
||||
_511._m0 = _510;
|
||||
float2 _520 = clamp(_82 + (float3(-1.0, 1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _532 = _11._m5 * clamp(_8.sample(_9, _520, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _532 = float3(_11._m5) * clamp(_8.sample(_9, _520, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _536 = _12.sample(_13, _520, level(0.0));
|
||||
float3 _552;
|
||||
if (_536.y > 0.0)
|
||||
@ -273,7 +273,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _558 = _511;
|
||||
_558._m0 = _557;
|
||||
float2 _567 = clamp(_82 + (float3(0.0, 1.0, 0.75).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _579 = _11._m5 * clamp(_8.sample(_9, _567, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _579 = float3(_11._m5) * clamp(_8.sample(_9, _567, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _583 = _12.sample(_13, _567, level(0.0));
|
||||
float3 _599;
|
||||
if (_583.y > 0.0)
|
||||
@ -290,7 +290,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _605 = _558;
|
||||
_605._m0 = _604;
|
||||
float2 _614 = clamp(_82 + (float3(1.0, 1.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _626 = _11._m5 * clamp(_8.sample(_9, _614, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _626 = float3(_11._m5) * clamp(_8.sample(_9, _614, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _630 = _12.sample(_13, _614, level(0.0));
|
||||
float3 _646;
|
||||
if (_630.y > 0.0)
|
||||
@ -307,7 +307,7 @@ fragment main0_out main0(constant _6& _7 [[buffer(0)]], constant _18& _19 [[buff
|
||||
_28 _652 = _605;
|
||||
_652._m0 = _651;
|
||||
float2 _661 = clamp(_82 + (float3(0.0, 2.0, 0.5).xy * _7._m0.xy), _88.xy, _88.zw);
|
||||
float3 _673 = _11._m5 * clamp(_8.sample(_9, _661, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float3 _673 = float3(_11._m5) * clamp(_8.sample(_9, _661, level(0.0)).w * _7._m1, 0.0, 1.0);
|
||||
float4 _677 = _12.sample(_13, _661, level(0.0));
|
||||
float3 _693;
|
||||
if (_677.y > 0.0)
|
||||
|
@ -144,6 +144,6 @@ kernel void main0(device SSBO0& ssbo_140 [[buffer(0)]], device SSBO1& ssbo_430 [
|
||||
ssbo_430.content.m3s[5].c = _60.m3s[5].c;
|
||||
ssbo_430.content.m3s[6].c = _60.m3s[6].c;
|
||||
ssbo_430.content.m3s[7].c = _60.m3s[7].c;
|
||||
ssbo_430.content.m1.a = ssbo_430.content.m3.a * ssbo_430.m6[1][1];
|
||||
ssbo_430.content.m1.a = ssbo_430.content.m3.a * float2x3(ssbo_430.m6[1][1]);
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]
|
||||
main0_out out = {};
|
||||
out.gl_Position = _18.uMVP * in.aVertex;
|
||||
out.vColor = float4(0.0);
|
||||
float3 L = in.aVertex.xyz - _18.light.Position;
|
||||
float3 L = in.aVertex.xyz - float3(_18.light.Position);
|
||||
out.vColor += ((_18.light.Color * clamp(1.0 - (length(L) / _18.light.Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(L)));
|
||||
return out;
|
||||
}
|
||||
|
28
reference/shaders-msl/frag/binary-unpack-pack-arguments.frag
Normal file
28
reference/shaders-msl/frag/binary-unpack-pack-arguments.frag
Normal file
@ -0,0 +1,28 @@
|
||||
#include <metal_stdlib>
|
||||
#include <simd/simd.h>
|
||||
|
||||
using namespace metal;
|
||||
|
||||
struct UBO
|
||||
{
|
||||
packed_float3 color;
|
||||
float v;
|
||||
};
|
||||
|
||||
struct main0_in
|
||||
{
|
||||
float3 vIn [[user(locn0)]];
|
||||
};
|
||||
|
||||
struct main0_out
|
||||
{
|
||||
float3 FragColor [[color(0)]];
|
||||
};
|
||||
|
||||
fragment main0_out main0(main0_in in [[stage_in]], constant UBO& _15 [[buffer(0)]])
|
||||
{
|
||||
main0_out out = {};
|
||||
out.FragColor = cross(in.vIn, float3(_15.color) - in.vIn);
|
||||
return out;
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _21 [[buffer(0)]]
|
||||
out.vColor = float4(0.0);
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
float3 L = in.aVertex.xyz - _21.lights[i].Position;
|
||||
float3 L = in.aVertex.xyz - float3(_21.lights[i].Position);
|
||||
out.vColor += ((_21.lights[i].Color * clamp(1.0 - (length(L) / _21.lights[i].Radius), 0.0, 1.0)) * dot(in.aNormal, normalize(L)));
|
||||
}
|
||||
return out;
|
||||
|
@ -44,10 +44,10 @@ vertex main0_out main0(main0_in in [[stage_in]], constant _42& _44 [[buffer(12)]
|
||||
float3 _13;
|
||||
do
|
||||
{
|
||||
_13 = normalize(float4(in.m_25.xyz, 0.0) * _17._m1);
|
||||
_13 = normalize(float4(in.m_25.xyz, 0.0) * float4x3(_17._m1));
|
||||
break;
|
||||
} while (false);
|
||||
float4 _39 = _44._m0 * float4(_44._m3 + (in.m_25.xyz * (_44._m6 + _44._m7)), 1.0);
|
||||
float4 _39 = _44._m0 * float4(float3(_44._m3) + (in.m_25.xyz * (_44._m6 + _44._m7)), 1.0);
|
||||
out.m_72 = _13;
|
||||
float4 _74 = _39;
|
||||
_74.y = -_39.y;
|
||||
|
@ -31,7 +31,7 @@ vertex main0_out main0(main0_in in [[stage_in]], constant UBO& _18 [[buffer(0)]]
|
||||
main0_out out = {};
|
||||
out.gl_Position = _18.mvp * in.aVertex;
|
||||
out.vNormal = in.aNormal;
|
||||
out.vColor = _18.color * _18.opacity;
|
||||
out.vColor = float3(_18.color) * _18.opacity;
|
||||
out.vSize = _18.targSize * _18.opacity;
|
||||
return out;
|
||||
}
|
||||
|
15
shaders-msl/frag/binary-unpack-pack-arguments.frag
Normal file
15
shaders-msl/frag/binary-unpack-pack-arguments.frag
Normal file
@ -0,0 +1,15 @@
|
||||
#version 450
|
||||
layout(location = 0) out vec3 FragColor;
|
||||
|
||||
layout(binding = 0, std140) uniform UBO
|
||||
{
|
||||
vec3 color;
|
||||
float v;
|
||||
};
|
||||
|
||||
layout(location = 0) in vec3 vIn;
|
||||
|
||||
void main()
|
||||
{
|
||||
FragColor = cross(vIn, color - vIn);
|
||||
}
|
@ -3280,15 +3280,15 @@ SPIRExpression &CompilerGLSL::emit_op(uint32_t result_type, uint32_t result_id,
|
||||
void CompilerGLSL::emit_unary_op(uint32_t result_type, uint32_t result_id, uint32_t op0, const char *op)
|
||||
{
|
||||
bool forward = should_forward(op0);
|
||||
emit_op(result_type, result_id, join(op, to_enclosed_expression(op0)), forward);
|
||||
emit_op(result_type, result_id, join(op, to_enclosed_unpacked_expression(op0)), forward);
|
||||
inherit_expression_dependencies(result_id, op0);
|
||||
}
|
||||
|
||||
void CompilerGLSL::emit_binary_op(uint32_t result_type, uint32_t result_id, uint32_t op0, uint32_t op1, const char *op)
|
||||
{
|
||||
bool forward = should_forward(op0) && should_forward(op1);
|
||||
emit_op(result_type, result_id, join(to_enclosed_expression(op0), " ", op, " ", to_enclosed_expression(op1)),
|
||||
forward);
|
||||
emit_op(result_type, result_id,
|
||||
join(to_enclosed_unpacked_expression(op0), " ", op, " ", to_enclosed_unpacked_expression(op1)), forward);
|
||||
|
||||
inherit_expression_dependencies(result_id, op0);
|
||||
inherit_expression_dependencies(result_id, op1);
|
||||
@ -3368,8 +3368,8 @@ SPIRType CompilerGLSL::binary_op_bitcast_helper(string &cast_op0, string &cast_o
|
||||
else
|
||||
{
|
||||
// If we don't cast, our actual input type is that of the first (or second) argument.
|
||||
cast_op0 = to_enclosed_expression(op0);
|
||||
cast_op1 = to_enclosed_expression(op1);
|
||||
cast_op0 = to_enclosed_unpacked_expression(op0);
|
||||
cast_op1 = to_enclosed_unpacked_expression(op1);
|
||||
input_type = type0.basetype;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user