In dxvk d3d8 is implemented through the d3d9 parts since they have alot of similarities and so can share a lot of the same code. Same goes for d3d10 which is implemented through d3d11 in dxvk.
Back in the d8vk times this was also the case, but for a time the d3d9 code was statically compiled in the d3d8 dll instead of dynamically linked via a external file. It might seem like a long time because there never was another stable release after 1.0, but bleeding edge code wise d8vk kept the two file separately through most of its life.
The reason for going back to dynamically linking again was that there were some games on Windows, when doing testing there, that didn't work properly with the statically linked d3d9 (I don't know the reason at hand). Since then it has just been kept as two files like it was originally.
iam using global windows method (chaging d3d8 in windows dir) it works fine with d8vk; but with dxvk it requires both the original d3d8 and d3d9 changed which is not a optimal.
It might not be optimal but for the most common use case of dxvk of using all or nothing it works fine.
would it be possible to compile dxvk d3d8 to be a single dll ?
chaging d3d8 in windows dir
That is a terrible idea. Just drop d3d8.dll and d3d9.dll in the folder where the exe of your game sits and it should work fine.
would it be possible to compile dxvk d3d8 to be a single dll ?
It's possible but we're not gonna offer builds that do that. Windows is not really a supported platform for DXVK anyways.
why does DXVK's d3d8 require d3d9 to function ? Why isn't it like d8vk ? It worked fine without d3d9.