glsl_types: vec8/vec16 support

Not used in GL but 8 and 16 component vectors exist in OpenCL.

Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Rob Clark
2018-03-12 15:00:31 -04:00
parent f407edf340
commit 2f181c8c18
6 changed files with 23 additions and 10 deletions

View File

@@ -934,7 +934,6 @@ vtn_type_layout_std430(struct vtn_builder *b, struct vtn_type *type,
case vtn_base_type_vector: {
uint32_t comp_size = glsl_get_bit_size(type->type) / 8;
assert(type->length > 0 && type->length <= 4);
unsigned align_comps = type->length == 3 ? 4 : type->length;
*size_out = comp_size * type->length,
*align_out = comp_size * align_comps;
@@ -1047,7 +1046,7 @@ vtn_handle_type(struct vtn_builder *b, SpvOp opcode,
vtn_fail_if(base->base_type != vtn_base_type_scalar,
"Base type for OpTypeVector must be a scalar");
vtn_fail_if(elems < 2 || elems > 4,
vtn_fail_if((elems < 2 || elems > 4) && (elems != 8) && (elems != 16),
"Invalid component count for OpTypeVector");
val->type->base_type = vtn_base_type_vector;