spirv: add support for loading DF constants

v2 (Jason):
- Add assert.

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Samuel Iglesias Gonsálvez
2016-11-21 16:30:47 +01:00
parent 9602c7c02f
commit d77ffc3d87

View File

@@ -1003,10 +1003,18 @@ vtn_handle_constant(struct vtn_builder *b, SpvOp opcode,
break;
}
case SpvOpConstant:
case SpvOpConstant: {
assert(glsl_type_is_scalar(val->const_type));
val->constant->values[0].u32[0] = w[3];
int bit_size = glsl_get_bit_size(val->const_type);
if (bit_size == 64) {
val->constant->values->u32[0] = w[3];
val->constant->values->u32[1] = w[4];
} else {
assert(bit_size == 32);
val->constant->values->u32[0] = w[3];
}
break;
}
case SpvOpSpecConstant:
assert(glsl_type_is_scalar(val->const_type));
val->constant->values[0].u32[0] = get_specialization(b, val, w[3]);