Francisco Casas (@fcasas) commented about libs/vkd3d-shader/hlsl.y:
"UAV type %s is not numeric.", string->buffer); }
switch ($1)
{
case HLSL_SAMPLER_DIM_BUFFER:
case HLSL_SAMPLER_DIM_1D:
case HLSL_SAMPLER_DIM_2D:
case HLSL_SAMPLER_DIM_3D:
if ($3->class == HLSL_CLASS_ARRAY)
{
if (string)
hlsl_error(ctx, &@3, VKD3D_SHADER_ERROR_HLSL_INVALID_TYPE,
"This type of UAV does not support array type.");
}
else if (hlsl_type_component_count($3) > 4)
I suspect this should be the reg_size of HLSL_REGSET_NUMERIC instead, since types with <=4 components but with more than 4 32-bit components, such as `RWBuffer<double3>`, are not allowed.