misyltoad / d9vk

A Direct3D9 to Vulkan layer using the DXVK backend. [Upstreamed to DXVK]
https://github.com/doitsujin/dxvk
zlib License
838 stars 42 forks source link

Final Fantasy XI black screen #184

Open jtfen86 opened 5 years ago

jtfen86 commented 5 years ago

Launch game through PlayOnline Viewer -> black screen. Game doesn't crash and audio plays normally. I'm on Windows (10 Pro 1903) but that shouldn't matter right? I simply wanted to see if using Vulkan would make the game perform any better. FFXI is a D3D8 game so had to wrap up to D3D9 with Crosire's D3D8 to D3D9 dll file.

Software information

Name of the game, settings used etc. Final Fantasy XI

System information

Log files

pol_d3d9.log It made dxgi_log file but it's empty.

Squall-Leonhart commented 5 years ago

use DGVoodoo to wrap D3D8 to dx11 then use DXVK's dxgi.

Programmable Direct3D9 cannot fully replicate fixed function D3D8 feature set.

crossire method is doing 8 > 9 > 11 > VK DGVoodoo will be 8 > 11 > VK

K0bin commented 5 years ago

Programmable Direct3D9 cannot fully replicate fixed function D3D8 feature set.

D3D9 actually has most (if not all) of the D3D8 fixed function stuff and you sure can replicate D3D8 fixed func using shader model 3.

Squall-Leonhart commented 5 years ago

Thats incorrect.

misyltoad commented 5 years ago

Thats incorrect.

You are objectively wrong.

We don't translate to d3d11 either.

misyltoad commented 5 years ago

Re @BrosephJ and the issue.

May as well try it with d3d9-fixed-function branch, see if it works there.

Squall-Leonhart commented 5 years ago

kindly try simulating a 32bit wbuffer in d3d9

oh wait, you can't it was never available in the hardware so the spec didn't include it either.

there are many things like this that you can't do in d3d9 but can in d3d11

misyltoad commented 5 years ago

kindly try simulating a 32bit wbuffer in d3d9

oh wait, you can't it was never available in the hardware so the spec didn't include it either.

there are many things like this that you can't do in d3d9 but can in d3d11

Firstly, we were talking about the fixed function pipeline, not API features. But to kindly answer your statement:

D3D9 also has W buffer support if the card supports it. There is literally a cap for this too D3DPRASTERCAPS_WBUFFER, it was not a ubiquitous feature.

Either way, it shouldn't matter to the application if we lie and use a Z buffer anyway if it asks for a W buffer.

Squall-Leonhart commented 5 years ago

24bit W, yes. there is no 32bit cap presented unless you target DX8 at the most and have a driver presenting it.

and drivers did use such a trick and it didn't work well at all for the likes of NFS4, framerates were single digit.

misyltoad commented 5 years ago

No, that cap is for both -- ie w buffering at all.

And that's complete bullshit, wbuffering has nothing to do with performance.

Squall-Leonhart commented 5 years ago

Tell that to EA, the only thing removed between Geforce 4 and FX was the 32bit wbuffer, paletted textures weren't removed till Geforce 6

misyltoad commented 5 years ago

You do realise the Geforce 4 is 7 months younger than me?

Let me know when you're getting D9VK running on that thing.

I'm sure your performance metrics for not caring about W buffer will hold up so well on modern hardware.

Can you just admit you don't have a clue what the hell you're talking about @Squall-Leonhart?

Squall-Leonhart commented 5 years ago

Says the guy who can't wrap a borderless window resolution to the current desktop resolution then blames the application.

misyltoad commented 5 years ago

I assume you do not want me to fix your NV DSR issue?

Margen67 commented 5 years ago

@Squall-Leonhart Mind submitting a PR to fix it? :^)

misyltoad commented 5 years ago

Would be nice to get an API trace of this game to see if this works now Fixed Function has been implemented

misyltoad commented 5 years ago

fwiw, you'd need to use the D3D8on9 library and then chain D3D9 like so: D3D9 in the game bin folder, and override system D3D9 with D9VK

jtfen86 commented 5 years ago

No black screen but mouse cursor was invisible and I couldn't alt-tab from the game. pol_d3d9.log