1#include "types.glsl"
 2
 3#define MAT_VEC_FUSION_FLAGS_BIAS0 0x1
 4#define MAT_VEC_FUSION_FLAGS_BIAS1 0x2
 5#define MAT_VEC_FUSION_FLAGS_SCALE0 0x4
 6#define MAT_VEC_FUSION_FLAGS_SCALE1 0x8
 7
 8layout (binding = 0) readonly buffer A {A_TYPE data_a[];};
 9#if defined(A_TYPE_VEC4)
10layout (binding = 0) readonly buffer AV4 {A_TYPE_VEC4 data_a_v4[];};
11#endif
12#if defined(A_TYPE_PACKED16)
13layout (binding = 0) readonly buffer A_PACKED16 {A_TYPE_PACKED16 data_a_packed16[];};
14#endif
15#if defined(A_TYPE_PACKED32)
16layout (binding = 0) readonly buffer A_PACKED32 {A_TYPE_PACKED32 data_a_packed32[];};
17#endif
18
19layout (binding = 1) readonly buffer B {B_TYPE data_b[];};
20#ifdef B_TYPE_VEC2
21layout (binding = 1) readonly buffer BV2 {B_TYPE_VEC2 data_b_v2[];};
22#endif
23#ifdef B_TYPE_VEC4
24layout (binding = 1) readonly buffer BV4 {B_TYPE_VEC4 data_b_v4[];};
25#endif
26
27layout (binding = 2) writeonly buffer D {D_TYPE data_d[];};
28
29layout (binding = 3) readonly buffer Fuse0 {D_TYPE data_fuse0[];};
30layout (binding = 4) readonly buffer Fuse1 {D_TYPE data_fuse1[];};
31
32#ifdef MUL_MAT_ID
33layout (binding = 5) readonly buffer IDS {int data_ids[];};
34#endif
35