yum-mirror/glslang
git clone https://git.yummers.dev/yum-mirror/glslang
2d0f1968
main
1#version 450 2#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require 3#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require 4#extension GL_EXT_shader_explicit_arithmetic_types_int64 : require 5 6// Integer width conversions of specialization constants, with the source value 7// having its high bit set so that zero extension is distinguishable from sign 8// extension. 9 10layout(constant_id = 0) const uint su = 0x80000001u; 11layout(constant_id = 1) const uint16_t su16 = 0x8001us; 12layout(constant_id = 2) const uint64_t su64 = 0x8000000000000001ul; 13layout(constant_id = 3) const int si = -2; 14layout(constant_id = 4) const uint8_t su8 = uint8_t(0x81); 15 16const uint16_t u_to_u16 = uint16_t(su); 17const uint64_t u_to_u64 = uint64_t(su); 18const uint u16_to_u = uint(su16); 19const uint u64_to_u = uint(su64); 20const uint u8_to_u = uint(su8); 21const uint16_t i_to_u16 = uint16_t(si); 22const uint64_t i_to_u64 = uint64_t(si); 23 24layout(binding = 0) buffer S { 25 uint p_out[7]; 26}; 27 28void main() 29{ 30 p_out[0] = uint(u_to_u16); 31 p_out[1] = uint(u_to_u64); 32 p_out[2] = u16_to_u; 33 p_out[3] = u64_to_u; 34 p_out[4] = uint(i_to_u16); 35 p_out[5] = uint(i_to_u64); 36 p_out[6] = u8_to_u; 37}