| #version 450 core
|
|
|
| #extension GL_EXT_float_e2m1 : require
|
| #extension GL_EXT_float_e3m2 : require
|
| #extension GL_EXT_float_e2m3 : require
|
| #extension GL_EXT_float_ue8m0 : require
|
| #extension GL_EXT_float_mxint8 : require
|
| #extension GL_KHR_memory_scope_semantics : enable
|
| #extension GL_EXT_shader_explicit_arithmetic_types : enable
|
| #extension GL_EXT_scalar_block_layout : enable
|
| #extension GL_EXT_long_vector : enable
|
|
|
| layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; |
| |
| struct NestedSubByte { floate2m1_t value; }; |
| |
| layout(scalar) buffer B { |
| floate2m1_t b1; |
| floate3m2_t b2; |
| floate2m3_t b3; |
| NestedSubByte nested; |
| } buf; |
| |
| shared floate2m1_t s1; |
| shared floate3m2_t s2; |
| shared floate2m3_t s3; |
| shared NestedSubByte s4; |
|
|
| floate2m1_t funcfe2m1(floate2m1_t x)
|
| {
|
| return x;
|
| }
|
|
|
| void main() |
| { |
| float f = 2.0; |
| funcfe2m1(f); |
| |
| floatue8m0_t ue8m0 = 1.0fue8m0; |
| float implicitFloat = ue8m0; |
| double implicitDouble = ue8m0; |
| |
| floate2m1_t fe2m1 = floate2m1_t(f); |
| floate3m2_t fe3m2 = floate3m2_t(f);
|
| floate2m3_t fe2m3 = floate2m3_t(f);
|
| floatue8m0_t fue8m0 = floatue8m0_t(f);
|
| floatmxint8_t fmxint8 = floatmxint8_t(f);
|
| }
|