Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

d3d10 error (World of Warcraft) #14

Closed
Raffarti opened this issue Jan 20, 2018 · 17 comments
Closed

d3d10 error (World of Warcraft) #14

Raffarti opened this issue Jan 20, 2018 · 17 comments

Comments

@Raffarti
Copy link
Contributor

err: DxgiAdapter::CheckInterfaceSupport: No D3D10 support
Is this to be expected?

$ cat dxgi.log 
info:  Enabled instance layers:
info:  Enabled instance extensions:
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
warn:  DxgiAdapter: DXGI_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
err:   DxgiAdapter::CheckInterfaceSupport: No D3D10 support
info:  Enabled instance layers:
info:  Enabled instance extensions:
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
warn:  DxgiAdapter: DXGI_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
err:   DxgiAdapter::CheckInterfaceSupport: No D3D10 support
info:  Enabled instance layers:
info:  Enabled instance extensions:
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
warn:  DxgiAdapter: DXGI_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
err:   DxgiAdapter::CheckInterfaceSupport: No D3D10 support
@doitsujin
Copy link
Owner

Yes, there is no D3D10 support at the moment and it's not something I'm going to work on any time soon. Out of curiosity, which application were you testing?

@Raffarti
Copy link
Contributor Author

Though so.
The game is World of Warcraft.
If you're interested I can provide logs for there too (all free to play, git RADV):

  • Heroes of the Storm (only 2d elements visible, 3d view is black)
  • Hearthstone (black screen)
  • Battlerite (black screen, then system freeze)

Unigine Valley works good at maybe 2/3 of native linux performance (not tested accurately).

@kiljacken
Copy link

kiljacken commented Jan 22, 2018

Attaching and apitrace of starting WoW. The game should be using d3d11, but they seemingly do something weird in startup.
wow64.zip
EDIT: It should be noted that the trace ends after the first frame, but the game continue to launch and display, not sure if there's a trick to capturing more.
EDIT 2: Combining with the logging info above, I'd assume the game creates and destroys several D3D instances, not quite sure why. Maybe to make injection of external graphics more difficult?

@SveSop
Copy link
Contributor

SveSop commented Jan 23, 2018

Interesting.

I am eventually hoping to get WoW to run with DXVK for more performance than the current D3D11 atm..

I do wonder tho... When i game is DX11, it might not be "pure" DX11, and doing some calls to DX10 functions (and possibly even DX9). In WoW's case, the game engine is a old engine with new functions on top of old functions.. on top of even older functions.

I am no programmer, but i kinda think that if i create a 3D program, it can utilize DX"current version and older"? Its only if i put in some new DX function that i really can say it "requires DX11" in that case, but still keep the DX9 code for other stuff.. ie. i can use DX9 calls to put up text-boxes, DX10 to create some trees, and DX11 to create the shaders... all in one program. Or am i totally wrong in my assumptions? (Cos that WOULD explain problems in general with things like WoW)

Just to make sure tho, you "force" DX11 with the option wow-64.exe -d3d11 right?

I am planning on doing some tests to this myself, so keep this going :)

@kiljacken
Copy link

I am indeed forcing with -d3d11, but yeah, it would not surprise me if they're mixing APIs, given the general quality of the WoW engine (man is it a CPU hog).

@SveSop
Copy link
Contributor

SveSop commented Jan 23, 2018

SSAO (Ambient Occlusion) uses DX11.. outline of models when you hover the mouse over them uses some DX11 functions.. Particles i guess.. some shading.

However, i think much of the "old world" still uses DX9 functions, as the models/textures++ is "old". Still might be drawn in DX11, but i would not at all be surprised if Blizzard has cut quite a few corners with their programming.

@Raffarti Raffarti changed the title d3d10 error d3d10 error (World of Warcraft) Jan 26, 2018
@Thaodan
Copy link

Thaodan commented Jan 26, 2018

However, i think much of the "old world" still uses DX9 functions, as the models/textures++ is "old". Still might be drawn in DX11, but i would not at all be surprised if Blizzard has cut quite a few corners with their programming.

Lets see what the next version brings, it looks like the remove old code this time.

Warning: Your current graphics API will not be supported in future versions of World of Warcraft, which will require DirectX 11 or Metal.
Warning: Your current system will not be supported in future versions of World of Warcraft which will require a 64-bit operating system.
Warning: Your graphics card will not be supported in future versions of World of Warcraft, which will require a Shader Model 5 capable graphics card or better.

