File: spv.multiStruct.comp

package info (click to toggle)
glslang 16.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 51,084 kB
  • sloc: cpp: 90,714; yacc: 4,243; sh: 603; python: 305; ansic: 94; javascript: 74; makefile: 17
file content (48 lines) | stat: -rw-r--r-- 656 bytes parent folder | download | duplicates (19)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#version 450 core

struct MyStruct
{
    vec2 foo[2];
    bool sb;
};

layout(binding = 0, std430) buffer SSBO0
{
    MyStruct a;
} inBuf;

layout(binding = 1, std430) buffer SSBO1
{
    MyStruct b;
} outBuf;

layout(binding = 2, std140) uniform UBO
{
    MyStruct c;
} uBuf;

struct Nested {
    float f;
    MyStruct S[2];
};

layout(binding = 2, std140) uniform UBON
{
    Nested N1;
} uBufN;

layout(binding = 1, std430) buffer SSBO1N
{
    Nested N2;
} outBufN;

void main()
{
    MyStruct t = inBuf.a;
    outBuf.b = t;
    t = uBuf.c;
    outBuf.b = t;

    Nested n = uBufN.N1;
    outBufN.N2 = n;
}