test: Add case for tint:870

Also update SKIP reasons for DXC failures.

Bug: tint:870
Change-Id: I90b1af238249656fb02dfecbecf7f9258730e963
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/54580
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
This commit is contained in:
Ben Clayton 2021-06-16 09:50:11 +00:00 committed by Ben Clayton
parent 677437d650
commit 92b1991271
11 changed files with 252 additions and 6 deletions

86
test/bug/tint/870.spvasm Normal file
View File

@ -0,0 +1,86 @@
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 10
; Bound: 41
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main"
OpExecutionMode %main OriginUpperLeft
OpSource GLSL 460
OpSourceExtension "GL_ARB_enhanced_layouts"
OpSourceExtension "GL_ARB_gpu_shader_int64"
OpSourceExtension "GL_ARB_separate_shader_objects"
OpSourceExtension "GL_ARB_shader_clock"
OpSourceExtension "GL_ARB_shading_language_420pack"
OpSourceExtension "GL_EXT_scalar_block_layout"
OpSourceExtension "GL_EXT_shader_io_blocks"
OpSourceExtension "GL_EXT_shader_realtime_clock"
OpName %main "main"
OpName %orientation "orientation"
OpName %sspp962805860buildInformationS "sspp962805860buildInformationS"
OpMemberName %sspp962805860buildInformationS 0 "footprint"
OpMemberName %sspp962805860buildInformationS 1 "offset"
OpMemberName %sspp962805860buildInformationS 2 "essence"
OpMemberName %sspp962805860buildInformationS 3 "orientation"
OpName %_B4_BuildInformation "_B4_BuildInformation"
OpMemberName %_B4_BuildInformation 0 "passthru"
OpName %sspp962805860buildInformation "sspp962805860buildInformation"
OpDecorate %_arr_int_uint_6_0 ArrayStride 4
OpMemberDecorate %sspp962805860buildInformationS 0 Offset 0
OpMemberDecorate %sspp962805860buildInformationS 1 Offset 16
OpMemberDecorate %sspp962805860buildInformationS 2 Offset 32
OpMemberDecorate %sspp962805860buildInformationS 3 Offset 36
OpMemberDecorate %_B4_BuildInformation 0 NonWritable
OpMemberDecorate %_B4_BuildInformation 0 Offset 0
OpDecorate %_B4_BuildInformation BufferBlock
OpDecorate %sspp962805860buildInformation DescriptorSet 0
OpDecorate %sspp962805860buildInformation Binding 2
%void = OpTypeVoid
%3 = OpTypeFunction %void
%int = OpTypeInt 32 1
%uint = OpTypeInt 32 0
%uint_6 = OpConstant %uint 6
%_arr_int_uint_6 = OpTypeArray %int %uint_6
%_ptr_Function__arr_int_uint_6 = OpTypePointer Function %_arr_int_uint_6
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_arr_int_uint_6_0 = OpTypeArray %int %uint_6
%sspp962805860buildInformationS = OpTypeStruct %v4float %v4float %int %_arr_int_uint_6_0
%_B4_BuildInformation = OpTypeStruct %sspp962805860buildInformationS
%_ptr_Uniform__B4_BuildInformation = OpTypePointer Uniform %_B4_BuildInformation
%sspp962805860buildInformation = OpVariable %_ptr_Uniform__B4_BuildInformation Uniform
%int_0 = OpConstant %int 0
%int_3 = OpConstant %int 3
%_ptr_Uniform__arr_int_uint_6_0 = OpTypePointer Uniform %_arr_int_uint_6_0
%_ptr_Function_int = OpTypePointer Function %int
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_4 = OpConstant %int 4
%int_5 = OpConstant %int 5
%main = OpFunction %void None %3
%5 = OpLabel
%orientation = OpVariable %_ptr_Function__arr_int_uint_6 Function
%22 = OpAccessChain %_ptr_Uniform__arr_int_uint_6_0 %sspp962805860buildInformation %int_0 %int_3
%23 = OpLoad %_arr_int_uint_6_0 %22
%24 = OpCompositeExtract %int %23 0
%26 = OpAccessChain %_ptr_Function_int %orientation %int_0
OpStore %26 %24
%27 = OpCompositeExtract %int %23 1
%29 = OpAccessChain %_ptr_Function_int %orientation %int_1
OpStore %29 %27
%30 = OpCompositeExtract %int %23 2
%32 = OpAccessChain %_ptr_Function_int %orientation %int_2
OpStore %32 %30
%33 = OpCompositeExtract %int %23 3
%34 = OpAccessChain %_ptr_Function_int %orientation %int_3
OpStore %34 %33
%35 = OpCompositeExtract %int %23 4
%37 = OpAccessChain %_ptr_Function_int %orientation %int_4
OpStore %37 %35
%38 = OpCompositeExtract %int %23 5
%40 = OpAccessChain %_ptr_Function_int %orientation %int_5
OpStore %40 %38
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,22 @@
struct tint_array_wrapper {
int arr[6];
};
tint_array_wrapper tint_symbol_1(ByteAddressBuffer buffer, uint offset) {
const tint_array_wrapper tint_symbol_2 = {{asint(buffer.Load((offset + 0u))), asint(buffer.Load((offset + 4u))), asint(buffer.Load((offset + 8u))), asint(buffer.Load((offset + 12u))), asint(buffer.Load((offset + 16u))), asint(buffer.Load((offset + 20u)))}};
return tint_symbol_2;
}
ByteAddressBuffer sspp962805860buildInformation : register(t2, space0);
void main() {
tint_array_wrapper orientation = {{0, 0, 0, 0, 0, 0}};
const tint_array_wrapper x_23 = tint_symbol_1(sspp962805860buildInformation, 36u);
orientation.arr[0] = x_23.arr[0u];
orientation.arr[1] = x_23.arr[1u];
orientation.arr[2] = x_23.arr[2u];
orientation.arr[3] = x_23.arr[3u];
orientation.arr[4] = x_23.arr[4u];
orientation.arr[5] = x_23.arr[5u];
return;
}

