My most pressing objective here is to unblock further d3dx* work, in particular for features already implemented for other d3dx* versions. Duplicating tons of code still seems very wrong to me. PARENTSRC between different d3dx* versions should be okay for the time being[*]. Maybe "forever" as well, if we figure out that we want to stop there and not create a separate DLL, or move the implementation to vkd3d, after all. Either way, it seems to me that it would be best evaluated once we start to try and fit the different APIs from d3dx9, 10 and 11 into a mostly shared codebase.
Are we thinking about any part of d3dx in particular? We may want to do different things for different functionality. The maths functions like e.g. D3DXMatrixRotationX() would be very straightforward to add to a new "vkd3d-maths" library, and would also be some of the most generally useful functionality; beyond d3dx we'd be able to use something like that in wined3d, d2d1, possibly gdiplus, vkd3d-gears, and vkmodelviewer just from the top of my head. The texture/surface functions may be a fair bit harder, but no less useful, IMO. I think there's a bit of a lack of free, maintained, straightforward, Linux libraries for loading/handling e.g. DDS textures.