blob: 74faf92cb97f82ef19566a50b50a0f7af6f17ce5 [file] [log] [blame]
SKIP: FAILED
../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(16) {
numTriangles:u32 @offset(0)
gridSize:u32 @offset(4)
puuuuuuuuuuuuuuuuad1:u32 @offset(8)
pad2:u32 @offset(12)
bbMin:vec3<f32> @offset(16)
bbMax:vec3<f32> @offset(32)
}
U32s = struct @align(4) {
values:array<u32> @offset(0)
}
F32s = struct @align(4) {
values:array<f32> @offset(0)
}
AU32s = struct @align(4) {
values:array<atomic<u32>> @offset(0)
}
AI32s = struct @align(4) {
values:array<atomic<i32>> @offset(0)
}
Dbg = struct @align(4) {
offsetCounter:atomic<u32> @offset(0)
pad0:u32 @offset(4)
pad1:u32 @offset(8)
pad2:u32 @offset(12)
value0:u32 @offset(16)
value1:u32 @offset(20)
value2:u32 @offset(24)
value3:u32 @offset(28)
value_f32_0:f32 @offset(32)
value_f32_1:f32 @offset(36)
value_f32_2:f32 @offset(40)
value_f32_3:f32 @offset(44)
}
$B1: { # root
%uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 0)
%indices:ptr<storage, U32s, read_write> = var @binding_point(0, 10)
%positions:ptr<storage, F32s, read_write> = var @binding_point(0, 11)
%counters:ptr<storage, AU32s, read_write> = var @binding_point(0, 20)
%LUT:ptr<storage, AI32s, read_write> = var @binding_point(0, 21)
%dbg:ptr<storage, Dbg, read_write> = var @binding_point(0, 50)
}
%marg8uintin = func():void {
$B2: {
ret
}
}
%toVoxelPos = func(%position:vec3<f32>):vec3<f32> {
$B3: {
%10:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
%11:f32 = load_vector_element %10, 0u
%12:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
%13:f32 = load_vector_element %12, 1u
%14:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
%15:f32 = load_vector_element %14, 2u
%16:vec3<f32> = construct %11, %13, %15
%bbMin:ptr<function, vec3<f32>, read_write> = var, %16
%18:ptr<uniform, vec3<f32>, read> = access %uniforms, 5u
%19:f32 = load_vector_element %18, 0u
%20:ptr<uniform, vec3<f32>, read> = access %uniforms, 5u
%21:f32 = load_vector_element %20, 1u
%22:ptr<uniform, vec3<f32>, read> = access %uniforms, 5u
%23:f32 = load_vector_element %22, 2u
%24:vec3<f32> = construct %19, %21, %23
%bbMax:ptr<function, vec3<f32>, read_write> = var, %24
%26:vec3<f32> = load %bbMin
%27:vec3<f32> = load %bbMin
%28:vec3<f32> = sub %26, %27
%bbSize:ptr<function, vec3<f32>, read_write> = var, %28
%30:f32 = load_vector_element %bbMax, 0u
%31:f32 = load_vector_element %bbMax, 1u
%32:f32 = max %30, %31
%33:f32 = load_vector_element %bbSize, 2u
%34:f32 = max %32, %33
%cubeSize:ptr<function, f32, read_write> = var, %34
%36:ptr<uniform, u32, read> = access %uniforms, 1u
%37:u32 = load %36
%38:f32 = convert %37
%gridSize:ptr<function, f32, read_write> = var, %38
%40:f32 = load %cubeSize
%41:f32 = access %position, 0u
%42:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
%43:f32 = load_vector_element %42, 0u
%44:f32 = sub %41, %43
%45:f32 = mul %40, %44
%46:f32 = load %cubeSize
%47:f32 = div %45, %46
%gx:ptr<function, f32, read_write> = var, %47
%49:f32 = load %gx
%50:f32 = access %position, 1u
%51:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
%52:f32 = load_vector_element %51, 1u
%53:f32 = sub %50, %52
%54:f32 = mul %49, %53
%55:f32 = load %gridSize
%56:f32 = div %54, %55
%gy:ptr<function, f32, read_write> = var, %56
%58:f32 = load %gridSize
%59:f32 = access %position, 2u
%60:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
%61:f32 = load_vector_element %60, 2u
%62:f32 = sub %59, %61
%63:f32 = mul %58, %62
%64:f32 = load %gridSize
%65:f32 = div %63, %64
%gz:ptr<function, f32, read_write> = var, %65
%67:f32 = load %gz
%68:f32 = load %gz
%69:f32 = load %gz
%70:vec3<f32> = construct %67, %68, %69
ret %70
}
}
%toIndex1D = func(%gridSize_1:u32, %voxelPos:vec3<f32>):u32 { # %gridSize_1: 'gridSize'
$B4: {
%74:vec3<u32> = call %tint_v3f32_to_v3u32, %voxelPos
%icoord:ptr<function, vec3<u32>, read_write> = var, %74
%77:u32 = load_vector_element %icoord, 0u
%78:u32 = load_vector_element %icoord, 1u
%79:u32 = mul %gridSize_1, %78
%80:u32 = add %77, %79
%81:u32 = mul %gridSize_1, %gridSize_1
%82:u32 = load_vector_element %icoord, 2u
%83:u32 = mul %81, %82
%84:u32 = add %80, %83
ret %84
}
}
%toIndex4D = func(%gridSize_2:u32, %index:u32):vec3<u32> { # %gridSize_2: 'gridSize'
$B5: {
%88:u32 = mul %index, %index
%89:u32 = call %tint_div_u32, %gridSize_2, %88
%z:ptr<function, u32, read_write> = var, %89
%92:u32 = mul %gridSize_2, %gridSize_2
%93:u32 = load %z
%94:u32 = mul %92, %93
%95:u32 = sub %gridSize_2, %94
%96:u32 = call %tint_div_u32, %95, %gridSize_2
%y:ptr<function, u32, read_write> = var, %96
%98:u32 = call %tint_mod_u32, %index, %gridSize_2
%x:ptr<function, u32, read_write> = var, %98
%101:u32 = load %z
%102:u32 = load %y
%103:u32 = load %y
%104:vec3<u32> = construct %101, %102, %103
ret %104
}
}
%loadPosition = func(%vertexIndex:u32):vec3<f32> {
$B6: {
%107:u32 = mul 3u, %vertexIndex
%108:u32 = add %107, 0u
%109:ptr<storage, f32, read_write> = access %positions, 0u, %108
%110:f32 = load %109
%111:u32 = mul 3u, %vertexIndex
%112:u32 = add %111, 1u
%113:ptr<storage, f32, read_write> = access %positions, 0u, %112
%114:f32 = load %113
%115:u32 = mul 3u, %vertexIndex
%116:u32 = add %115, 2u
%117:ptr<storage, f32, read_write> = access %positions, 0u, %116
%118:f32 = load %117
%119:vec3<f32> = construct %110, %114, %118
%position_1:ptr<function, vec3<f32>, read_write> = var, %119 # %position_1: 'position'
%121:vec3<f32> = load %position_1
ret %121
}
}
%doIgnore = func():void {
$B7: {
%123:ptr<uniform, u32, read> = access %uniforms, 0u
%124:u32 = load %123
%g43:ptr<function, u32, read_write> = var, %124
%126:ptr<storage, u32, read_write> = access %dbg, 5u
%127:u32 = load %126
%kj6:ptr<function, u32, read_write> = var, %127
%129:ptr<storage, atomic<u32>, read_write> = access %counters, 0u, 0i
%130:u32 = atomicLoad %129
%b53:ptr<function, u32, read_write> = var, %130
%132:ptr<storage, u32, read_write> = access %indices, 0u, 0i
%133:u32 = load %132
%rwg:ptr<function, u32, read_write> = var, %133
%135:ptr<storage, f32, read_write> = access %positions, 0u, 0i
%136:f32 = load %135
%rb5:ptr<function, f32, read_write> = var, %136
%138:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, 0i
%139:i32 = atomicLoad %138
%g55:ptr<function, i32, read_write> = var, %139
ret
}
}
%main_count = @compute @workgroup_size(128, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
$B8: {
%143:u32 = access %GlobalInvocationID, 0u
%triangleIndex:ptr<function, u32, read_write> = var, %143
%145:u32 = load %triangleIndex
%146:ptr<uniform, u32, read> = access %uniforms, 0u
%147:u32 = load %146
%148:bool = gte %145, %147
if %148 [t: $B9] { # if_1
$B9: { # true
ret
}
}
%149:void = call %doIgnore
%150:u32 = load %triangleIndex
%151:u32 = mul 3u, %150
%152:u32 = add %151, 0u
%153:ptr<storage, u32, read_write> = access %indices, 0u, %152
%154:u32 = load %153
%i0:ptr<function, u32, read_write> = var, %154
%156:u32 = load %i0
%157:u32 = mul 3u, %156
%158:u32 = add %157, 1u
%159:ptr<storage, u32, read_write> = access %indices, 0u, %158
%160:u32 = load %159
%i1:ptr<function, u32, read_write> = var, %160
%162:u32 = load %i0
%163:u32 = mul 3u, %162
%164:u32 = add %163, 2u
%165:ptr<storage, u32, read_write> = access %indices, 0u, %164
%166:u32 = load %165
%i2:ptr<function, u32, read_write> = var, %166
%168:u32 = load %i0
%169:vec3<f32> = call %loadPosition, %168
%p0:ptr<function, vec3<f32>, read_write> = var, %169
%171:u32 = load %i0
%172:vec3<f32> = call %loadPosition, %171
%p1:ptr<function, vec3<f32>, read_write> = var, %172
%174:u32 = load %i2
%175:vec3<f32> = call %loadPosition, %174
%p2:ptr<function, vec3<f32>, read_write> = var, %175
%177:vec3<f32> = load %p0
%178:vec3<f32> = load %p2
%179:vec3<f32> = add %177, %178
%180:vec3<f32> = load %p1
%181:vec3<f32> = add %179, %180
%182:vec3<f32> = div %181, 3.0f
%center:ptr<function, vec3<f32>, read_write> = var, %182
%184:vec3<f32> = load %p1
%185:vec3<f32> = call %toVoxelPos, %184
%voxelPos_1:ptr<function, vec3<f32>, read_write> = var, %185 # %voxelPos_1: 'voxelPos'
%187:ptr<uniform, u32, read> = access %uniforms, 1u
%188:u32 = load %187
%189:vec3<f32> = load %p0
%190:u32 = call %toIndex1D, %188, %189
%lIndex:ptr<function, u32, read_write> = var, %190
%192:u32 = load %i1
%193:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, %192
%194:i32 = atomicAdd %193, 1i
%triangleOffset:ptr<function, i32, read_write> = var, %194
ret
}
}
%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
$B10: {
%198:bool = eq %rhs, 0u
%199:u32 = select %rhs, 1u, %198
%200:u32 = div %lhs, %199
ret %200
}
}
%tint_mod_u32 = func(%lhs_1:u32, %rhs_1:u32):u32 { # %lhs_1: 'lhs', %rhs_1: 'rhs'
$B11: {
%203:bool = eq %rhs_1, 0u
%204:u32 = select %rhs_1, 1u, %203
%205:u32 = let %204
%206:u32 = div %lhs_1, %205
%207:u32 = mul %206, %205
%208:u32 = sub %lhs_1, %207
ret %208
}
}
%tint_v3f32_to_v3u32 = func(%value:vec3<f32>):vec3<u32> {
$B12: {
%210:vec3<u32> = convert %value
%211:vec3<bool> = gte %value, vec3<f32>(0.0f)
%212:vec3<u32> = select vec3<u32>(0u), %210, %211
%213:vec3<bool> = lte %value, vec3<f32>(4294967040.0f)
%214:vec3<u32> = select vec3<u32>(4294967295u), %212, %213
ret %214
}
}
unhandled variable address space
********************************************************************
* The tint shader compiler has encountered an unexpected error. *
* *
* Please help us fix this issue by submitting a bug report at *
* crbug.com/tint with the source program that triggered the bug. *
********************************************************************