[test]: Add test case for tint:369

Fixed: tint:369
Change-Id: Ib5f6c84bc8e0f43ab0034048ab1517335ae2d7bc
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/57200
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
Ben Clayton 2021-07-08 12:00:31 +00:00 committed by Tint LUCI CQ
parent 97bddeee20
commit a7392fbd8a
5 changed files with 68 additions and 0 deletions

6
test/bug/tint/369.wgsl Normal file
View File

@ -0,0 +1,6 @@
[[block]] struct S {
m : mat2x2<f32>;
};
[[group(0), binding(0)]] var<storage> SSBO : S;
[[group(0), binding(0)]] var<uniform> UBO : S;

View File

@ -0,0 +1,9 @@
[numthreads(1, 1, 1)]
void unused_entry_point() {
return;
}
ByteAddressBuffer SSBO : register(t0, space0);
cbuffer cbuffer_UBO : register(b0, space0) {
uint4 UBO[1];
};

View File

@ -0,0 +1,7 @@
#include <metal_stdlib>
using namespace metal;
struct S {
/* 0x0000 */ float2x2 m;
};

View File

@ -0,0 +1,38 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 13
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
OpExecutionMode %unused_entry_point LocalSize 1 1 1
OpName %S "S"
OpMemberName %S 0 "m"
OpName %SSBO "SSBO"
OpName %UBO "UBO"
OpName %unused_entry_point "unused_entry_point"
OpDecorate %S Block
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %S 0 ColMajor
OpMemberDecorate %S 0 MatrixStride 8
OpDecorate %SSBO NonWritable
OpDecorate %SSBO DescriptorSet 0
OpDecorate %SSBO Binding 0
OpDecorate %UBO NonWritable
OpDecorate %UBO DescriptorSet 0
OpDecorate %UBO Binding 0
%float = OpTypeFloat 32
%v2float = OpTypeVector %float 2
%mat2v2float = OpTypeMatrix %v2float 2
%S = OpTypeStruct %mat2v2float
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
%SSBO = OpVariable %_ptr_StorageBuffer_S StorageBuffer
%_ptr_Uniform_S = OpTypePointer Uniform %S
%UBO = OpVariable %_ptr_Uniform_S Uniform
%void = OpTypeVoid
%9 = OpTypeFunction %void
%unused_entry_point = OpFunction %void None %9
%12 = OpLabel
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,8 @@
[[block]]
struct S {
m : mat2x2<f32>;
};
[[group(0), binding(0)]] var<storage> SSBO : S;
[[group(0), binding(0)]] var<uniform> UBO : S;