Francisco Casas (@fcasas) commented about libs/vkd3d-shader/hlsl.c:
return VKD3D_ERROR_NOT_IMPLEMENTED; }
- if (!(entry_func = hlsl_get_func_decl(&ctx, entry_point))) + if ((func = hlsl_get_function(&ctx, entry_point))) + { + RB_FOR_EACH_ENTRY(decl, &func->overloads, struct hlsl_ir_function_decl, entry) + { + if (!decl->has_body) + continue; + entry_func = decl; + break; + }
Since, in case of multiple overloads with definitions, we are still selecting the one that comes first in the order given by `compare_function_decl_rb()` -- which depends on the parameter types -- but in !65 it was mentioned that in native it depends on the .dll version and the order in which the declarations appear, I would suggest displaying a `FIXME`: ```c RB_FOR_EACH_ENTRY(decl, &func->overloads, struct hlsl_ir_function_decl, entry) { if (!decl->has_body) continue; if (entry_func) { FIXME("Multiple valid entry point definitions.\n"); break; } entry_func = decl; } ``` -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/85#note_23596