Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl.y:
%empty{$$ = NULL;}- | var_identifier
+pass_list:
%empty+/* Exact name matching only happens for effect profiles and only for keywords specific to particular profile.
- Other profiles allow insensitive matching. */
+technique9:
KW_TECHNIQUE technique_name '{' pass_list '}'{if (!hlsl_validate_technique_token(ctx, $1))hlsl_error(ctx, &@1, VKD3D_SHADER_ERROR_HLSL_NOT_DEFINED, "Identifier \"%s\" is not defined.", $1);
We can factor the hlsl_error() into hlsl_validate_technique_token().
Also, I know this is close to the error that native gives, but it's completely misleading and doesn't reflect the actual condition. We should do better.