enum SpirVConstants
{
SPIRV_MAGIC = 0x07230203,
- SPIRV_MAGIC_REVERSED = 0x03022307
+ SPIRV_MAGIC_REVERSED = 0x03022307,
+ SPIRV_GENERATOR_MSP = 29
};
enum SpirVOpcode
OP_IMAGE_SAMPLE_DREF_IMPLICIT_LOD = 89,
OP_IMAGE_SAMPLE_DREF_EXPLICIT_LOD = 89,
OP_IMAGE_FETCH = 95,
+ OP_IMAGE_READ = 98,
+ OP_IMAGE_WRITE = 99,
+ OP_IMAGE = 100,
OP_IMAGE_QUERY_SIZE_LOD = 103,
+ OP_IMAGE_QUERY_SIZE = 104,
+ OP_IMAGE_QUERY_LOD = 105,
+ OP_IMAGE_QUERY_LEVELS = 106,
+ OP_IMAGE_QUERY_SAMPLES = 107,
+ OP_CONVERT_F_TO_U = 109,
OP_CONVERT_F_TO_S = 110,
OP_CONVERT_S_TO_F = 111,
+ OP_CONVERT_U_TO_F = 112,
+ OP_BITCAST = 124,
OP_S_NEGATE = 126,
OP_F_NEGATE = 127,
OP_I_ADD = 128,
OP_F_SUB = 131,
OP_I_MUL = 132,
OP_F_MUL = 133,
+ OP_U_DIV = 134,
OP_S_DIV = 135,
OP_F_DIV = 136,
+ OP_U_MOD = 137,
OP_S_MOD = 139,
OP_F_MOD = 141,
OP_VECTOR_TIMES_SCALAR = 142,
OP_SELECT = 169,
OP_I_EQUAL = 170,
OP_I_NOT_EQUAL = 171,
+ OP_U_GREATER_THAN = 172,
OP_S_GREATER_THAN = 173,
+ OP_U_GREATER_THAN_EQUAL = 174,
OP_S_GREATER_THAN_EQUAL = 175,
+ OP_U_LESS_THAN = 176,
OP_S_LESS_THAN = 177,
+ OP_U_LESS_THAN_EQUAL = 178,
OP_S_LESS_THAN_EQUAL = 179,
OP_F_ORD_EQUAL = 180,
OP_F_ORD_NOT_EQUAL = 182,
OP_NOT = 200,
OP_BIT_FIELD_INSERT = 201,
OP_BIT_FIELD_S_EXTRACT = 202,
+ OP_BIT_FIELD_U_EXTRACT = 203,
OP_BIT_REVERSE = 204,
OP_BIT_COUNT = 205,
OP_DP_DX = 207,
{
CAP_SHADER = 1,
CAP_GEOMETRY = 2,
+ CAP_TESSELLATION = 3,
+ CAP_STORAGE_IMAGE_MULTISAMPLE = 27,
CAP_IMAGE_CUBE_ARRAY = 34,
CAP_SAMPLED_1D = 43,
CAP_IMAGE_1D = 44,
CAP_SAMPLED_CUBE_ARRAY = 45,
+ CAP_STORAGE_IMAGE_EXTENDED_FORMATS = 49,
+ CAP_IMAGE_QUERY = 50,
+ CAP_DERIVATIVE_CONTROL = 51,
CAP_INTERPOLATION_FUNCTION = 52
};
enum SpirVExecutionMode
{
+ EXEC_INVOCATIONS = 0,
+ EXEC_SPACING_EQUAL = 1,
+ EXEC_SPACING_FRACTIONAL_EVEN = 2,
+ EXEC_SPACING_FRACTIONAL_ODD = 3,
+ EXEC_VERTEX_ORDER_CW = 4,
+ EXEC_VERTEX_ORDER_CCW = 5,
+ EXEC_ORIGIN_UPPER_LEFT = 7,
EXEC_ORIGIN_LOWER_LEFT = 8,
+ EXEC_LOCAL_SIZE = 17,
EXEC_INPUT_POINTS = 19,
EXEC_INPUT_LINES = 20,
EXEC_INPUT_LINES_ADJACENCY = 21,
EXEC_TRIANGLES = 22,
EXEC_INPUT_TRIANGLES_ADJACENCY = 23,
+ EXEC_QUADS = 24,
+ EXEC_ISOLINES = 25,
EXEC_OUTPUT_VERTICES = 26,
EXEC_OUTPUT_POINTS = 27,
EXEC_OUTPUT_LINE_STRIP = 28,
STORAGE_UNIFORM = 2,
STORAGE_OUTPUT = 3,
STORAGE_PRIVATE = 6,
- STORAGE_FUNCTION = 7
+ STORAGE_FUNCTION = 7,
+ STORAGE_PUSH_CONSTANT = 9
};
enum SpirVDecoration
DECO_ARRAY_STRIDE = 6,
DECO_MATRIX_STRIDE = 7,
DECO_BUILTIN = 11,
+ DECO_FLAT = 14,
+ DECO_PATCH = 15,
+ DECO_CENTROID = 16,
DECO_LOCATION = 30,
DECO_BINDING = 33,
DECO_DESCRIPTOR_SET = 34,
BUILTIN_PRIMITIVE_ID = 7,
BUILTIN_INVOCATION_ID = 8,
BUILTIN_LAYER = 9,
+ BUILTIN_TESS_LEVEL_OUTER = 11,
+ BUILTIN_TESS_LEVEL_INNER = 12,
+ BUILTIN_TESS_COORD = 13,
+ BUILTIN_PATCH_VERTICES = 14,
BUILTIN_FRAG_COORD = 15,
BUILTIN_POINT_COORD = 16,
BUILTIN_FRONT_FACING = 17,
BUILTIN_SAMPLE_ID = 18,
BUILTIN_SAMPLE_POSITION = 19,
- BUILTIN_FRAG_DEPTH = 22
+ BUILTIN_FRAG_DEPTH = 22,
+ BUILTIN_NUM_WORKGROUPS = 24,
+ BUILTIN_WORKGROUP_SIZE = 25,
+ BUILTIN_WORKGROUP_ID = 26,
+ BUILTIN_LOCAL_INVOCATION_ID = 27,
+ BUILTIN_GLOBAL_INVOCATION_ID = 28,
+ BUILTIN_LOCAL_INVOCATION_INDEX = 29
+};
+
+enum SpirVFormat
+{
+ FORMAT_UNKNOWN = 0,
+ FORMAT_RGBA32F = 1,
+ FORMAT_RGBA16F = 2,
+ FORMAT_R32F = 3,
+ FORMAT_RGBA8 = 4,
+ FORMAT_RGBA8_SNORM = 5,
+ FORMAT_RG32F = 6,
+ FORMAT_RG16F = 7,
+ FORMAT_R16F = 9,
+ FORMAT_RGBA16 = 10,
+ FORMAT_RG16 = 12,
+ FORMAT_RG8 = 13,
+ FORMAT_R16 = 14,
+ FORMAT_R8 = 15,
+ FORMAT_RGBA16_SNORM = 16,
+ FORMAT_RG16_SNORM = 17,
+ FORMAT_RG8_SNORM = 18,
+ FORMAT_R16_SNORM = 19,
+ FORMAT_R8_SNORM = 20
};
enum SpirVGlslStd450Opcode
GLSL450_SQRT = 31,
GLSL450_INVERSE_SQRT = 32,
GLSL450_DETERMINANT = 33,
- GLSL450_MATRIX_INVERSE = 33,
+ GLSL450_MATRIX_INVERSE = 34,
GLSL450_F_MIN = 37,
+ GLSL450_U_MIN = 38,
GLSL450_S_MIN = 39,
GLSL450_F_MAX = 40,
+ GLSL450_U_MAX = 41,
GLSL450_S_MAX = 42,
GLSL450_F_CLAMP = 43,
+ GLSL450_U_CLAMP = 44,
GLSL450_S_CLAMP = 45,
GLSL450_F_MIX = 46,
GLSL450_F_STEP = 48,
GLSL450_REFRACT = 72,
GLSL450_FIND_I_LSB = 73,
GLSL450_FIND_S_MSB = 74,
+ GLSL450_FIND_U_MSB = 75,
GLSL450_INTERPOLATE_AT_CENTROID = 76,
GLSL450_INTERPOLATE_AT_SAMPLE = 77,
GLSL450_INTERPOLATE_AT_OFFSET = 78