Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl.y:
"UAV data type %s is not scalar, vector, or matrix.", string->buffer);}else if ($3->reg_size[HLSL_REGSET_NUMERIC] > 4){if (string)hlsl_error(ctx, &@3, VKD3D_SHADER_ERROR_HLSL_INVALID_TYPE,"UAV data type %s size exceeds 4-component register size.", string->buffer);}break;case HLSL_SAMPLER_DIM_STRUCTURED_BUFFER:if ($3->class > HLSL_CLASS_STRUCT){if (string)hlsl_error(ctx, &@3, VKD3D_SHADER_ERROR_HLSL_INVALID_TYPE,"UAV data type %s can't be used with structured buffers.", string->buffer);}
This also should have tests, and the greater-than comparison to HLSL_CLASS_STRUCT seems unclear (what's greater than STRUCT?) and also fragile.