| bug/chromium/1273230.wgsl:4:7 warning: use of deprecated intrinsic |
| _ = isNormal(4.); |
| ^^^^^^^^ |
| |
| bug/chromium/1273230.wgsl:7:3 warning: use of deprecated intrinsic |
| isNormal(vec4<f32>()); |
| ^^^^^^^^ |
| |
| bug/chromium/1273230.wgsl:10:6 warning: use of deprecated intrinsic |
| isNormal(0.); |
| ^^^^^^^^ |
| |
| bug/chromium/1273230.wgsl:11:9 warning: use of deprecated intrinsic |
| _ = isNormal(4.); |
| ^^^^^^^^ |
| |
| bug/chromium/1273230.wgsl:12:9 warning: use of deprecated intrinsic |
| _ = isNormal(2.); |
| ^^^^^^^^ |
| |
| bool tint_isNormal(float param_0) { |
| uint exponent = asuint(param_0) & 0x7f80000; |
| uint clamped = clamp(exponent, 0x0080000, 0x7f00000); |
| return clamped == exponent; |
| } |
| |
| bool4 tint_isNormal_1(float4 param_0) { |
| uint4 exponent = asuint(param_0) & 0x7f80000; |
| uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000); |
| return clamped == exponent; |
| } |
| |
| uint value_or_one_if_zero_uint(uint value) { |
| return value == 0u ? 1u : value; |
| } |
| |
| uint atomicLoad_1(RWByteAddressBuffer buffer, uint offset) { |
| uint value = 0; |
| buffer.InterlockedOr(offset, 0, value); |
| return value; |
| } |
| |
| int atomicLoad_2(RWByteAddressBuffer buffer, uint offset) { |
| int value = 0; |
| buffer.InterlockedOr(offset, 0, value); |
| return value; |
| } |
| |
| int atomicAdd_1(RWByteAddressBuffer buffer, uint offset, int value) { |
| int original_value = 0; |
| buffer.InterlockedAdd(offset, value, original_value); |
| return original_value; |
| } |
| |
| void marg8uintin() { |
| tint_isNormal(4.0f); |
| tint_isNormal_1(float4(0.0f, 0.0f, 0.0f, 0.0f)); |
| tint_isNormal(0.0f); |
| tint_isNormal(4.0f); |
| tint_isNormal(2.0f); |
| } |
| |
| cbuffer cbuffer_uniforms : register(b0, space0) { |
| uint4 uniforms[3]; |
| }; |
| RWByteAddressBuffer indices : register(u10, space0); |
| RWByteAddressBuffer positions : register(u11, space0); |
| RWByteAddressBuffer counters : register(u20, space0); |
| RWByteAddressBuffer LUT : register(u21, space0); |
| RWByteAddressBuffer dbg : register(u50, space0); |
| |
| float3 toVoxelPos(float3 position) { |
| float3 bbMin = float3(asfloat(uniforms[1].x), asfloat(uniforms[1].y), asfloat(uniforms[1].z)); |
| float3 bbMax = float3(asfloat(uniforms[2].x), asfloat(uniforms[2].y), asfloat(uniforms[2].z)); |
| float3 bbSize = (bbMin - bbMin); |
| float cubeSize = max(max(bbMax.x, bbMax.y), bbSize.z); |
| float gridSize = float(uniforms[0].y); |
| float gx = ((cubeSize * (position.x - asfloat(uniforms[1].x))) / cubeSize); |
| float gy = ((gx * (position.y - asfloat(uniforms[1].y))) / gridSize); |
| float gz = ((gridSize * (position.z - asfloat(uniforms[1].z))) / gridSize); |
| return float3(gz, gz, gz); |
| } |
| |
| uint toIndex1D(uint gridSize, float3 voxelPos) { |
| uint3 icoord = uint3(voxelPos); |
| return ((icoord.x + (gridSize * icoord.y)) + ((gridSize * gridSize) * icoord.z)); |
| } |
| |
| uint3 toIndex4D(uint gridSize, uint index) { |
| uint z_1 = (gridSize / value_or_one_if_zero_uint((index * index))); |
| uint y_1 = ((gridSize - ((gridSize * gridSize) * z_1)) / (gridSize == 0u ? 1u : gridSize)); |
| uint x_1 = (index % (gridSize == 0u ? 1u : gridSize)); |
| return uint3(z_1, y_1, y_1); |
| } |
| |
| float3 loadPosition(uint vertexIndex) { |
| float3 position = float3(asfloat(positions.Load((4u * ((3u * vertexIndex) + 0u)))), asfloat(positions.Load((4u * ((3u * vertexIndex) + 1u)))), asfloat(positions.Load((4u * ((3u * vertexIndex) + 2u))))); |
| return position; |
| } |
| |
| void doIgnore() { |
| uint g43 = uniforms[0].x; |
| uint kj6 = dbg.Load(20u); |
| uint b53 = atomicLoad_1(counters, (4u * uint(0))); |
| uint rwg = indices.Load((4u * uint(0))); |
| float rb5 = asfloat(positions.Load((4u * uint(0)))); |
| int g55 = atomicLoad_2(LUT, (4u * uint(0))); |
| } |
| |
| struct tint_symbol_1 { |
| uint3 GlobalInvocationID : SV_DispatchThreadID; |
| }; |
| |
| void main_count_inner(uint3 GlobalInvocationID) { |
| uint triangleIndex = GlobalInvocationID.x; |
| if ((triangleIndex >= uniforms[0].x)) { |
| return; |
| } |
| doIgnore(); |
| uint i0 = indices.Load((4u * ((3u * triangleIndex) + 0u))); |
| uint i1 = indices.Load((4u * ((3u * i0) + 1u))); |
| uint i2 = indices.Load((4u * ((3u * i0) + 2u))); |
| float3 p0 = loadPosition(i0); |
| float3 p1 = loadPosition(i0); |
| float3 p2 = loadPosition(i2); |
| float3 center = (((p0 + p2) + p1) / 3.0f); |
| float3 voxelPos = toVoxelPos(p1); |
| uint lIndex = toIndex1D(uniforms[0].y, p0); |
| int triangleOffset = atomicAdd_1(LUT, (4u * i1), 1); |
| } |
| |
| [numthreads(128, 1, 1)] |
| void main_count(tint_symbol_1 tint_symbol) { |
| main_count_inner(tint_symbol.GlobalInvocationID); |
| return; |
| } |