#version 460 core #extension GL_ARM_tensors : enable readonly layout(set=0, binding=1) uniform tensorARM roTens; writeonly layout(set=0, binding=0) uniform tensorARM woTens; readonly writeonly layout(set=0, binding=1) uniform tensorARM rowoTens; layout(set=0, binding=2) uniform tensorARM rwTens; shared uint x; void main() { // tensorSizeARM should be callable with any tensor regardless of access qualifiers. x = 0; x += tensorSizeARM(roTens, 0); x += tensorSizeARM(woTens, 0); x += tensorSizeARM(rowoTens, 1); x += tensorSizeARM(rwTens, 1); int d = 4; // Valid tensorWriteARM calls. tensorWriteARM(woTens, uint[](0, 0), d); tensorWriteARM(rwTens, uint[](0, 0), d); // Invalid tensorWriteARM calls. tensorWriteARM(rowoTens, uint[](0, 0), d); tensorWriteARM(roTens, uint[](0, 0), d); // Valid tensorReadARM calls. tensorReadARM(roTens, uint[](0, 0), d); tensorReadARM(rwTens, uint[](0, 0), d); // Invalid tensorReadARM calls. tensorReadARM(rowoTens, uint[](0, 0), d); tensorReadARM(woTens, uint[](0, 0), d); }