File: spv.coopvecloadstore_Error.comp

package info (click to toggle)
glslang 16.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 51,720 kB
  • sloc: cpp: 92,305; yacc: 4,320; sh: 603; python: 305; ansic: 94; javascript: 74; makefile: 17
file content (40 lines) | stat: -rw-r--r-- 1,080 bytes parent folder | download | duplicates (2)
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
#version 450 core
#extension GL_NV_gpu_shader5 : require
#extension GL_NV_cooperative_vector : require

layout(local_size_x = 8, local_size_y = 8) in;
layout(binding = 0, rgba8) uniform image2D image;

layout(std430, binding = 1) buffer MatrixBuffer
{
    float matrix[];
};

shared float sharedArray[16];

void main()
{
    // Test error: storing to local variable (should fail)
    float vecOut[4];
    coopvecNV<float, 4> coopVecOut;
    coopVecStoreNV(coopVecOut, vecOut, 0);  // ERROR: vecOut is local

    // Test error: loading from local variable (should fail)
    float vecIn[4];
    coopvecNV<float, 4> coopVecIn;
    coopVecLoadNV(coopVecIn, vecIn, 0);     // ERROR: vecIn is local

    // These should work correctly:
    // Store to buffer storage
    coopVecStoreNV(coopVecOut, matrix, 0);

    // Load from buffer storage
    coopVecLoadNV(coopVecIn, matrix, 0);

    // Store to shared storage
    coopVecStoreNV(coopVecOut, sharedArray, 0);

    // Load from shared storage
    coopVecLoadNV(coopVecIn, sharedArray, 0);
}