yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
c4372e43
main
1 2// Test v*v, v*m, m*v, and m*m argument clamping. 3 4cbuffer Matrix 5{ 6float4x4 m44 ; 7float4x3 m43 ; 8float3x4 m34 ; 9float3x3 m33 ; 10float2x4 m24 ; 11float4x2 m42 ; 12float4 v4 ; 13float3 v3 ; 14float2 v2 ; 15} 16 17float4 main () :SV_Target0 18{ 19// v*v: 20float r00 = mul (v2 ,v3 );// float = float2*float3; // clamp to float2 dot product 21float r01 = mul (v4 ,v2 );// float = float4*float2; // clamp to float2 dot product 22 23// v*m 24float4 r10 = mul (v3 ,m44 );// float4 = float3 * float4x4; // clamp mat to float3x4; 25float4 r11 = mul (v4 ,m34 );// truncate vector to vec3 26 27// m*v 28float4 r20 = mul (m44 ,v3 );// float4 = float4x4 * float3; // clamp mat to float4x3; 29float4 r21 = mul (m43 ,v4 );// truncate vector to vec3 30 31// m*m 32float2x3 r30 = mul (m24 ,m33 );// float2x3 = float2x4 * float3x3; 33float3x4 r31 = mul (m33 ,m24 );// float3x4 = float3x3 * float2x4; 34float3x2 r32 = mul (m33 ,m42 );// float3x2 = float3x3 * float4x2; 35float4x3 r33 = mul (m42 ,m33 );// float4x3 = float4x2 * float3x3; 36 37return r10 + r11 + r20 + r21 + r00 + r01 + r30 [0 ].x + r31 [0 ]+ r32 [0 ].x + transpose (r33 )[0 ]; 38}