File: runtimeArray.vert

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 (110 lines) | stat: -rw-r--r-- 2,885 bytes parent folder | download | duplicates (17)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#version 450 core

buffer bn {
    int a[];
    float b[];
} buf;

uniform un {
    int a[];
    float b[];
} ubuf;

buffer bna {
    int a[];
    float b[];
} bufa[4];

uniform una {
    int a[];
    float b[];
} ubufa[4];

buffer abn {
    int aba[];
    float abb[];
};

uniform aun {
    int aua[];
    float aub[];
};

layout(binding=1)                             uniform samplerBuffer       uniformTexelBufferDyn[];
layout(binding=2, r32f)                       uniform imageBuffer         storageTexelBufferDyn[];
layout(binding=3)                             uniform uname { float a; }  uniformBuffer[];
layout(binding=4)                             buffer  bname { float b; }  storageBuffer[];
layout(binding=5)                             uniform sampler2D           sampledImage[];
layout(binding=6, r32f)                       uniform image2D             storageImage[];
layout(binding=8)                             uniform samplerBuffer       uniformTexelBuffer[];
layout(binding=9, r32f)                       uniform imageBuffer         storageTexelBuffer[];

int i;

void main()
{
    ubuf.a[3];
    ubuf.b[3];
    buf.a[3];
    buf.b[3];

    ubufa[3].a[3];
    ubufa[3].b[3];
    bufa[3].a[3];
    bufa[3].b[3];

    aua[3];
    aub[3];
    aba[3];
    abb[3];

    ubuf.a[i];             // ERROR
    ubuf.b[i];             // ERROR
    buf.a[i];              // ERROR
    buf.b[i];

    ubuf.a.length();       // ERROR
    ubuf.b.length();       // ERROR
    buf.a.length();        // ERROR
    buf.b.length();

    ubufa[1].a[i];         // ERROR
    ubufa[1].b[i];         // ERROR
    bufa[1].a[i];          // ERROR
    bufa[1].b[i];

    ubufa[1].a.length();   // ERROR
    ubufa[1].b.length();   // ERROR
    bufa[1].a.length();    // ERROR
    bufa[1].b.length();

    aua[i];                // ERROR
    aub[i];                // ERROR
    aba[i];                // ERROR
    abb[i];

    aua.length();          // ERROR
    aub.length();          // ERROR
    aba.length();          // ERROR
    abb.length();

    uniformTexelBufferDyn[1];
    storageTexelBufferDyn[1];
    uniformBuffer[1];
    storageBuffer[1];
    sampledImage[1];
    storageImage[1];
    uniformTexelBuffer[1];
    storageTexelBuffer[1];

    uniformTexelBufferDyn[i];  // ERROR, need extension
    storageTexelBufferDyn[i];  // ERROR, need extension
    uniformBuffer[i];          // ERROR, need extension
    storageBuffer[i];          // ERROR, need extension
    sampledImage[i];           // ERROR, need extension
    storageImage[i];           // ERROR, need extension
    uniformTexelBuffer[i];     // ERROR, need extension
    storageTexelBuffer[i];     // ERROR, need extension

    float local[] = ubuf.b;    // ERROR, can initialize with runtime-sized array
}