• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!amber
2# Copyright 2019 The Amber Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#     https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16SHADER compute compute_shader GLSL
17#version 430
18
19layout(set = 0, binding = 0) buffer block0 {
20  mat2 identical_mat_0;
21};
22
23layout(set = 0, binding = 1) uniform block1 {
24  mat2 identical_mat_1;
25};
26
27layout(set = 0, binding = 2) buffer block3 {
28  vec2 test0;
29  vec2 test1;
30};
31
32void main() {
33  test0 = identical_mat_0 * test0;
34  test1 = identical_mat_1 * test1;
35}
36END
37
38# This is bound as an SSBO, so matrix stride is 8
39BUFFER buf0 DATA_TYPE mat2x2<float> DATA
401.0 0.0
410.0 1.0
42END
43
44# This is bound as a UBO so matrix stride is 16 due to GLSLang setting
45# STD140 layout.
46BUFFER buf1 DATA_TYPE mat2x2<float> DATA
471.0 0.0 0.0 0.0
480.0 1.0 0.0 0.0
49END
50
51BUFFER buf2 DATA_TYPE vec2<float> DATA
523.7 9.4
534.5 6.1
54END
55
56PIPELINE compute pipeline
57  ATTACH compute_shader
58
59  BIND BUFFER buf0 AS storage DESCRIPTOR_SET 0 BINDING 0
60  BIND BUFFER buf1 AS uniform DESCRIPTOR_SET 0 BINDING 1
61  BIND BUFFER buf2 AS storage DESCRIPTOR_SET 0 BINDING 2
62END
63
64RUN pipeline 1 1 1
65
66EXPECT buf2 IDX 0 EQ 3.7 9.4
67EXPECT buf2 IDX 8 EQ 4.5 6.1
68