@Thaodan
Copy link

Thaodan commented Jan 26, 2018

Attaching and apitrace of starting WoW. The game should be using d3d11, but they seemingly do something weird in startup.
wow64.zip
EDIT: It should be noted that the trace ends after the first frame, but the game continue to launch and display, not sure if there's a trick to capturing more.
EDIT 2: Combining with the logging info above, I'd assume the game creates and destroys several D3D instances, not quite sure why. Maybe to make injection of external graphics more difficult?

Maybe this is because of Windows?
My apitrace on the pc of my girlfriend was simpler:https://www.dropbox.com/s/wsvpfvidl0u92cm/Wow-64.trace?dl=0

@doitsujin doitsujin added the d3d10 label Feb 5, 2018
@TRPB
Copy link

TRPB commented Feb 21, 2018

How much difference would DXVK make to a game like WoW? I get about 30% GPU utilization so it's CPU limited. Does DXVK have a lower CPU overhead than wine's DX11 implementation? If it's just more efficient for the GPU I don't think it will make any difference, will it?

@kiljacken
Copy link

kiljacken commented Feb 22, 2018

@TomBZombie The whole idea of DXVK is to make use of a lower level API as to reduce/eliminate the overhead in running DX11 on top of OpenGL. So it should especially prove useful in games like WoW where the framerate is already severly CPU limited :)

@SveSop
Copy link
Contributor

SveSop commented Feb 22, 2018

@TomBZombie
Hard to say. Loads of the problems WoW have - atleast imo - is that it seems to be using a multitude of old-engine-code with bits and pieces of dx9/10/11 functions, and it will be fun to experiment with that once wine-devel can run blizzard games i guess :)

You can test with wine-staging, but the problem is as was posted at start of thread, that wow is not a "pure" dx11 code it seems, and will have problems.

To the question: Since DX11 in windows have quite more fps than wine w/dx11 now, dx11 -> Vulkan would improve the rendering a lot and hopefully match that of windows. Still would not be "night & day" comparably when it comes to fps, as much of the fps limitation is not local hardware, but more the "talking back and forth to servers" that all MMO's do :)

@isugimpy
Copy link

isugimpy commented May 8, 2018

This issue appears to have been resolved by recent commits, if you have DXVK_FAKE_DX10_SUPPORT=1 set. However, there's still an issue here. On both live and beta, on launch of the game I'll either get a black screen and nothing else, or graphics will start to load (may get the title screen, may not, but the HUD renders for a couple frames) and then freeze entirely. Nothing obvious at all in the logs with debug enabled. I have found that on beta (not on live, sadly), if I set DXVK_FAKE_DX10_SUPPORT=0 and attempt to launch the game, it indicates that my graphics hardware has changed and prompts me to reset to defaults, then fails to launch as expected. If I then set it back to 1, it prompts me again, and on clicking yes the game launches and runs perfectly. If I exit and start it again, it's back to the previous behavior with the black screen/freeze. If logs might be helpful, I could upload them, but I'm only using the standard logging with the debug level and saw no errors of any kind. Also, if you'd prefer this be opened as a separate issue, I'm more than willing to do that. Don't want to hijack something that might be ready to close.
WINE: 3.7-pba
dxvk: 0.50-1 from AUR
NVIDIA drivers: 396.24

@doitsujin
Copy link
Owner

doitsujin commented May 8, 2018

@isugimpy some people actually got the game to work recently, see #343 - maybe ask there.

@isugimpy
Copy link

isugimpy commented May 8, 2018

I saw that issue, but didn't want to interfere with it because it was specifically a radv issue with graphics corruption, instead of a hang/crash behavior. I can jump over there though if you want.

@Kerrung
Copy link

Kerrung commented May 8, 2018

@isugimpy, you need install both x64 and x32 versions of DXVK to WoW work fine.
And you don't need to use OpenGL based PBA if you using Vulkan based DXVK.

@isugimpy
Copy link

isugimpy commented May 8, 2018

Oh, I know I don't need PBA. I just already had it installed as my system version of WINE and kept using it. I realize the extra patches aren't in use once DXVK takes over.

@doitsujin
Copy link
Owner

Given that the beta version seems to work, I'll close this one.

K0bin pushed a commit to K0bin/dxvk that referenced this issue Dec 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants