Closed jmis closed 6 years ago
That's a general bug in the swapchain code, it should check whether the image format can be used for storage images at all before creating the back buffer. Will fix that.
Don't get your hopes up though, that bug doesn't have any impact on any game on any hardware.
i can play poe with dxvk already. I am on an gtx 970 with wine-staging 3.3 +wic patch with vulkan.dll's from wine-staging 2.25 and d3dcompiler_43 + d3dcompiler_47 set native. Not sure if that helps you ?
what is wic patch?
the one you posted https://bugs.winehq.org/show_bug.cgi?id=42695.
@Glog78 What driver are you using?
https://i.imgur.com/bgu4KRC.jpg / here a screenshot Driver: 390.25.0
@Glog78 Did you ever encounter a "TextureD3d11.cpp" application error when loading into the city?
Not as extra message on the screen. But i can try a new character if it helps and play to the first city. Maybe its the first portal or something like this.
@jmis on my end even with a new character i can get into the first city and no problems so far
I'm guessing the error is related to wine 3.3. Maybe I can figure something out from looking at the staging patches.
the last commit 5b9e4c1faa41494d83a878fe621ee16f11bce2ab broke it for me too.
Update old version doesn't work for me either now. I dunno what changed since yesterday. This is really strange.
Update: the last git works again for me. I hope @jmis you figure out what isn't working for you. The DX11 code seems to be much more responsive than the older dx9 or dx9ex renderer. So thank you for dxvk.
@Glog78 You have a strange wine setup for DXVK. I'm using wine-vulkan 3.3 and the latest DXVK. Wine-staging lets me load the game using DX11 to OpenGL but it lacks the vulkan interface so DXVK fails. Some patch in wine-staging is fixing the issue. I have an email out to GGG support asking for more information about the error. Hopefully that will help figure it out.
The validation errors should be fixed in 56c826be85f107ce0c08cae2309ac669a556c0b9, please let me know if that is the case.
@jmis i have both setups. wine-vulkan 3.3 with lunar sdk and so on. But the sdk is blowing the size of the wineprefix. So i did compile wine-staging-git and added into the system32 and syswow64 folders the precompiled vulkan dlls from wine-staging 2.25. Both prefixes works with DXVK but i prefer the much smaller second on and this is the prefix i tested path of exile before and it works for me. Tomorow i will also test the new commits.
@doitsujin i tested the 06cff50453abcda2cadd0e485e6e4327704889c3
DXVK_SHADER_VALIDATE=1 DXVK_DEBUG_LAYERS=1 DXVK_LOG_LEVEL=trace DXVK_HUD=1 wine ./PathOfExile_x64.exe
....
IMAGE(ERROR / SPEC): object: 0x0 type: 0 msgNum: 165676926 - vkCreateImage: Image mip levels exceed image format maxMipLevels for format VK_FORMAT_R8G8_UNORM. The spec valid usage text states 'mipLevels must be less than or equal to VkImageFormatProperties::maxMipLevels (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-extent-00959) IMAGE(ERROR): object: 0x0 type: 0 location: 769 msg_code: 165676926: Object: 0x0 | vkCreateImage: Image mip levels exceed image format maxMipLevels for format VK_FORMAT_R8G8_UNORM. The spec valid usage text states 'mipLevels must be less than or equal to VkImageFormatProperties::maxMipLevels (as returned by vkGetPhysicalDeviceImageFormatProperties with format, imageType, tiling, usage, and flags equal to those in this structure)' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-extent-00959) err: DxvkImage::DxvkImage: Failed to create image ...
There are also shaders with unknown vertex semantic: debug: D3D11Device: No such vertex shader semantic: TANGENT0 debug: Compiling shader VS_74bda68a39ac4fb17be9fc18f861ab7a0db3003e debug: D3D11Device: No such vertex shader semantic: TANGENT0 debug: D3D11Device: No such vertex shader semantic: TEXCOORD0 debug: D3D11Device: No such vertex shader semantic: TANGENT0 debug: D3D11Device: No such vertex shader semantic: TEXCOORD0 debug: D3D11Device: No such vertex shader semantic: TANGENT0 debug: D3D11Device: No such vertex shader semantic: TANGENT0 debug: D3D11Device: No such vertex shader semantic: TEXCOORD0 debug: D3D11Device: No such vertex shader semantic: TANGENT0 debug: D3D11Device: No such vertex shader semantic: TEXCOORD0 debug: D3D11Device: No such vertex shader semantic: TANGENT0 debug: D3D11Device: No such vertex shader semantic: TEXCOORD0 debug: D3D11Device: No such vertex shader semantic: TANGENT0
I hope this helps
I'd need an apitrace to debug the validation issue. Although it's extremely weird that the number of mip levels appears to be limited for a given format.
There are also shaders with unknown vertex semantic:
Not a bug.
@doitsujin do you need one from inside of wine or is it enough to give you one from linux with wine on top ?
inside wine or windows, because only then apitrace can capture the D3D commands. Running the Linux version of apitrace with wine only records OpenGL commands, which is completely useless in this case.
cleaned all shader caches and started with:
DXVK_SHADER_VALIDATE=1 DXVK_DEBUG_LAYERS=1 DXVK_LOG_LEVEL=trace DXVK_HUD=1 wine ./apitrace/bin/apitrace.exe trace -a dxgi PathOfExile_x64.exe
in wine-vulkan (git)
disabling image mapping e6814332e741ac7222fe1c372fda7aed86ce657b fixes it for me again
@Glog78 Did you have any luck when trying wine-vulkan 3.3 + latest DXVK?
@jmis no wine-vulkan (git) doesn't work for me.
if you are on arch i can provide you my PKGBUILDS and the files i dropped into wine-staging (git).
Did some testing
Using wine-vulkan-git with the WIC patch applied I also get the TextureD3d11.cpp game crash window popup when initially loading into the city, login screen works normally.
DXVK_SHADER_VALIDATE=1 DXVK_DEBUG_LAYERS=1 DXVK_LOG_LEVEL=trace DXVK_HUD=1 WINEARCH=win64 WINEPREFIX=~/.wine_vms/PoE wine 'C:\Games\Path of Exile\PathOfExile_x64.exe'
logs:
[same run]
d3d11 log: https://pastebin.com/raw/qD85JwUM
dxgi log: https://pastebin.com/raw/JL8ZxuYM
[different runs, same crash] wine output: https://pastebin.com/raw/3pCU8qgx apitrace: https://mega.nz/#!HYh1jIKI!jpwlFPLcOaZkOjEobSETtHf0XDWZXT-uMCi3IxlkyEg
Using DXVK .dll compiled with the above setup it works pretty well, even with dynamic resolution although it stays on low quality for most of the time and doesn't improve performance that much. Loading screens seem to be a bit longer than DX11 and there is very annoying stutter/framedrops
[SAME ENVIRONMENT VARS] .../installdir/PathOfExile_x64.exe --nointro --nologo --noasync
logs (longer since I played for a bit):
d3d11 log: https://pastebin.com/raw/4QUjmDAz
dxgi log: https://pastebin.com/raw/HttaQTTH
Does anyone know if the installdir/CachedHLSLShaders or installdir/ShaderCacheD3D11 can mess with DXVK?
Path of Exile works on wine staging 3.3 + AMD + mesa git with both image tiling and without. Maybe an issue with Nvidia driver? Or Wine and Nvidia combination.
for me ->
works: without tiling -> wine staging git + wine staging 2.21 vulkan dlls + wic patch (CoInitialize Patch) + nvidia
doesn't work: with tiling -> wine staging 3.3 + wine staging 2.21 vulkan dlls + wic patch (CoInitialize Patch) + nvidia -> the old version had vkCreateImage Errors with and without tiling -> wine vulkan git + wic patch (CoInitialize Patch) + nvidia -> TextureD3d11.cpp
can't test because i don't have this wine setup -> wine staging git + wine vulkan patches ....
One more information. I updated today wine-staging (git) and since today i get the TextureD3d11.cpp error with wine-staging too. So it might actually be a commit in wine which creates this error.
@Glog78 I was getting the same TextureD3d11.cpp error with wine-staging-git. Overwatch also has a weird render issue with current wine-staging-git. Rolling back wine-staging to this hash e8d98eb7ba2e7aaf610196b67c713f2be13a15ff (and wine mainline hash dfde1195385df5ddb11f1104a0e744596b99477f) fixes the problem. You still need the CoInitialize Patch to launch the game.
Attempted to run this with https://aur.archlinux.org/packages/wine-staging-vulkan-git/ and https://aur.archlinux.org/packages/dxvk-git/ following the guide from @dumpsters above.
I get the following error:
err: ExtensionSet::addInstanceExtensions: Failed to query instance extensions
wine: Unhandled page fault on read access to 0x00000000 at address 0x1404f622e (thread 002e), starting debugger...
Unhandled exception: page fault on read access to 0x00000000 in 64-bit code (0x00000001404f622e).
Computer: Ryzen 5 1600 16 GB Ram 2GB RX560 Running amdgpu Driver Up-to-date Manjaro with kernel 4.15.8
Any ideas what I did wrong?
Full run log attached (note I don't have any WINEDEBUG explicity set) dxvk_poe.txt
Ok, I figured out what I did wrong. I input the registry keys wrong. Once I corrected them with the attached file I was able to get into game. However my Performance was really bad with the HUD up I was getting ~1-5FPS. Also was not able to get into the Town as I had the same error as others: TextureD3d11.cpp
@xethm55 read my reply. it tells you why the Textured3d.cpp error is happening. it's not dxvk related.
I rebuilt https://aur.archlinux.org/packages/wine-staging-vulkan-git/ with pinning wine-vulkan and wine-staging the the above mentioned versions. When I attempt to run with them I just get an error that VK_KHR_surface cannot be found.
The VulkanSDK test Cube.exe only runs normally after commit 32eef26a7dbbd755d20494454e3b657c48ba1bc1
@xethm55 looks like its fixed as of 3.4 staging (rebased a few minutes ago) https://github.com/wine-staging/wine-staging/tree/v3.4
Fixed as well for me with wine-staging 3.4 + latest DVXK.
I wish we knew the root cause though.
I managed to load into town as well with wine-staging 3.4 but performance is abysmal, like 1~8FPS. Performance in the login screen is worse than before as well
Performance is about 30%-100% better than WineDX11 on low end AMD with wine-staging 3.4 + old DXVK with image tiling. Getting about 40-120 in various areas in Act 1, with average of 60+ on all low settings 1080p. There is however lots of initial stuttering, somewhat more than on DX11, due to shader compilation. Using code from Lutris.
DXVK_HUD=1 WINEDEBUG=-all mesa_glthread=true wine64 "/homedir/.wine/drive_c/Program Files (x86)/Grinding Gear Games/Path of Exile/PathOfExile_x64.exe" --waitforpreload --nologo --gc2
Can anyone please test this with the direct-image-mapping
branch?
doitsujin direct-image-mapping branch now works for me too.
https://i.imgur.com/Q9VK7jn.jpg
Great work.
Oh yeah this is wine-staging 3.4 + sdk + dxvk + the patch needed for poe (coinitialize)
With wine-staging 3.4 I am able to get into the game and performance seems better than Directx9, but I am missing a lot of textures. This is on master with the command
DXVK_HUD=1 WINEARCH=win64 WINEDEBUG=-all mesa_glthread=true wine PathOfExile.exe --waitforpreload --gc2
I get the same results with the direct-image-mapping branch.
@xethm55 please try with mesa-git. mesa 17.3 has a bunch of bugs that affect DXVK.
PoE Renders properly on mesa-git with direct-image-mapping branch, but stutters pretty badly. fps stayed around 30-40 on low settings. I will also test with master and pull master changes into image mapping and test that way. Used --nologo --waitforpreload
0:58 and 1:18 for some stuttering: https://www.youtube.com/watch?v=2Qptidx0M_w
For stuttering it's a PoE issue - https://bugs.winehq.org/show_bug.cgi?id=34011
fps stayed around 30-40 on low settings
What about the Ledge and Climb in Act 1? Have you disabled Engine Multithreading?
Can anyone please test this with the direct-image-mapping branch?
Is there a precompiled version? Compiling mingw is a lot of hassle on arch.
@vamur I already had glsl disabled and -gc 1. -ns makes no difference. stuttering is still there. also tried various combinations of noasync and waitforpreload
@vamour see https://wiki.archlinux.org/index.php/Unofficial_user_repositories#mingw-w64
There is also https://wiki.archlinux.org/index.php/Unofficial_user_repositories#mesa-git to upgrade mesa.
Note: I put SigLevel = Never
under the section of each user repo as they are unsigned.
Note 2: The above can be dangerous and it not recommeneded.
I have updated to mesa-git. Runing glxinfo -B I get:
glxinfo -B name of display: :0.0 display: :0 screen: 0 direct rendering: Yes Extended renderer info (GLX_MESA_query_renderer): Vendor: X.Org (0x1002) Device: Radeon RX 560 Series (POLARIS11 / DRM 3.23.0 / 4.15.8-1-MANJARO, LLVM 7.0.0) (0x67ff) Version: 18.1.0 Accelerated: yes Video memory: 2024MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 4.5 Max compat profile version: 3.1 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.1
However when I run Path of Exile with DXVK HUD it still shows 17.3.6 and I have all the same graphical glitches. I have rebuilt Wine and DXVK. Cleared out the shader caches in PoE, and created a fresh production_config.ini as well.
Any Ideas?
xethm55 i supose you are starting the 32bit executable instead of the 64bit executable and since you only upgrade to mesa-git you don't have upgraded your 32bit libs. Besides mesa-git you might want to have lib32-mesa-git most likely.
Game's running great now. GLSL disabled, anti-aliasing and multithreading disabled in game, using launch options -gc 2 --softwareaudio:
I have both mesa-git and lib32-mesa-git installed. I tried it with both the 32bit and 64bit executables. Same results. I am at a loss.
Edit: If figured it out. I need to also install vulkan-radeon-git and lib32-vulkan-radeon-git. Once I did that i was able to run just fine -- except for the low FPS when loading shaders.
@GloriousEggroll : Afaik, the glsl option should not have any impact cause itis an option for dx->opengl, which is not in use when using dxvk. In addition, could ou specifiy which version of dxvk you are using to have the game running grea now ?
@pingubot thats what i thought about glsl, but i had it disabled before i set up dxvk anwyay. I compiled it last night. latest commit when i compiled was a8eecfbfe59e4aecc5d0332ce5c1394a53d065ea
IMAGE(ERROR): object: 0x0 type: 0 location: 666 msgCode: 165676976: vkCreateImage: usage bit VK_IMAGE_USAGE_STORAGE_BIT is not supported for format VK_FORMAT_R8G8B8A8_SRGB with tiling VK_IMAGE_TILING_OPTIMAL. The spec valid usage text states 'If tiling is VK_IMAGE_TILING_OPTIMAL, and VkFormatProperties::optimalTilingFeatures (as returned by vkGetPhysicalDeviceFormatProperties with the same value of format) does not include VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, usage must not contain VK_IMAGE_USAGE_STORAGE_BIT' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageCreateInfo-tiling-00984)
IMAGE(ERROR): object: 0x0 type: 0 location: 3533 msgCode: 180357100: vkCreateImageView() pCreateInfo->format VK_FORMAT_R8G8B8A8_SRGB cannot be used with an image having the VK_IMAGE_TILING_OPTIMAL and VK_IMAGE_USAGE_STORAGE_BIT flags set. The spec valid usage text states 'If image was created with VK_IMAGE_TILING_OPTIMAL and usage contains VK_IMAGE_USAGE_STORAGE_BIT, format must be supported for storage images, as specified by the VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT flag in VkFormatProperties::optimalTilingFeatures returned by vkGetPhysicalDeviceFormatProperties with the same value of format' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-VkImageViewCreateInfo-image-01014)
Software information
System information
Log files