X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fspirvconstants.h;fp=source%2Fglsl%2Fspirvconstants.h;h=b981d191c0940d8f76fdcb3981907b891aab1be6;hb=cc5483cc709fdf7b6966a3e69dabfcafebaaffa0;hp=0000000000000000000000000000000000000000;hpb=577a93f39f9b4d0f5101cd2f539fc774e7b06825;p=libs%2Fgl.git diff --git a/source/glsl/spirvconstants.h b/source/glsl/spirvconstants.h new file mode 100644 index 00000000..b981d191 --- /dev/null +++ b/source/glsl/spirvconstants.h @@ -0,0 +1,275 @@ +#ifndef MSP_GL_SL_SPIRVCONSTANTS_H_ +#define MSP_GL_SL_SPIRVCONSTANTS_H_ + +namespace Msp { +namespace GL { +namespace SL { + +enum SpirVConstants +{ + SPIRV_MAGIC = 0x07230203, + SPIRV_MAGIC_REVERSED = 0x03022307 +}; + +enum SpirVOpcode +{ + OP_NOP = 1, + OP_NAME = 5, + OP_MEMBER_NAME = 6, + OP_EXT_INST_IMPORT = 11, + OP_EXT_INST = 12, + OP_MEMORY_MODEL = 14, + OP_ENTRY_POINT = 15, + OP_EXECUTION_MODE = 16, + OP_CAPABILITY = 17, + OP_TYPE_VOID = 19, + OP_TYPE_BOOL = 20, + OP_TYPE_INT = 21, + OP_TYPE_FLOAT = 22, + OP_TYPE_VECTOR = 23, + OP_TYPE_MATRIX = 24, + OP_TYPE_IMAGE = 25, + OP_TYPE_SAMPLED_IMAGE = 27, + OP_TYPE_ARRAY = 28, + OP_TYPE_RUNTIME_ARRAY = 29, + OP_TYPE_STRUCT = 30, + OP_TYPE_POINTER = 32, + OP_TYPE_FUNCTION = 33, + OP_CONSTANT_TRUE = 41, + OP_CONSTANT_FALSE = 42, + OP_CONSTANT = 43, + OP_CONSTANT_COMPOSITE = 44, + OP_SPEC_CONSTANT_TRUE = 48, + OP_SPEC_CONSTANT_FALSE = 49, + OP_SPEC_CONSTANT = 50, + OP_SPEC_CONSTANT_COMPOSITE = 51, + OP_SPEC_CONSTANT_OP = 52, + OP_FUNCTION = 54, + OP_FUNCTION_PARAMETER = 55, + OP_FUNCTION_END = 56, + OP_FUNCTION_CALL = 57, + OP_VARIABLE = 59, + OP_LOAD = 61, + OP_STORE = 62, + OP_ACCESS_CHAIN = 65, + OP_DECORATE = 71, + OP_MEMBER_DECORATE = 72, + OP_VECTOR_SHUFFLE = 79, + OP_COMPOSITE_CONSTRUCT = 80, + OP_COMPOSITE_EXTRACT = 81, + OP_TRANSPOSE = 84, + OP_IMAGE_SAMPLE_IMPLICIT_LOD = 87, + OP_IMAGE_SAMPLE_EXPLICIT_LOD = 88, + OP_IMAGE_SAMPLE_DREF_IMPLICIT_LOD = 89, + OP_IMAGE_SAMPLE_DREF_EXPLICIT_LOD = 89, + OP_IMAGE_FETCH = 95, + OP_IMAGE_QUERY_SIZE_LOD = 103, + OP_CONVERT_F_TO_S = 110, + OP_CONVERT_S_TO_F = 111, + OP_S_NEGATE = 126, + OP_F_NEGATE = 127, + OP_I_ADD = 128, + OP_F_ADD = 129, + OP_I_SUB = 130, + OP_F_SUB = 131, + OP_I_MUL = 132, + OP_F_MUL = 133, + OP_S_DIV = 135, + OP_F_DIV = 136, + OP_S_MOD = 139, + OP_F_MOD = 141, + OP_VECTOR_TIMES_SCALAR = 142, + OP_MATRIX_TIMES_SCALAR = 143, + OP_VECTOR_TIMES_MATRIX = 144, + OP_MATRIX_TIMES_VECTOR = 145, + OP_MATRIX_TIMES_MATRIX = 146, + OP_OUTER_PRODUCT = 147, + OP_DOT = 148, + OP_ANY = 154, + OP_ALL = 155, + OP_IS_NAN = 156, + OP_IS_INF = 157, + OP_LOGICAL_EQUAL = 164, + OP_LOGICAL_NOT_EQUAL = 165, + OP_LOGICAL_OR = 166, + OP_LOGICAL_AND = 167, + OP_LOGICAL_NOT = 168, + OP_SELECT = 169, + OP_I_EQUAL = 170, + OP_I_NOT_EQUAL = 171, + OP_S_GREATER_THAN = 173, + OP_S_GREATER_THAN_EQUAL = 175, + OP_S_LESS_THAN = 177, + OP_S_LESS_THAN_EQUAL = 179, + OP_F_ORD_EQUAL = 180, + OP_F_ORD_NOT_EQUAL = 182, + OP_F_ORD_LESS_THAN = 184, + OP_F_ORD_GREATER_THAN = 186, + OP_F_ORD_LESS_THAN_EQUAL = 188, + OP_F_ORD_GREATER_THAN_EQUAL = 190, + OP_SHIFT_RIGHT_ARITHMETIC = 195, + OP_SHIFT_LEFT_LOGICAL = 196, + OP_BITWISE_OR = 197, + OP_BITWISE_XOR = 198, + OP_BITWISE_AND = 199, + OP_NOT = 200, + OP_BIT_FIELD_INSERT = 201, + OP_BIT_FIELD_S_EXTRACT = 202, + OP_BIT_REVERSE = 204, + OP_BIT_COUNT = 205, + OP_DP_DX = 207, + OP_DP_DY = 208, + OP_FWIDTH = 209, + OP_DP_DX_FINE = 210, + OP_DP_DY_FINE = 211, + OP_FWIDTH_FINE = 212, + OP_DP_DX_COARSE = 213, + OP_DP_DY_COARSE = 214, + OP_FWIDTH_COARSE = 215, + OP_EMIT_VERTEX = 218, + OP_END_PRIMITIVE = 219, + OP_PHI = 245, + OP_LOOP_MERGE = 246, + OP_SELECTION_MERGE = 247, + OP_LABEL = 248, + OP_BRANCH = 249, + OP_BRANCH_CONDITIONAL = 250, + OP_KILL = 252, + OP_RETURN = 253, + OP_RETURN_VALUE = 254, + OP_UNREACHABLE = 255 +}; + +enum SpirVCapability +{ + CAP_SHADER = 1, + CAP_GEOMETRY = 2, + CAP_IMAGE_CUBE_ARRAY = 34, + CAP_SAMPLED_1D = 43, + CAP_IMAGE_1D = 44, + CAP_SAMPLED_CUBE_ARRAY = 45, + CAP_INTERPOLATION_FUNCTION = 52 +}; + +enum SpirVExecutionMode +{ + EXEC_ORIGIN_LOWER_LEFT = 8, + EXEC_INPUT_POINTS = 19, + EXEC_INPUT_LINES = 20, + EXEC_INPUT_LINES_ADJACENCY = 21, + EXEC_TRIANGLES = 22, + EXEC_INPUT_TRIANGLES_ADJACENCY = 23, + EXEC_OUTPUT_VERTICES = 26, + EXEC_OUTPUT_POINTS = 27, + EXEC_OUTPUT_LINE_STRIP = 28, + EXEC_OUTPUT_TRIANGLE_STRIP = 29 +}; + +enum SpirVStorageClass +{ + STORAGE_UNIFORM_CONSTANT = 0, + STORAGE_INPUT = 1, + STORAGE_UNIFORM = 2, + STORAGE_OUTPUT = 3, + STORAGE_PRIVATE = 6, + STORAGE_FUNCTION = 7 +}; + +enum SpirVDecoration +{ + DECO_SPEC_ID = 1, + DECO_BLOCK = 2, + DECO_ROW_MAJOR = 4, + DECO_COL_MAJOR = 5, + DECO_ARRAY_STRIDE = 6, + DECO_MATRIX_STRIDE = 7, + DECO_BUILTIN = 11, + DECO_LOCATION = 30, + DECO_BINDING = 33, + DECO_DESCRIPTOR_SET = 34, + DECO_OFFSET = 35 +}; + +enum SpirVBuiltin +{ + BUILTIN_POSITION = 0, + BUILTIN_POINT_SIZE = 1, + BUILTIN_CLIP_DISTANCE = 3, + BUILTIN_VERTEX_ID = 5, + BUILTIN_INSTANCE_ID = 6, + BUILTIN_PRIMITIVE_ID = 7, + BUILTIN_INVOCATION_ID = 8, + BUILTIN_LAYER = 9, + BUILTIN_FRAG_COORD = 15, + BUILTIN_POINT_COORD = 16, + BUILTIN_FRONT_FACING = 17, + BUILTIN_SAMPLE_ID = 18, + BUILTIN_SAMPLE_POSITION = 19, + BUILTIN_FRAG_DEPTH = 22 +}; + +enum SpirVGlslStd450Opcode +{ + GLSL450_ROUND = 1, + GLSL450_ROUND_EVEN = 2, + GLSL450_TRUNC = 3, + GLSL450_F_ABS = 4, + GLSL450_S_ABS = 5, + GLSL450_F_SIGN = 6, + GLSL450_S_SIGN = 7, + GLSL450_FLOOR = 8, + GLSL450_CEIL = 9, + GLSL450_FRACT = 10, + GLSL450_RADIANS = 11, + GLSL450_DEGREES = 12, + GLSL450_SIN = 13, + GLSL450_COS = 14, + GLSL450_TAN = 15, + GLSL450_ASIN = 16, + GLSL450_ACOS = 17, + GLSL450_ATAN = 18, + GLSL450_SINH = 19, + GLSL450_COSH = 20, + GLSL450_TANH = 21, + GLSL450_ASINH = 22, + GLSL450_ACOSH = 23, + GLSL450_ATANH = 24, + GLSL450_ATAN2 = 25, + GLSL450_POW = 26, + GLSL450_EXP = 27, + GLSL450_LOG = 28, + GLSL450_EXP2 = 29, + GLSL450_LOG2 = 30, + GLSL450_SQRT = 31, + GLSL450_INVERSE_SQRT = 32, + GLSL450_DETERMINANT = 33, + GLSL450_MATRIX_INVERSE = 33, + GLSL450_F_MIN = 37, + GLSL450_S_MIN = 39, + GLSL450_F_MAX = 40, + GLSL450_S_MAX = 42, + GLSL450_F_CLAMP = 43, + GLSL450_S_CLAMP = 45, + GLSL450_F_MIX = 46, + GLSL450_F_STEP = 48, + GLSL450_F_SMOOTH_STEP = 49, + GLSL450_F_FMA = 50, + GLSL450_LENGTH = 66, + GLSL450_DISTANCE = 67, + GLSL450_CROSS = 68, + GLSL450_NORMALIZE = 69, + GLSL450_FACE_FORWARD = 70, + GLSL450_REFLECT = 71, + GLSL450_REFRACT = 72, + GLSL450_FIND_I_LSB = 73, + GLSL450_FIND_S_MSB = 74, + GLSL450_INTERPOLATE_AT_CENTROID = 76, + GLSL450_INTERPOLATE_AT_SAMPLE = 77, + GLSL450_INTERPOLATE_AT_OFFSET = 78 +}; + +} // namespace SL +} // namespace GL +} // namespace Msp + +#endif