tuffee88/d3d12ProxyEdrDx11_0

Black Screen

Opened this issue ยท 17 comments

After applying the fix I got past the WSOD and now when the game loads it just goes into a black screen but I can still hear sounds and even see/move the cursor around so the game is working but I cant see anything except for the cursor.
Any idea if I did something wrong or is this issue not related to the fix? Sorry to bother if its the latter.

I don't think this is related to this fix - you definitedly get past DX12 init when you can hear the menu sounds + cursor and this happens for other users with GPUs that meet the min. requirements for the game too.

Did you try all the popular fixes for this (Driver + Windows update, disable steam overlay, start game in windows mode, ecc )?
Which graphics card are you using ?

I did try updating drivers and disabling overlays, windowed mode and a bunch of other things.
My graphics card is a gtx550ti and I was able to play Dark Souls 3 without much of an issue even if it was at like 40 fps so I feel like it must be something with the PC port thats wrong.
Well sorry to have bothered you with this, you did a great job with the fix.

No worries :-)

This is interesting, you're using a Fermi card !

It could be that this is a severe rendering issue due to not supporting some of the stuff we claim to support, but which is actually supported by other cards (many features of newer DX12 feature levels are supported as "optional" for lower feature levels) - this is pure speculation though.

Can you please try to run this with vkd3d-proton ?

Alright I got some news.

I tried doing the vkd3d-proton thing but I'm getting some errors while building it, I posted an issue about it in HansKristian-Work/vkd3d-proton#1039 but havent gotten any replies yet.

While I was waiting for a reply on that site I kept searching for solutions and I came across a reddit post that mentioned dxcpl so I gave it a go and by enabling the Force WARP function on eldenring.exe I'm actually able to see the game now, the only issue is I get like 1 fps so its basically unplayable.

Any idea if the Force WARP function might be screwing with the performance?
Because if its not then it feels like a waste of time to try and run it with vkd3d-proton since I'll still get 1 fps.

Same thing with me, I have a gtx 550 ti and it's very curious because it shows the black screen and the game works perfectly, I tried using vkd3d-proton but it fails to create Vulkan 1.1 instance, if you have a way to adapt it to the fermi gpu it would be amazing!

WARP is the Microsoft DirectX12 Software renderer - the dxcpl trick with "Force WARP" should basically work for all games but, as this is always full software rendering on the CPU performance is abysmal :-(

Regarding vkd3d-proton: You can just extract the dll from the latest release provided (use PeaZip or 7zip-zstd) - https://github.com/HansKristian-Work/vkd3d-proton/releases/download/v2.6/vkd3d-proton-2.6.tar.zst

You won't need to build it yourself :-)

Ok I replaced d3d12_original.dll with the dll from the latest proton release and the game just crashes when I start it (almost as if it undid the WSOD fix).

Using the debugview tool I get this:
[5528] D3D12CreateDevice - LoadLibrary Result: 7ffbcad20000
[5528] D3D12CreateDevice - Proxy function called!
[5528] D3D12CreateDevice - Original function address queried
[5528] D3D12CreateDevice - CallResult: ffffffff80070057
[5528] D3D12CreateDevice - CallResult: ffffffff80070057

It is still giving a white screen using proton, I wanted to know how the d3d12.dll file was made, if there is a way for me to find a way to solve this bug that the game image does not appear even with the game running, it may even be a problem of driver because the gtx 550 ti only has support up to the 391.35 drive.

It is still giving a white screen using proton, I wanted to know how the d3d12.dll file was made, if there is a way for me to find a way to solve this bug that the game image does not appear even with the game running, it may even be a problem of driver because the gtx 550 ti only has support up to the 391.35 drive.

A lot of people that have much newer cards that are still being supported also have this black screen with cursor issue so I dont think the outdated driver is the problem here.
FromSoftware really did a poor job on this one.

Ok I replaced d3d12_original.dll with the dll from the latest proton release and the game just crashes when I start it (almost as if it undid the WSOD fix).

Using the debugview tool I get this: [5528] D3D12CreateDevice - LoadLibrary Result: 7ffbcad20000 [5528] D3D12CreateDevice - Proxy function called! [5528] D3D12CreateDevice - Original function address queried [5528] D3D12CreateDevice - CallResult: ffffffff80070057 [5528] D3D12CreateDevice - CallResult: ffffffff80070057

Thanks for testing, yes - it kinda did: You get a error code (80070057) when trying to create the D3D12 device. Looks like GTX 500 series can't use vkd3d-proton :-( . Can you check which Vulkan Version (+extensions) is supported on your card ?

If you want to know how this works I'd recommend to just check out the source code here on Github (it's basically one small very straightforward c++ file).

And yes, you can definitely debug the rendering and get to the bottom of why your screen is black while the game is running - I'd recommend to checkout some of the more popular DX12 rendering debug tools (Microsoft has PIX for example: https://devblogs.microsoft.com/pix/gpu-captures/ there is Nvidia's Nsight if your card is supported and various others) - but this is out of the scope of this project, sorry.

Thanks for testing, yes - it kinda did: You get a error code (80070057) when trying to create the D3D12 device. Looks like GTX 500 series can't use vkd3d-proton :-( . Can you check which Vulkan Version (+extensions) is supported on your card ?

I checked in https://vulkan.gpuinfo.org/listdevices.php and there is no Nvidia GTX550 listed so, I guess this means my card doesnt support Vulkan?

Looks like it, the earliest NVIDIA cards I could find with Vulkan >= 1.1 support seems to be the 600 series :-(

Well thanks a lot for all the help trying to figure out what the issue was, really appreciate the patience.

Hi ShulsX,

if you're willing to spend some more time investigating this issue - please try to use the newest release.

With this you should be able to either
a) Use ReShade to have a quick look if anything is rendered at all (f.e. just use a shader that shows wireframe view or depth visualisation and/or
b) Use Microsoft PIX on Windows (https://devblogs.microsoft.com/pix/) to take a GPU render capture and check for errors.

If you have a good clue what's not working we might have a shot at getting this to work after all (provided this is feasible without big efforts).

image
some frames is rendering i think bc i see this 25 fps and i have the same gpu as ShulsX

Did you fix it?