+ unsigned elements,
+ unsigned explicit_stride);
+
+const struct glsl_type *glsl_struct_type(const struct glsl_struct_field *fields,
+ unsigned num_fields, const char *name,
+ bool packed);
+const struct glsl_type *glsl_interface_type(const struct glsl_struct_field *fields,
+ unsigned num_fields,
+ enum glsl_interface_packing packing,
+ bool row_major,
+ const char *block_name);
+const struct glsl_type *glsl_sampler_type(enum glsl_sampler_dim dim,
+ bool is_shadow, bool is_array,
+ enum glsl_base_type base_type);
+const struct glsl_type *glsl_bare_sampler_type();
+const struct glsl_type *glsl_image_type(enum glsl_sampler_dim dim,
+ bool is_array,
+ enum glsl_base_type base_type);
+const struct glsl_type * glsl_function_type(const struct glsl_type *return_type,
+ const struct glsl_function_param *params,
+ unsigned num_params);
+
+const struct glsl_type *glsl_transposed_type(const struct glsl_type *type);
+
+const struct glsl_type *glsl_channel_type(const struct glsl_type *type);
+
+const struct glsl_type *glsl_float16_type(const struct glsl_type *type);
+
+void glsl_get_natural_size_align_bytes(const struct glsl_type *type,
+ unsigned *size, unsigned *align);
+
+const struct glsl_type *glsl_atomic_uint_type(void);
+
+const struct glsl_type *glsl_get_explicit_type_for_size_align(const struct glsl_type *type,
+ glsl_type_size_align_func type_info,
+ unsigned *size, unsigned *align);
+
+unsigned glsl_type_get_sampler_count(const struct glsl_type *type);
+unsigned glsl_type_get_image_count(const struct glsl_type *type);
+
+bool glsl_type_is_leaf(const struct glsl_type *type);