#version 460 core #extension GL_ARM_tensors : enable #extension GL_EXT_shader_explicit_arithmetic_types : enable #if !defined GL_ARM_tensors # error GL_ARM_tensors is not defined #elif GL_ARM_tensors != 1 # error GL_ARM_tensors is not equal to 1 #endif #if !defined GL_ARM_tensors_bfloat16 # error GL_ARM_tensors_bfloat16 is not defined #elif GL_ARM_tensors_bfloat16 != 1 # error GL_ARM_tensors_bfloat16 is not equal to 1 #endif #if !defined GL_ARM_tensors_float_e5m2 # error GL_ARM_tensors_float_e5m2 is not defined #elif GL_ARM_tensors_float_e5m2 != 1 # error GL_ARM_tensors_float_e5m2 is not equal to 1 #endif #if !defined GL_ARM_tensors_float_e4m3 # error GL_ARM_tensors_float_e4m3 is not defined #elif GL_ARM_tensors_float_e4m3 != 1 # error GL_ARM_tensors_float_e4m3 is not equal to 1 #endif layout(binding = 0) uniform tensorARM t; layout(set = 0, binding = 1) uniform tensorARM tb; void main() { bool b; bool barr[4]; int32_t i32; int32_t vec[2]; int32_t vecthree[3]; int32_t vecfour[4]; tensorReadARM(tb, uint[](0, 0), b); tensorReadARM(tb, uint[](0, 0), barr); tensorReadARM(t, uint[](0,0,0,0), i32, gl_TensorOperandsOutOfBoundsValueARM, 33); tensorReadARM(t, uint[](1,2,3,4), vec); tensorReadARM(t, uint[](3,2,1,0), vecthree); tensorReadARM(t, uint[](99,99,99,99), vecfour); tensorWriteARM(tb, uint[](0, 0), b); tensorWriteARM(tb, uint[](0, 0), barr); tensorWriteARM(t, uint[](4,3,2,1), i32); tensorWriteARM(t, uint[](0,0,0,0), vec, gl_TensorOperandsNonTemporalARM); }