View File

@ -0,0 +1,28 @@
#include <metal_stdlib>
using namespace metal;
struct tint_array_wrapper {
/* 0x0000 */ int arr[6];
};
struct sspp962805860buildInformationS {
/* 0x0000 */ packed_float4 footprint;
/* 0x0010 */ packed_float4 offset;
/* 0x0020 */ int essence;
/* 0x0024 */ tint_array_wrapper orientation;
};
struct x_B4_BuildInformation {
/* 0x0000 */ sspp962805860buildInformationS passthru;
};
fragment void tint_symbol(const device x_B4_BuildInformation& sspp962805860buildInformation [[buffer(2)]]) {
tint_array_wrapper orientation = {};
tint_array_wrapper const x_23 = sspp962805860buildInformation.passthru.orientation;
orientation.arr[0] = x_23.arr[0u];
orientation.arr[1] = x_23.arr[1u];
orientation.arr[2] = x_23.arr[2u];
orientation.arr[3] = x_23.arr[3u];
orientation.arr[4] = x_23.arr[4u];
orientation.arr[5] = x_23.arr[5u];
return;
}

View File

@ -0,0 +1,82 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 46
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main"
OpExecutionMode %main OriginUpperLeft
OpName %x_B4_BuildInformation "x_B4_BuildInformation"
OpMemberName %x_B4_BuildInformation 0 "passthru"
OpName %sspp962805860buildInformationS "sspp962805860buildInformationS"
OpMemberName %sspp962805860buildInformationS 0 "footprint"
OpMemberName %sspp962805860buildInformationS 1 "offset"
OpMemberName %sspp962805860buildInformationS 2 "essence"
OpMemberName %sspp962805860buildInformationS 3 "orientation"
OpName %sspp962805860buildInformation "sspp962805860buildInformation"
OpName %main "main"
OpName %orientation "orientation"
OpDecorate %x_B4_BuildInformation Block
OpMemberDecorate %x_B4_BuildInformation 0 Offset 0
OpMemberDecorate %sspp962805860buildInformationS 0 Offset 0
OpMemberDecorate %sspp962805860buildInformationS 1 Offset 16
OpMemberDecorate %sspp962805860buildInformationS 2 Offset 32
OpMemberDecorate %sspp962805860buildInformationS 3 Offset 36
OpDecorate %_arr_int_uint_6 ArrayStride 4
OpDecorate %sspp962805860buildInformation NonWritable
OpDecorate %sspp962805860buildInformation DescriptorSet 0
OpDecorate %sspp962805860buildInformation Binding 2
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%int = OpTypeInt 32 1
%uint = OpTypeInt 32 0
%uint_6 = OpConstant %uint 6
%_arr_int_uint_6 = OpTypeArray %int %uint_6
%sspp962805860buildInformationS = OpTypeStruct %v4float %v4float %int %_arr_int_uint_6
%x_B4_BuildInformation = OpTypeStruct %sspp962805860buildInformationS
%_ptr_StorageBuffer_x_B4_BuildInformation = OpTypePointer StorageBuffer %x_B4_BuildInformation
%sspp962805860buildInformation = OpVariable %_ptr_StorageBuffer_x_B4_BuildInformation StorageBuffer
%void = OpTypeVoid
%11 = OpTypeFunction %void
%_ptr_Function__arr_int_uint_6 = OpTypePointer Function %_arr_int_uint_6
%17 = OpConstantNull %_arr_int_uint_6
%uint_0 = OpConstant %uint 0
%uint_3 = OpConstant %uint 3
%_ptr_StorageBuffer__arr_int_uint_6 = OpTypePointer StorageBuffer %_arr_int_uint_6
%int_0 = OpConstant %int 0
%_ptr_Function_int = OpTypePointer Function %int
%int_1 = OpConstant %int 1
%uint_1 = OpConstant %uint 1
%int_2 = OpConstant %int 2
%uint_2 = OpConstant %uint 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_4 = OpConstant %uint 4
%int_5 = OpConstant %int 5
%uint_5 = OpConstant %uint 5
%main = OpFunction %void None %11
%14 = OpLabel
%orientation = OpVariable %_ptr_Function__arr_int_uint_6 Function %17
%21 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_6 %sspp962805860buildInformation %uint_0 %uint_3
%22 = OpLoad %_arr_int_uint_6 %21
%25 = OpAccessChain %_ptr_Function_int %orientation %int_0
%26 = OpCompositeExtract %int %22 0
OpStore %25 %26
%28 = OpAccessChain %_ptr_Function_int %orientation %int_1
%30 = OpCompositeExtract %int %22 1
OpStore %28 %30
%32 = OpAccessChain %_ptr_Function_int %orientation %int_2
%34 = OpCompositeExtract %int %22 2
OpStore %32 %34
%36 = OpAccessChain %_ptr_Function_int %orientation %int_3
%37 = OpCompositeExtract %int %22 3
OpStore %36 %37
%39 = OpAccessChain %_ptr_Function_int %orientation %int_4
%41 = OpCompositeExtract %int %22 4
OpStore %39 %41
%43 = OpAccessChain %_ptr_Function_int %orientation %int_5
%45 = OpCompositeExtract %int %22 5
OpStore %43 %45
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,28 @@
type Arr = [[stride(4)]] array<i32, 6>;
struct sspp962805860buildInformationS {
footprint : vec4<f32>;
offset : vec4<f32>;
essence : i32;
orientation : Arr;
};
[[block]]
struct x_B4_BuildInformation {
passthru : sspp962805860buildInformationS;
};
[[group(0), binding(2)]] var<storage, read> sspp962805860buildInformation : x_B4_BuildInformation;
[[stage(fragment)]]
fn main() {
var orientation : array<i32, 6>;
let x_23 : Arr = sspp962805860buildInformation.passthru.orientation;
orientation[0] = x_23[0u];
orientation[1] = x_23[1u];
orientation[2] = x_23[2u];
orientation[3] = x_23[3u];
orientation[4] = x_23[4u];
orientation[5] = x_23[5u];
return;
}

View File

@ -1,4 +1,4 @@
SKIP: FAILED
SKIP: https://github.com/microsoft/DirectXShaderCompiler/issues/3824

View File

@ -1,4 +1,4 @@
SKIP: FAILED
SKIP: https://github.com/microsoft/DirectXShaderCompiler/issues/3824

View File

@ -1,4 +1,4 @@
SKIP: FAILED
SKIP: https://github.com/microsoft/DirectXShaderCompiler/issues/3824

View File

@ -1,4 +1,4 @@
SKIP: FAILED
SKIP: https://github.com/microsoft/DirectXShaderCompiler/issues/3823

View File

@ -1,4 +1,4 @@
SKIP: FAILED
SKIP: https://github.com/microsoft/DirectXShaderCompiler/issues/3823

View File

@ -1,4 +1,4 @@
SKIP: FAILED
SKIP: https://github.com/microsoft/DirectXShaderCompiler/issues/3823