Path: blob/master/servers/rendering/renderer_rd/shaders/half_inc.glsl
10279 views
// Use of FP16 in Godot is done explicitly through the types half and hvec. // The extensions must be supported by the system to use this shader. // // If EXPLICIT_FP16 is not defined, all operations will use full precision // floats instead and all casting operations will not be performed. #ifndef HALF_INC_H #define HALF_INC_H #ifdef EXPLICIT_FP16 #extension GL_EXT_shader_explicit_arithmetic_types_float16 : require #extension GL_EXT_shader_16bit_storage : require #define HALF_FLT_MIN float16_t(6.10352e-5) #define HALF_FLT_MAX float16_t(65504.0) #define half float16_t #define hvec2 f16vec2 #define hvec3 f16vec3 #define hvec4 f16vec4 #define hmat2 f16mat2 #define hmat3 f16mat3 #define hmat4 f16mat4 #define saturateHalf(x) min(float16_t(x), HALF_FLT_MAX) #else #define HALF_FLT_MIN float(1.175494351e-38F) #define HALF_FLT_MAX float(3.402823466e+38F) #define half float #define hvec2 vec2 #define hvec3 vec3 #define hvec4 vec4 #define hmat2 mat2 #define hmat3 mat3 #define hmat4 mat4 #define saturateHalf(x) (x) #endif #endif // HALF_INC_H