Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl.y:
switch (constant->node.data_type->base_type)
{
case HLSL_TYPE_DOUBLE:
ret = value.d;
break;
case HLSL_TYPE_FLOAT:
ret = value.f;
break;
case HLSL_TYPE_INT:
ret = value.i;
break;
case HLSL_TYPE_UINT:
ret = value.u;
break;
default:
vkd3d_unreachable();
BOOL or HALF are possible, aren't they?