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.
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/193#note_33230