Matteo Bruni (@Mystral) commented about dlls/d3dcompiler_43/compiler.c:
option->value = VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_COLUMN_MAJOR; }
+ option = &options[compile_info.option_count++]; + option->name = VKD3D_SHADER_COMPILE_OPTION_BACKWARD_COMPATIBILITY; + option->value = 0; +#if D3D_COMPILER_VERSION <= 35 + option->value |= VKD3D_SHADER_COMPILE_OPTION_DOUBLE_AS_FLOAT_ALIAS; +#endif
FWIW I see no compilation failure with d3dx9_24, d3dx9_36 or d3dx9_43 (or even with d3dcompiler_43, for that matter). I do see the expected error with d3dcompiler_47. That was with a ps_2_0 target and on 32-bit, in case it matters. I haven't tested it exhaustively yet, maybe it is in fact target-dependent and we want something more specific. Which brings me to: I think we want some tests for this [*]. I hacked something locally to look into it; I guess I should make a proper MR that you can then expand further if needed. I'll see what I can quickly come up with. Depending on the test results, it might be that this patch is generally right e.g. it's just a matter of updating the `#if` condition, in which case I'm okay with the patch in principle. [*] We currently don't have tests for d3dx9_xx with xx != 36 at all. Ideally we'd replicate the tests for all the DLL iterations e.g. with PARENTSRC like we do for d3dcompiler, but that opens a huge can of worms and especially now it doesn't seem to be the time, with code freeze coming very soon. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6925#note_89506