Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/hlsl.y:
+ "Wrong type for argument 0 of %s(): expected 'sampler', but got '%s'.", name, string->buffer); + hlsl_release_string_buffer(ctx, string); + return false; + } + + if (!(load_params.coords = add_implicit_conversion(ctx, instrs, params->args[1], + hlsl_get_vector_type(ctx, HLSL_TYPE_FLOAT, sampler_dim), loc))) + load_params.coords = params->args[1]; + + if (!(load_params.ddx = add_implicit_conversion(ctx, instrs, params->args[2], + hlsl_get_vector_type(ctx, HLSL_TYPE_FLOAT, sampler_dim), loc))) + load_params.ddx = params->args[2]; + + if (!(load_params.ddy = add_implicit_conversion(ctx, instrs, params->args[3], + hlsl_get_vector_type(ctx, HLSL_TYPE_FLOAT, sampler_dim), loc))) + load_params.ddy = params->args[3]; That doesn't look correct. According to the docs (which, incredibly, seem to make sense in this particular case) derivatives require a different number of components than `sampler_dim`: https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hls...
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/184#note_31498