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.