test/tint: Update expectations
Merge conflict in generated output
Change-Id: I3d4d3643b86768c9c4810de41426a64fcaf4d593
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/113240
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.glsl b/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.glsl
index ad5e592..2615ac7 100644
--- a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.glsl
+++ b/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.glsl
@@ -73,13 +73,21 @@
S inner;
} tint_symbol;
+void assign_and_preserve_padding_tint_symbol(S value) {
+ tint_symbol.inner.f = value.f;
+ tint_symbol.inner.u = value.u;
+ tint_symbol.inner.v = value.v;
+ tint_symbol.inner.x = value.x;
+ tint_symbol.inner.y = value.y;
+}
+
void frag_main(S tint_symbol_1) {
float f = tint_symbol_1.f;
uint u = tint_symbol_1.u;
vec4 v = tint_symbol_1.v;
float16_t x = tint_symbol_1.x;
f16vec3 y = tint_symbol_1.y;
- tint_symbol.inner = tint_symbol_1;
+ assign_and_preserve_padding_tint_symbol(tint_symbol_1);
}
void main() {
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.msl b/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.msl
index ad33a2a..c442b8f 100644
--- a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.msl
+++ b/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.msl
@@ -26,6 +26,14 @@
/* 0x00c6 */ tint_array<int8_t, 58> tint_pad_3;
};
+void assign_and_preserve_padding(device S* const dest, S value) {
+ (*(dest)).f = value.f;
+ (*(dest)).u = value.u;
+ (*(dest)).v = value.v;
+ (*(dest)).x = value.x;
+ (*(dest)).y = half3(value.y);
+}
+
struct tint_symbol_1 {
float f [[user(locn0)]];
uint u [[user(locn1)]] [[flat]];
@@ -39,7 +47,7 @@
float4 const v = input.v;
half const x = input.x;
half3 const y = half3(input.y);
- *(tint_symbol_3) = input;
+ assign_and_preserve_padding(tint_symbol_3, input);
}
fragment void frag_main(device S* tint_symbol_4 [[buffer(0)]], float4 v [[position]], tint_symbol_1 tint_symbol [[stage_in]]) {
diff --git a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.spvasm b/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.spvasm
index 52ab2f6..344531c 100644
--- a/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.spvasm
+++ b/test/tint/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 43
+; Bound: 64
; Schema: 0
OpCapability Shader
OpCapability Float16
@@ -25,6 +25,8 @@
OpMemberName %S 3 "x"
OpMemberName %S 4 "y"
OpName %output "output"
+ OpName %assign_and_preserve_padding_output "assign_and_preserve_padding_output"
+ OpName %value "value"
OpName %frag_main_inner "frag_main_inner"
OpName %input "input"
OpName %frag_main "frag_main"
@@ -65,28 +67,55 @@
%void = OpTypeVoid
%20 = OpTypeFunction %void %S
%uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
- %33 = OpTypeFunction %void
-%frag_main_inner = OpFunction %void None %20
- %input = OpFunctionParameter %S
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+ %uint_2 = OpConstant %uint 2
+%_ptr_StorageBuffer_v4float = OpTypePointer StorageBuffer %v4float
+ %uint_3 = OpConstant %uint 3
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+ %uint_4 = OpConstant %uint 4
+%_ptr_StorageBuffer_v3half = OpTypePointer StorageBuffer %v3half
+ %54 = OpTypeFunction %void
+%assign_and_preserve_padding_output = OpFunction %void None %20
+ %value = OpFunctionParameter %S
%24 = OpLabel
- %25 = OpCompositeExtract %float %input 0
- %26 = OpCompositeExtract %uint %input 1
- %27 = OpCompositeExtract %v4float %input 2
- %28 = OpCompositeExtract %half %input 3
- %29 = OpCompositeExtract %v3half %input 4
- %32 = OpAccessChain %_ptr_StorageBuffer_S %output %uint_0
- OpStore %32 %input
+ %27 = OpAccessChain %_ptr_StorageBuffer_float %output %uint_0 %uint_0
+ %28 = OpCompositeExtract %float %value 0
+ OpStore %27 %28
+ %31 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %uint_1
+ %32 = OpCompositeExtract %uint %value 1
+ OpStore %31 %32
+ %35 = OpAccessChain %_ptr_StorageBuffer_v4float %output %uint_0 %uint_2
+ %36 = OpCompositeExtract %v4float %value 2
+ OpStore %35 %36
+ %39 = OpAccessChain %_ptr_StorageBuffer_half %output %uint_0 %uint_3
+ %40 = OpCompositeExtract %half %value 3
+ OpStore %39 %40
+ %43 = OpAccessChain %_ptr_StorageBuffer_v3half %output %uint_0 %uint_4
+ %44 = OpCompositeExtract %v3half %value 4
+ OpStore %43 %44
OpReturn
OpFunctionEnd
- %frag_main = OpFunction %void None %33
- %35 = OpLabel
- %37 = OpLoad %float %f_1
- %38 = OpLoad %uint %u_1
- %39 = OpLoad %v4float %v_1
- %40 = OpLoad %half %x_1
- %41 = OpLoad %v3half %y_1
- %42 = OpCompositeConstruct %S %37 %38 %39 %40 %41
- %36 = OpFunctionCall %void %frag_main_inner %42
+%frag_main_inner = OpFunction %void None %20
+ %input = OpFunctionParameter %S
+ %47 = OpLabel
+ %48 = OpCompositeExtract %float %input 0
+ %49 = OpCompositeExtract %uint %input 1
+ %50 = OpCompositeExtract %v4float %input 2
+ %51 = OpCompositeExtract %half %input 3
+ %52 = OpCompositeExtract %v3half %input 4
+ %53 = OpFunctionCall %void %assign_and_preserve_padding_output %input
+ OpReturn
+ OpFunctionEnd
+ %frag_main = OpFunction %void None %54
+ %56 = OpLabel
+ %58 = OpLoad %float %f_1
+ %59 = OpLoad %uint %u_1
+ %60 = OpLoad %v4float %v_1
+ %61 = OpLoad %half %x_1
+ %62 = OpLoad %v3half %y_1
+ %63 = OpCompositeConstruct %S %58 %59 %60 %61 %62
+ %57 = OpFunctionCall %void %frag_main_inner %63
OpReturn
OpFunctionEnd