| SKIP: FAILED |
| |
| VertexOutput = struct @align(16) { |
| pos:vec4<f32> @offset(0) |
| prevent_dce:vec4<f32> @offset(16) |
| } |
| |
| tint_module_vars_struct = struct @align(1) { |
| prevent_dce:ptr<storage, vec4<f32>, read_write> @offset(0) |
| arg_0:texel_buffer<r32float, read> @offset(0) |
| } |
| |
| %textureLoad_bce908 = func(%tint_module_vars:tint_module_vars_struct):vec4<f32> { |
| $B1: { |
| %3:texel_buffer<r32float, read> = access %tint_module_vars, 1u |
| %4:u32 = %3.get_width |
| %5:u32 = construct %4 |
| %6:u32 = sub %5, 1u |
| %7:u32 = min 1u, %6 |
| %8:vec4<f32> = %3.read %7 |
| %res:ptr<function, vec4<f32>, read_write> = var %8 |
| %10:vec4<f32> = load %res |
| ret %10 |
| } |
| } |
| %fragment_main = @fragment func(%prevent_dce:ptr<storage, vec4<f32>, read_write> [@binding_point(0, 0)], %arg_0:texel_buffer<r32float, read> [@binding_point(0, 0)]):void { |
| $B2: { |
| %14:tint_module_vars_struct = construct %prevent_dce, %arg_0 |
| %tint_module_vars_1:tint_module_vars_struct = let %14 # %tint_module_vars_1: 'tint_module_vars' |
| %16:vec4<f32> = call %textureLoad_bce908, %tint_module_vars_1 |
| %17:ptr<storage, vec4<f32>, read_write> = access %tint_module_vars_1, 0u |
| store %17, %16 |
| ret |
| } |
| } |
| Failed to generate: :14:17 error: get_width: no matching call to 'get_width(texel_buffer<r32float, read>)' |
| |
| 16 candidate functions: |
| • 'get_width(texture: texture_depth_multisampled_2d ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_1d<F, A> ✗ ) -> u32' |
| • 'get_width(texture: texture_1d<T> ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_multisampled_2d<T> ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_depth_2d ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_depth_2d_array ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_depth_cube ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_depth_cube_array ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_2d<F, A> ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_2d_array<F, A> ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_3d<F, A> ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_2d<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_2d_array<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_3d<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_cube<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_cube_array<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| |
| %4:u32 = %3.get_width |
| ^^^^^^^^^ |
| |
| :12:3 note: in block |
| $B1: { |
| ^^^ |
| |
| :18:23 error: read: no matching call to 'read(texel_buffer<r32float, read>, u32)' |
| |
| 20 candidate functions: |
| • 'read(texture: texture_storage_1d<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: u32 ✓ ) -> vec4<f32>' |
| • 'read(texture: texture_storage_1d<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: u32 ✓ ) -> vec4<i32>' |
| • 'read(texture: texture_storage_1d<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: u32 ✓ ) -> vec4<u32>' |
| • 'read(texture: texture_1d<T> ✗ , coords: u32 ✓ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: vec2<u32> ✗ ) -> vec4<f32>' |
| • 'read(texture: texture_storage_3d<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: vec3<u32> ✗ ) -> vec4<f32>' |
| • 'read(texture: texture_storage_2d<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ ) -> vec4<i32>' |
| • 'read(texture: texture_storage_3d<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: vec3<u32> ✗ ) -> vec4<i32>' |
| • 'read(texture: texture_storage_2d<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ ) -> vec4<u32>' |
| • 'read(texture: texture_storage_3d<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: vec3<u32> ✗ ) -> vec4<u32>' |
| • 'read(texture: texture_depth_2d ✗ , coords: vec2<u32> ✗ , level: L ✗ ) -> f32' where: |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_depth_multisampled_2d ✗ , coords: vec2<u32> ✗ , sample_index: S ✗ ) -> f32' where: |
| ✗ 'S' is 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d_array<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ ) -> vec4<f32>' where: |
| ✗ 'A' is 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d_array<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ ) -> vec4<i32>' where: |
| ✗ 'A' is 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d_array<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ ) -> vec4<u32>' where: |
| ✗ 'A' is 'i32' or 'u32' |
| • 'read(texture: texture_2d<T> ✗ , coords: vec2<u32> ✗ , level: L ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_3d<T> ✗ , coords: vec3<u32> ✗ , level: L ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_multisampled_2d<T> ✗ , coords: vec2<u32> ✗ , sample_index: S ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'S' is 'i32' or 'u32' |
| • 'read(texture: texture_depth_2d_array ✗ , coords: vec2<u32> ✗ , array_index: A ✗ , level: L ✗ ) -> f32' where: |
| ✗ 'A' is 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_2d_array<T> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ , level: L ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'A' is 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| |
| %8:vec4<f32> = %3.read %7 |
| ^^^^ |
| |
| :12:3 note: in block |
| $B1: { |
| ^^^ |
| |
| note: # Disassembly |
| VertexOutput = struct @align(16) { |
| pos:vec4<f32> @offset(0) |
| prevent_dce:vec4<f32> @offset(16) |
| } |
| |
| tint_module_vars_struct = struct @align(1) { |
| prevent_dce:ptr<storage, vec4<f32>, read_write> @offset(0) |
| arg_0:texel_buffer<r32float, read> @offset(0) |
| } |
| |
| %textureLoad_bce908 = func(%tint_module_vars:tint_module_vars_struct):vec4<f32> { |
| $B1: { |
| %3:texel_buffer<r32float, read> = access %tint_module_vars, 1u |
| %4:u32 = %3.get_width |
| %5:u32 = construct %4 |
| %6:u32 = sub %5, 1u |
| %7:u32 = min 1u, %6 |
| %8:vec4<f32> = %3.read %7 |
| %res:ptr<function, vec4<f32>, read_write> = var %8 |
| %10:vec4<f32> = load %res |
| ret %10 |
| } |
| } |
| %fragment_main = @fragment func(%prevent_dce:ptr<storage, vec4<f32>, read_write> [@binding_point(0, 0)], %arg_0:texel_buffer<r32float, read> [@binding_point(0, 0)]):void { |
| $B2: { |
| %14:tint_module_vars_struct = construct %prevent_dce, %arg_0 |
| %tint_module_vars_1:tint_module_vars_struct = let %14 # %tint_module_vars_1: 'tint_module_vars' |
| %16:vec4<f32> = call %textureLoad_bce908, %tint_module_vars_1 |
| %17:ptr<storage, vec4<f32>, read_write> = access %tint_module_vars_1, 0u |
| store %17, %16 |
| ret |
| } |
| } |
| |
| VertexOutput = struct @align(16) { |
| pos:vec4<f32> @offset(0) |
| prevent_dce:vec4<f32> @offset(16) |
| } |
| |
| tint_module_vars_struct = struct @align(1) { |
| prevent_dce:ptr<storage, vec4<f32>, read_write> @offset(0) |
| arg_0:texel_buffer<r32float, read> @offset(0) |
| } |
| |
| %textureLoad_bce908 = func(%tint_module_vars:tint_module_vars_struct):vec4<f32> { |
| $B1: { |
| %3:texel_buffer<r32float, read> = access %tint_module_vars, 1u |
| %4:u32 = %3.get_width |
| %5:u32 = construct %4 |
| %6:u32 = sub %5, 1u |
| %7:u32 = min 1u, %6 |
| %8:vec4<f32> = %3.read %7 |
| %res:ptr<function, vec4<f32>, read_write> = var %8 |
| %10:vec4<f32> = load %res |
| ret %10 |
| } |
| } |
| %compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, vec4<f32>, read_write> [@binding_point(0, 0)], %arg_0:texel_buffer<r32float, read> [@binding_point(0, 0)]):void { |
| $B2: { |
| %14:tint_module_vars_struct = construct %prevent_dce, %arg_0 |
| %tint_module_vars_1:tint_module_vars_struct = let %14 # %tint_module_vars_1: 'tint_module_vars' |
| %16:vec4<f32> = call %textureLoad_bce908, %tint_module_vars_1 |
| %17:ptr<storage, vec4<f32>, read_write> = access %tint_module_vars_1, 0u |
| store %17, %16 |
| ret |
| } |
| } |
| Failed to generate: :14:17 error: get_width: no matching call to 'get_width(texel_buffer<r32float, read>)' |
| |
| 16 candidate functions: |
| • 'get_width(texture: texture_depth_multisampled_2d ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_1d<F, A> ✗ ) -> u32' |
| • 'get_width(texture: texture_1d<T> ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_multisampled_2d<T> ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_depth_2d ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_depth_2d_array ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_depth_cube ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_depth_cube_array ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_2d<F, A> ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_2d_array<F, A> ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_3d<F, A> ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_2d<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_2d_array<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_3d<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_cube<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_cube_array<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| |
| %4:u32 = %3.get_width |
| ^^^^^^^^^ |
| |
| :12:3 note: in block |
| $B1: { |
| ^^^ |
| |
| :18:23 error: read: no matching call to 'read(texel_buffer<r32float, read>, u32)' |
| |
| 20 candidate functions: |
| • 'read(texture: texture_storage_1d<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: u32 ✓ ) -> vec4<f32>' |
| • 'read(texture: texture_storage_1d<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: u32 ✓ ) -> vec4<i32>' |
| • 'read(texture: texture_storage_1d<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: u32 ✓ ) -> vec4<u32>' |
| • 'read(texture: texture_1d<T> ✗ , coords: u32 ✓ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: vec2<u32> ✗ ) -> vec4<f32>' |
| • 'read(texture: texture_storage_3d<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: vec3<u32> ✗ ) -> vec4<f32>' |
| • 'read(texture: texture_storage_2d<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ ) -> vec4<i32>' |
| • 'read(texture: texture_storage_3d<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: vec3<u32> ✗ ) -> vec4<i32>' |
| • 'read(texture: texture_storage_2d<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ ) -> vec4<u32>' |
| • 'read(texture: texture_storage_3d<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: vec3<u32> ✗ ) -> vec4<u32>' |
| • 'read(texture: texture_depth_2d ✗ , coords: vec2<u32> ✗ , level: L ✗ ) -> f32' where: |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_depth_multisampled_2d ✗ , coords: vec2<u32> ✗ , sample_index: S ✗ ) -> f32' where: |
| ✗ 'S' is 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d_array<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ ) -> vec4<f32>' where: |
| ✗ 'A' is 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d_array<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ ) -> vec4<i32>' where: |
| ✗ 'A' is 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d_array<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ ) -> vec4<u32>' where: |
| ✗ 'A' is 'i32' or 'u32' |
| • 'read(texture: texture_2d<T> ✗ , coords: vec2<u32> ✗ , level: L ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_3d<T> ✗ , coords: vec3<u32> ✗ , level: L ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_multisampled_2d<T> ✗ , coords: vec2<u32> ✗ , sample_index: S ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'S' is 'i32' or 'u32' |
| • 'read(texture: texture_depth_2d_array ✗ , coords: vec2<u32> ✗ , array_index: A ✗ , level: L ✗ ) -> f32' where: |
| ✗ 'A' is 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_2d_array<T> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ , level: L ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'A' is 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| |
| %8:vec4<f32> = %3.read %7 |
| ^^^^ |
| |
| :12:3 note: in block |
| $B1: { |
| ^^^ |
| |
| note: # Disassembly |
| VertexOutput = struct @align(16) { |
| pos:vec4<f32> @offset(0) |
| prevent_dce:vec4<f32> @offset(16) |
| } |
| |
| tint_module_vars_struct = struct @align(1) { |
| prevent_dce:ptr<storage, vec4<f32>, read_write> @offset(0) |
| arg_0:texel_buffer<r32float, read> @offset(0) |
| } |
| |
| %textureLoad_bce908 = func(%tint_module_vars:tint_module_vars_struct):vec4<f32> { |
| $B1: { |
| %3:texel_buffer<r32float, read> = access %tint_module_vars, 1u |
| %4:u32 = %3.get_width |
| %5:u32 = construct %4 |
| %6:u32 = sub %5, 1u |
| %7:u32 = min 1u, %6 |
| %8:vec4<f32> = %3.read %7 |
| %res:ptr<function, vec4<f32>, read_write> = var %8 |
| %10:vec4<f32> = load %res |
| ret %10 |
| } |
| } |
| %compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, vec4<f32>, read_write> [@binding_point(0, 0)], %arg_0:texel_buffer<r32float, read> [@binding_point(0, 0)]):void { |
| $B2: { |
| %14:tint_module_vars_struct = construct %prevent_dce, %arg_0 |
| %tint_module_vars_1:tint_module_vars_struct = let %14 # %tint_module_vars_1: 'tint_module_vars' |
| %16:vec4<f32> = call %textureLoad_bce908, %tint_module_vars_1 |
| %17:ptr<storage, vec4<f32>, read_write> = access %tint_module_vars_1, 0u |
| store %17, %16 |
| ret |
| } |
| } |
| |
| VertexOutput = struct @align(16) { |
| pos:vec4<f32> @offset(0) |
| prevent_dce:vec4<f32> @offset(16) |
| } |
| |
| vertex_main_outputs = struct @align(16) { |
| VertexOutput_pos:vec4<f32> @offset(0), @builtin(position) |
| VertexOutput_prevent_dce:vec4<f32> @offset(16), @location(0), @interpolate(flat) |
| } |
| |
| tint_module_vars_struct = struct @align(1) { |
| arg_0:texel_buffer<r32float, read> @offset(0) |
| } |
| |
| %textureLoad_bce908 = func(%tint_module_vars:tint_module_vars_struct):vec4<f32> { |
| $B1: { |
| %3:texel_buffer<r32float, read> = access %tint_module_vars, 0u |
| %4:u32 = %3.get_width |
| %5:u32 = construct %4 |
| %6:u32 = sub %5, 1u |
| %7:u32 = min 1u, %6 |
| %8:vec4<f32> = %3.read %7 |
| %res:ptr<function, vec4<f32>, read_write> = var %8 |
| %10:vec4<f32> = load %res |
| ret %10 |
| } |
| } |
| %vertex_main_inner = func(%tint_module_vars_1:tint_module_vars_struct):VertexOutput { # %tint_module_vars_1: 'tint_module_vars' |
| $B2: { |
| %out:ptr<function, VertexOutput, read_write> = var undef |
| %14:ptr<function, vec4<f32>, read_write> = access %out, 0u |
| store %14, vec4<f32>(0.0f) |
| %15:ptr<function, vec4<f32>, read_write> = access %out, 1u |
| %16:vec4<f32> = call %textureLoad_bce908, %tint_module_vars_1 |
| store %15, %16 |
| %17:VertexOutput = load %out |
| ret %17 |
| } |
| } |
| %vertex_main = @vertex func(%arg_0:texel_buffer<r32float, read> [@binding_point(0, 0)]):vertex_main_outputs { |
| $B3: { |
| %20:tint_module_vars_struct = construct %arg_0 |
| %tint_module_vars_2:tint_module_vars_struct = let %20 # %tint_module_vars_2: 'tint_module_vars' |
| %22:VertexOutput = call %vertex_main_inner, %tint_module_vars_2 |
| %23:vec4<f32> = access %22, 0u |
| %24:vec4<f32> = access %22, 1u |
| %tint_wrapper_result:ptr<function, vertex_main_outputs, read_write> = var undef |
| %26:ptr<function, vec4<f32>, read_write> = access %tint_wrapper_result, 0u |
| store %26, %23 |
| %27:ptr<function, vec4<f32>, read_write> = access %tint_wrapper_result, 1u |
| store %27, %24 |
| %28:vertex_main_outputs = load %tint_wrapper_result |
| ret %28 |
| } |
| } |
| Failed to generate: :18:17 error: get_width: no matching call to 'get_width(texel_buffer<r32float, read>)' |
| |
| 16 candidate functions: |
| • 'get_width(texture: texture_depth_multisampled_2d ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_1d<F, A> ✗ ) -> u32' |
| • 'get_width(texture: texture_1d<T> ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_multisampled_2d<T> ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_depth_2d ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_depth_2d_array ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_depth_cube ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_depth_cube_array ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_2d<F, A> ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_2d_array<F, A> ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_storage_3d<F, A> ✗ , u32 ✗ ) -> u32' |
| • 'get_width(texture: texture_2d<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_2d_array<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_3d<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_cube<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'get_width(texture: texture_cube_array<T> ✗ , u32 ✗ ) -> u32' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| |
| %4:u32 = %3.get_width |
| ^^^^^^^^^ |
| |
| :16:3 note: in block |
| $B1: { |
| ^^^ |
| |
| :22:23 error: read: no matching call to 'read(texel_buffer<r32float, read>, u32)' |
| |
| 20 candidate functions: |
| • 'read(texture: texture_storage_1d<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: u32 ✓ ) -> vec4<f32>' |
| • 'read(texture: texture_storage_1d<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: u32 ✓ ) -> vec4<i32>' |
| • 'read(texture: texture_storage_1d<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: u32 ✓ ) -> vec4<u32>' |
| • 'read(texture: texture_1d<T> ✗ , coords: u32 ✓ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: vec2<u32> ✗ ) -> vec4<f32>' |
| • 'read(texture: texture_storage_3d<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: vec3<u32> ✗ ) -> vec4<f32>' |
| • 'read(texture: texture_storage_2d<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ ) -> vec4<i32>' |
| • 'read(texture: texture_storage_3d<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: vec3<u32> ✗ ) -> vec4<i32>' |
| • 'read(texture: texture_storage_2d<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ ) -> vec4<u32>' |
| • 'read(texture: texture_storage_3d<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: vec3<u32> ✗ ) -> vec4<u32>' |
| • 'read(texture: texture_depth_2d ✗ , coords: vec2<u32> ✗ , level: L ✗ ) -> f32' where: |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_depth_multisampled_2d ✗ , coords: vec2<u32> ✗ , sample_index: S ✗ ) -> f32' where: |
| ✗ 'S' is 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d_array<r8unorm', 'r8snorm', 'rg8unorm', 'rg8snorm', 'bgra8unorm', 'rgba8unorm', 'rgba8snorm', 'r16unorm', 'r16snorm', 'rg16unorm', 'rg16snorm', 'rgba16unorm', 'rgba16snorm', 'r16float', 'rg16float', 'rgba16float', 'r32float', 'rg32float', 'rgba32float', 'rgb10a2unorm' or 'rg11b10ufloat, read' or 'read_write> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ ) -> vec4<f32>' where: |
| ✗ 'A' is 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d_array<r8sint', 'rg8sint', 'rgba8sint', 'r16sint', 'rg16sint', 'rgba16sint', 'r32sint', 'rg32sint' or 'rgba32sint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ ) -> vec4<i32>' where: |
| ✗ 'A' is 'i32' or 'u32' |
| • 'read(texture: texture_storage_2d_array<r8uint', 'rg8uint', 'r16uint', 'rg16uint', 'rgba8uint', 'rgba16uint', 'r32uint', 'rg32uint', 'rgba32uint' or 'rgb10a2uint, read' or 'read_write> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ ) -> vec4<u32>' where: |
| ✗ 'A' is 'i32' or 'u32' |
| • 'read(texture: texture_2d<T> ✗ , coords: vec2<u32> ✗ , level: L ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_3d<T> ✗ , coords: vec3<u32> ✗ , level: L ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_multisampled_2d<T> ✗ , coords: vec2<u32> ✗ , sample_index: S ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'S' is 'i32' or 'u32' |
| • 'read(texture: texture_depth_2d_array ✗ , coords: vec2<u32> ✗ , array_index: A ✗ , level: L ✗ ) -> f32' where: |
| ✗ 'A' is 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| • 'read(texture: texture_2d_array<T> ✗ , coords: vec2<u32> ✗ , array_index: A ✗ , level: L ✗ ) -> vec4<T>' where: |
| ✗ 'T' is 'f32', 'i32' or 'u32' |
| ✗ 'A' is 'i32' or 'u32' |
| ✗ 'L' is 'i32' or 'u32' |
| |
| %8:vec4<f32> = %3.read %7 |
| ^^^^ |
| |
| :16:3 note: in block |
| $B1: { |
| ^^^ |
| |
| note: # Disassembly |
| VertexOutput = struct @align(16) { |
| pos:vec4<f32> @offset(0) |
| prevent_dce:vec4<f32> @offset(16) |
| } |
| |
| vertex_main_outputs = struct @align(16) { |
| VertexOutput_pos:vec4<f32> @offset(0), @builtin(position) |
| VertexOutput_prevent_dce:vec4<f32> @offset(16), @location(0), @interpolate(flat) |
| } |
| |
| tint_module_vars_struct = struct @align(1) { |
| arg_0:texel_buffer<r32float, read> @offset(0) |
| } |
| |
| %textureLoad_bce908 = func(%tint_module_vars:tint_module_vars_struct):vec4<f32> { |
| $B1: { |
| %3:texel_buffer<r32float, read> = access %tint_module_vars, 0u |
| %4:u32 = %3.get_width |
| %5:u32 = construct %4 |
| %6:u32 = sub %5, 1u |
| %7:u32 = min 1u, %6 |
| %8:vec4<f32> = %3.read %7 |
| %res:ptr<function, vec4<f32>, read_write> = var %8 |
| %10:vec4<f32> = load %res |
| ret %10 |
| } |
| } |
| %vertex_main_inner = func(%tint_module_vars_1:tint_module_vars_struct):VertexOutput { # %tint_module_vars_1: 'tint_module_vars' |
| $B2: { |
| %out:ptr<function, VertexOutput, read_write> = var undef |
| %14:ptr<function, vec4<f32>, read_write> = access %out, 0u |
| store %14, vec4<f32>(0.0f) |
| %15:ptr<function, vec4<f32>, read_write> = access %out, 1u |
| %16:vec4<f32> = call %textureLoad_bce908, %tint_module_vars_1 |
| store %15, %16 |
| %17:VertexOutput = load %out |
| ret %17 |
| } |
| } |
| %vertex_main = @vertex func(%arg_0:texel_buffer<r32float, read> [@binding_point(0, 0)]):vertex_main_outputs { |
| $B3: { |
| %20:tint_module_vars_struct = construct %arg_0 |
| %tint_module_vars_2:tint_module_vars_struct = let %20 # %tint_module_vars_2: 'tint_module_vars' |
| %22:VertexOutput = call %vertex_main_inner, %tint_module_vars_2 |
| %23:vec4<f32> = access %22, 0u |
| %24:vec4<f32> = access %22, 1u |
| %tint_wrapper_result:ptr<function, vertex_main_outputs, read_write> = var undef |
| %26:ptr<function, vec4<f32>, read_write> = access %tint_wrapper_result, 0u |
| store %26, %23 |
| %27:ptr<function, vec4<f32>, read_write> = access %tint_wrapper_result, 1u |
| store %27, %24 |
| %28:vertex_main_outputs = load %tint_wrapper_result |
| ret %28 |
| } |
| } |
| |
| // |
| // fragment_main |
| // |
| // |
| // compute_main |
| // |
| // |
| // vertex_main |
| // |
| |
| tint executable returned error: exit status 1 |