blob: 1b0d9fbe84e8f773577db96939279b022ae5567d [file] [log] [blame]
SKIP: FAILED
<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: OutputBuf = struct @align(4) {
result:array<u32> @offset(0)
}
Uniforms = struct @align(8) {
dstTextureFlipY:u32 @offset(0)
channelCount:u32 @offset(4)
srcCopyOrigin:vec2<u32> @offset(8)
dstCopyOrigin:vec2<u32> @offset(16)
copySize:vec2<u32> @offset(24)
}
%b1 = block { # root
%src:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 0)
%dst:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 1)
%output:ptr<storage, OutputBuf, read_write> = var @binding_point(0, 2)
%uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 3)
}
%aboutEqual = func(%value:f32, %expect:f32):bool -> %b2 {
%b2 = block {
%8:f32 = sub %value, %expect
%9:f32 = abs %8
%10:bool = lt %9, 0.00100000004749745131f
ret %10
}
}
%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b3 {
%b3 = block {
%13:texture_2d<f32> = load %src
%srcSize:vec2<u32> = textureDimensions %13
%15:texture_2d<f32> = load %dst
%dstSize:vec2<u32> = textureDimensions %15
%17:vec2<u32> = swizzle %GlobalInvocationID, xy
%dstTexCoord:vec2<u32> = construct %17
%nonCoveredColor:vec4<f32> = let vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f)
%success:ptr<function, bool, read_write> = var, true
%21:u32 = access %dstTexCoord, 0u
%22:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
%23:u32 = load_vector_element %22, 0u
%24:bool = lt %21, %23
%25:bool = if %24 [t: %b4, f: %b5] { # if_1
%b4 = block { # true
exit_if true # if_1
}
%b5 = block { # false
%26:u32 = access %dstTexCoord, 1u
%27:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
%28:u32 = load_vector_element %27, 1u
%29:bool = lt %26, %28
exit_if %29 # if_1
}
}
%30:bool = if %25 [t: %b6, f: %b7] { # if_2
%b6 = block { # true
exit_if true # if_2
}
%b7 = block { # false
%31:u32 = access %dstTexCoord, 0u
%32:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
%33:u32 = load_vector_element %32, 0u
%34:ptr<uniform, vec2<u32>, read> = access %uniforms, 4u
%35:u32 = load_vector_element %34, 0u
%36:u32 = add %33, %35
%37:bool = gte %31, %36
exit_if %37 # if_2
}
}
%38:bool = if %30 [t: %b8, f: %b9] { # if_3
%b8 = block { # true
exit_if true # if_3
}
%b9 = block { # false
%39:u32 = access %dstTexCoord, 1u
%40:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
%41:u32 = load_vector_element %40, 1u
%42:ptr<uniform, vec2<u32>, read> = access %uniforms, 4u
%43:u32 = load_vector_element %42, 1u
%44:u32 = add %41, %43
%45:bool = gte %39, %44
exit_if %45 # if_3
}
}
if %38 [t: %b10, f: %b11] { # if_4
%b10 = block { # true
%46:bool = load %success
%47:bool = if %46 [t: %b12, f: %b13] { # if_5
%b12 = block { # true
%48:texture_2d<f32> = load %dst
%49:vec2<i32> = convert %dstTexCoord
%50:vec4<f32> = textureLoad %48, %49, 0i
%51:vec4<bool> = eq %50, %nonCoveredColor
%52:bool = all %51
exit_if %52 # if_5
}
%b13 = block { # false
exit_if false # if_5
}
}
store %success, %47
exit_if # if_4
}
%b11 = block { # false
%53:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
%54:vec2<u32> = load %53
%55:vec2<u32> = sub %dstTexCoord, %54
%56:ptr<uniform, vec2<u32>, read> = access %uniforms, 2u
%57:vec2<u32> = load %56
%58:vec2<u32> = add %55, %57
%srcTexCoord:ptr<function, vec2<u32>, read_write> = var, %58
%60:ptr<uniform, u32, read> = access %uniforms, 0u
%61:u32 = load %60
%62:bool = eq %61, 1u
if %62 [t: %b14] { # if_6
%b14 = block { # true
%63:u32 = access %srcSize, 1u
%64:u32 = load_vector_element %srcTexCoord, 1u
%65:u32 = sub %63, %64
%66:u32 = sub %65, 1u
store_vector_element %srcTexCoord, 1u, %66
exit_if # if_6
}
}
%67:texture_2d<f32> = load %src
%68:vec2<u32> = load %srcTexCoord
%69:vec2<i32> = convert %68
%srcColor:vec4<f32> = textureLoad %67, %69, 0i
%71:texture_2d<f32> = load %dst
%72:vec2<i32> = convert %dstTexCoord
%dstColor:vec4<f32> = textureLoad %71, %72, 0i
%74:ptr<uniform, u32, read> = access %uniforms, 1u
%75:u32 = load %74
%76:bool = eq %75, 2u
if %76 [t: %b15, f: %b16] { # if_7
%b15 = block { # true
%77:bool = load %success
%78:bool = if %77 [t: %b17, f: %b18] { # if_8
%b17 = block { # true
%79:f32 = access %dstColor, 0u
%80:f32 = access %srcColor, 0u
%81:bool = call %aboutEqual, %79, %80
exit_if %81 # if_8
}
%b18 = block { # false
exit_if false # if_8
}
}
%82:bool = if %78 [t: %b19, f: %b20] { # if_9
%b19 = block { # true
%83:f32 = access %dstColor, 1u
%84:f32 = access %srcColor, 1u
%85:bool = call %aboutEqual, %83, %84
exit_if %85 # if_9
}
%b20 = block { # false
exit_if false # if_9
}
}
store %success, %82
exit_if # if_7
}
%b16 = block { # false
%86:bool = load %success
%87:bool = if %86 [t: %b21, f: %b22] { # if_10
%b21 = block { # true
%88:f32 = access %dstColor, 0u
%89:f32 = access %srcColor, 0u
%90:bool = call %aboutEqual, %88, %89
exit_if %90 # if_10
}
%b22 = block { # false
exit_if false # if_10
}
}
%91:bool = if %87 [t: %b23, f: %b24] { # if_11
%b23 = block { # true
%92:f32 = access %dstColor, 1u
%93:f32 = access %srcColor, 1u
%94:bool = call %aboutEqual, %92, %93
exit_if %94 # if_11
}
%b24 = block { # false
exit_if false # if_11
}
}
%95:bool = if %91 [t: %b25, f: %b26] { # if_12
%b25 = block { # true
%96:f32 = access %dstColor, 2u
%97:f32 = access %srcColor, 2u
%98:bool = call %aboutEqual, %96, %97
exit_if %98 # if_12
}
%b26 = block { # false
exit_if false # if_12
}
}
%99:bool = if %95 [t: %b27, f: %b28] { # if_13
%b27 = block { # true
%100:f32 = access %dstColor, 3u
%101:f32 = access %srcColor, 3u
%102:bool = call %aboutEqual, %100, %101
exit_if %102 # if_13
}
%b28 = block { # false
exit_if false # if_13
}
}
store %success, %99
exit_if # if_7
}
}
exit_if # if_4
}
}
%103:u32 = access %GlobalInvocationID, 1u
%104:u32 = access %dstSize, 0u
%105:u32 = mul %103, %104
%106:u32 = access %GlobalInvocationID, 0u
%outputIndex:u32 = add %105, %106
%108:bool = load %success
if %108 [t: %b29, f: %b30] { # if_14
%b29 = block { # true
%109:ptr<storage, u32, read_write> = access %output, 0u, %outputIndex
store %109, 1u
exit_if # if_14
}
%b30 = block { # false
%110:ptr<storage, u32, read_write> = access %output, 0u, %outputIndex
store %110, 0u
exit_if # if_14
}
}
ret
}
}
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. *
********************************************************************