blob: 2947d88bb6c9fe038abfbbdf4faba1eaaee43074 [file] [log] [blame]
// Valid declarations:
layout(metal, binding=0) uniform ubo1 { float a; }; // valid
layout(metal, binding=0) buffer ssbo { float b; }; // valid
layout(metal, rgba32f, texture=0) readonly texture2D rtexture1; // valid
layout(metal, rgba32f, texture=0) writeonly texture2D wtexture1; // valid
layout(metal, texture=0, sampler=0) sampler2D sampler1; // valid
// TODO(skbug.com/40045103): This should require 'texture' once the metal backend supports it
layout(metal, rgba32f, binding=0) readonly texture2D rtexture2; // valid
layout(metal, rgba32f, binding=0) writeonly texture2D wtexture2; // valid
layout(metal, binding=0) sampler2D sampler2; // valid
// Invalid declarations:
layout(metal, rgba32f, sampler=0) readonly texture2D rtexture3; // invalid (has sampler)
layout(metal, rgba32f, sampler=0) writeonly texture2D wtexture3; // invalid (has sampler)
layout(metal, rgba32f, texture=0, sampler=0) readonly texture2D rtexture4; // invalid (has sampler)
layout(metal, rgba32f, texture=0, sampler=0) writeonly texture2D wtexture4;// invalid (has sampler)
layout(metal, texture=0) readonly texture2D rtexture5; // invalid (no pixformat)
layout(metal, texture=0) writeonly texture2D wtexture5; // invalid (no pixformat)
layout(metal, binding=0, texture=0, sampler=0) sampler2D sampler3; // invalid (has binding)
layout(metal, texture=0, sampler=0) ubo2 { float c; }; // invalid (has tex/samp)
layout(metal, set=0, binding=0) ubo3 { float d; }; // invalid (has set)
/*%%*
layout qualifier 'sampler' is not permitted here
layout qualifier 'sampler' is not permitted here
layout qualifier 'sampler' is not permitted here
layout qualifier 'sampler' is not permitted here
storage textures must declare a pixel format
storage textures must declare a pixel format
'binding' modifier cannot coexist with 'texture'/'sampler'
layout qualifier 'texture' is not permitted here
layout qualifier 'sampler' is not permitted here
layout qualifier 'set' is not permitted here
*%%*/