xref: /aosp_15_r20/external/skia/resources/sksl/errors/InvalidBackendBindingFlagsMetal.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1// Valid declarations:
2layout(metal, binding=0) uniform ubo1 { float a; };               // valid
3layout(metal, binding=0) buffer ssbo { float b; };                // valid
4layout(metal, rgba32f, texture=0) readonly texture2D rtexture1;   // valid
5layout(metal, rgba32f, texture=0) writeonly texture2D wtexture1;  // valid
6layout(metal, texture=0, sampler=0) sampler2D sampler1;           // valid
7
8// TODO(skia:14023): This should require 'texture' once the metal backend supports it
9layout(metal, rgba32f, binding=0) readonly texture2D rtexture2;   // valid
10layout(metal, rgba32f, binding=0) writeonly texture2D wtexture2;  // valid
11layout(metal, binding=0) sampler2D sampler2;                      // valid
12
13// Invalid declarations:
14layout(metal, rgba32f, sampler=0) readonly texture2D rtexture3;            // invalid (has sampler)
15layout(metal, rgba32f, sampler=0) writeonly texture2D wtexture3;           // invalid (has sampler)
16layout(metal, rgba32f, texture=0, sampler=0) readonly texture2D rtexture4; // invalid (has sampler)
17layout(metal, rgba32f, texture=0, sampler=0) writeonly texture2D wtexture4;// invalid (has sampler)
18layout(metal, texture=0) readonly texture2D rtexture5;                     // invalid (no pixformat)
19layout(metal, texture=0) writeonly texture2D wtexture5;                    // invalid (no pixformat)
20layout(metal, binding=0, texture=0, sampler=0) sampler2D sampler3;         // invalid (has binding)
21layout(metal, texture=0, sampler=0) ubo2 { float c; };                     // invalid (has tex/samp)
22layout(metal, set=0, binding=0) ubo3 { float d; };                         // invalid (has set)
23
24/*%%*
25layout qualifier 'sampler' is not permitted here
26layout qualifier 'sampler' is not permitted here
27layout qualifier 'sampler' is not permitted here
28layout qualifier 'sampler' is not permitted here
29storage textures must declare a pixel format
30storage textures must declare a pixel format
31'binding' modifier cannot coexist with 'texture'/'sampler'
32layout qualifier 'texture' is not permitted here
33layout qualifier 'sampler' is not permitted here
34layout qualifier 'set' is not permitted here
35*%%*/
36