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

Checkerbox-y visuals in Pillars Of Eternity II #408

Closed
JuBan1 opened this issue May 30, 2018 · 19 comments

Comments

@JuBan1
Copy link

commented May 30, 2018

Thanks for working on this piece of software. PoE2 already runs about twice as fast as with regular wine.

Description

A few places in Pillars Of Eternity 2 have a blocky visual glitch. This is how it looks like while this is how it ought to look. The individual boxes change color/saturation with every frame, a bit like TV static.

The glitch only shows up in a few places, and I'm almost certain it only appeared after a few hours of playing.

Graphics settings used does not change anything. I tried deleting ~/.cache/mesa_shader_cache and ~/.cache/radv_builtin_shaders as well as RADV_DEBUG=nofastclears to no avail. I don't have a <wineprefix>/drive_c/users/xyz/Temp/dxvk to remove. Regular wine doesn't show this glitch.

System information

  • GPU: AMD Polaris Rx 560
  • Driver: Mesa 18.0.4, RADV 1.0.57
  • Wine version: wine 3.9 (Staging)
  • DXVK version: Built from master at commit e615fc1

Apitrace file(s)

  • Unfortunately I couldn't take an apitrace. The game locks up right after the intro screen.

Log files

  • d3d11.log:

info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_1
info: D3D11CoreCreateDevice: Probing D3D_FEATURE_LEVEL_11_0
info: D3D11CoreCreateDevice: Using feature level D3D_FEATURE_LEVEL_11_0
warn: D3D11DeviceContainer::QueryInterface: Unknown interface query
warn: 9d06dffa-d1e5-4d07-83a8-1bb123f2f841
warn: D3D11DeviceContext::QueryInterface: Unknown interface query
warn: 420d5b32-b90c-4da4-bef0-359f6a24a83a
warn: D3D11DeviceContainer::QueryInterface: Unknown interface query
warn: 6007896c-3244-4afd-bf18-a6d3beda5023
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11: Unsupported format: 4294967295
err: D3D11Device: CheckFeatureSupport: Unknown feature: 10
warn: DxbcCompiler: Unhandled VS SV output: DxbcSystemValue::RenderTargetId

  • dxgi.log:

info: Enabled instance extensions:
info: VK_KHR_win32_surface
info: VK_KHR_surface
info: AMD RADV POLARIS11 (LLVM 6.0.0):
info: Driver: 18.0.4
info: Vulkan: 1.0.57
info: Memory Heap[0]:
info: Size: 1762 MiB
info: Flags: 0x1
info: Memory Type[0]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 236 MiB
info: Flags: 0x1
info: Memory Type[2]: Property Flags = 0x7
info: Memory Heap[2]:
info: Size: 3069 MiB
info: Flags: 0x0
info: Memory Type[1]: Property Flags = 0x6
info: Memory Type[3]: Property Flags = 0xe
warn: DXGI: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
warn: Vulkan extension VK_EXT_vertex_attribute_divisor not supported
warn: Vulkan extension VK_KHR_maintenance2 not supported
info: Enabled device extensions:
info: VK_KHR_swapchain
info: VK_KHR_shader_draw_parameters
info: VK_KHR_descriptor_update_template
info: VK_KHR_maintenance1
info: VK_KHR_sampler_mirror_clamp_to_edge
info: Enabled instance extensions:
info: VK_KHR_win32_surface
info: VK_KHR_surface
info: AMD RADV POLARIS11 (LLVM 6.0.0):
info: Driver: 18.0.4
info: Vulkan: 1.0.57
info: Memory Heap[0]:
info: Size: 1762 MiB
info: Flags: 0x1
info: Memory Type[0]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 236 MiB
info: Flags: 0x1
info: Memory Type[2]: Property Flags = 0x7
info: Memory Heap[2]:
info: Size: 3069 MiB
info: Flags: 0x0
info: Memory Type[1]: Property Flags = 0x6
info: Memory Type[3]: Property Flags = 0xe
warn: DXGI: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
info: Enabled instance extensions:
info: VK_KHR_win32_surface
info: VK_KHR_surface
info: AMD RADV POLARIS11 (LLVM 6.0.0):
info: Driver: 18.0.4
info: Vulkan: 1.0.57
info: Memory Heap[0]:
info: Size: 1747 MiB
info: Flags: 0x1
info: Memory Type[0]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 236 MiB
info: Flags: 0x1
info: Memory Type[2]: Property Flags = 0x7
info: Memory Heap[2]:
info: Size: 3069 MiB
info: Flags: 0x0
info: Memory Type[1]: Property Flags = 0x6
info: Memory Type[3]: Property Flags = 0xe
warn: DXGI: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
info: Enabled instance extensions:
info: VK_KHR_win32_surface
info: VK_KHR_surface
info: AMD RADV POLARIS11 (LLVM 6.0.0):
info: Driver: 18.0.4
info: Vulkan: 1.0.57
info: Memory Heap[0]:
info: Size: 1762 MiB
info: Flags: 0x1
info: Memory Type[0]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 236 MiB
info: Flags: 0x1
info: Memory Type[2]: Property Flags = 0x7
info: Memory Heap[2]:
info: Size: 3069 MiB
info: Flags: 0x0
info: Memory Type[1]: Property Flags = 0x6
info: Memory Type[3]: Property Flags = 0xe
warn: DXGI: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
warn: DXGI: MakeWindowAssociation: Ignoring flags
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 2560x1440
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
Buffer size: 2560x1440
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 2560x1440
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 32x32
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 2560x1440
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 32x32
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 2560x1440
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 32x32
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 2560x1440
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 32x32
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 2560x1440
info: DxgiVkPresenter: Recreating swap chain:
Format: VK_FORMAT_B8G8R8A8_SRGB
Present mode: VK_PRESENT_MODE_FIFO_KHR
Buffer size: 32x32

  • wine std output:

000b:fixme:winediag:start_process Wine Staging 3.9 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
0014:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0014:fixme:process:SetProcessDEPPolicy (1): stub
0014:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0019:fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
001c:fixme:heap:RtlSetHeapInformation 0x240000 0 0x23e870 4 stub
001c:fixme:heap:RtlSetHeapInformation 0x350000 0 0x23e830 4 stub
001c:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
001f:fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
001f:fixme:heap:RtlSetHeapInformation 0x8a0000 0 0x77ef30 4 stub
003b:fixme:heap:RtlSetHeapInformation 0x260000 0 0x23fd20 4 stub
003b:fixme:heap:RtlSetHeapInformation 0x2480000 0 0x23f0b0 4 stub
Mono path[0] = 'C:/Games/Pillars of Eternity II Deadfire/PillarsOfEternityII_Data/Managed'
Mono path[1] = 'C:/Games/Pillars of Eternity II Deadfire/PillarsOfEternityII_Data/Mono'
Mono config path = 'C:/Games/Pillars of Eternity II Deadfire/PillarsOfEternityII_Data/Mono/etc'
Player data archive not found at C:/Games/Pillars of Eternity II Deadfire/PillarsOfEternityII_Data/data.unity3d, using local filesystem003b:fixme:imm:ImmReleaseContext (0x10062, 0x79790): stub
WARNING: radv is not a conformant vulkan implementation, testing use only.
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkCreateDebugReportCallbackEXT".
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkDestroyDebugReportCallbackEXT".
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkDebugReportMessageEXT".
WARNING: radv is not a conformant vulkan implementation, testing use only.
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkCreateDebugReportCallbackEXT".
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkDestroyDebugReportCallbackEXT".
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkDebugReportMessageEXT".
003b:fixme:wbemprox:client_security_SetBlanket 0x7f83ea0a40d0, 0x85a90, 10, 0, (null), 3, 3, (nil), 0x00000000
003b:fixme:wbemprox:client_security_Release 0x7f83ea0a40d0
WARNING: radv is not a conformant vulkan implementation, testing use only.
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkCreateDebugReportCallbackEXT".
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkDestroyDebugReportCallbackEXT".
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkDebugReportMessageEXT".
005b:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",0x6c5fd38): stub
003b:fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
003b:fixme:win:RegisterDeviceNotificationW (hwnd=0x10062, filter=0x23fa70,flags=0x00000004) returns a fake device notification handle!
WARNING: radv is not a conformant vulkan implementation, testing use only.
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkCreateDebugReportCallbackEXT".
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkDestroyDebugReportCallbackEXT".
003b:fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: "vkDebugReportMessageEXT".
003b:fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
003b:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
003b:fixme:win:RegisterDeviceNotificationW (hwnd=0x10062, filter=0x23f8d0,flags=0x00000004) returns a fake device notification handle!
003b:fixme:win:RegisterRawInputDevices Unhandled flags 0x100 for device 0.
003b:fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
003b:fixme:win:RegisterDeviceNotificationW (hwnd=0x10062, filter=0x23fa70,flags=0x00000004) returns a fake device notification handle!
003b:fixme:win:RegisterTouchWindow (0x10062 00000000): stub
003b:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0x238c70 1 C) semi-stub
006d:fixme:kernelbase:AppPolicyGetThreadInitializationType 0xfffffffffffffffa, 0x1b3dfdc0

@doitsujin

This comment has been minimized.

Copy link
Owner

commented May 30, 2018

The checkerboard-like effect looks a lot like the symptom of a RADV bug that was fixed recently, affected a lot of games and should make it into the 18.0.5 update. Can you test whether this still happens with latest mesa-git?

But there's another issue which may lead to visual bugs (see #406, which also has this problem):

warn: DxbcCompiler: Unhandled VS SV output: DxbcSystemValue::RenderTargetId

Expect a fix when wine gains support for Vulkan 1.1.

@JuBan1

This comment has been minimized.

Copy link
Author

commented May 31, 2018

Tested it with mesa-git just now (version string reports 18.2.0-devel) but the problem persists. At best the pattern and color are a bit different from before.

@doitsujin

This comment has been minimized.

Copy link
Owner

commented May 31, 2018

Which LLVM version did you use? There are similar issues in Kingdom Come Deliverance with LLVM 6.0 but gone in 7.0.

Anyway, can you please record an apitrace for the game?

@JuBan1

This comment has been minimized.

Copy link
Author

commented May 31, 2018

LLVM version is 6. I'll see if I can test it using 7 without creating too much of a mess.

I tried creating an API trace but unfortunately the game locks up after a few seconds when running it through apitrace.exe. Thus, I can't get past the main menu.

@doitsujin

This comment has been minimized.

Copy link
Owner

commented May 31, 2018

That's unfortunate, but also means that I won't be able to debug the issue.

doitsujin added a commit that referenced this issue Jun 1, 2018
[dxbc] Support RenderTargetId and ViewportId in Vertex/Domain shaders
Fixes shader compilation errors in Pillars of Eternity II (#408)
and Lost Sphear (#406). Currently unsupported by RADV.
@doitsujin

This comment has been minimized.

Copy link
Owner

commented Jun 1, 2018

With 9ff17b0, the shaders should now compile without warnings, but since RADV doesn't support VK_EXT_shader_viewport_index_layer yet I don't know how well this works out. I'll file a feature request to support the extension.

@JuBan1

This comment has been minimized.

Copy link
Author

commented Jun 3, 2018

Can confirm that the DxbcSystemValue::RenderTargetId warning is now gone. It seems radv had VK_EXT_shader_viewport_index_layerenabled back in April, although it didn't get rid of the issues.

I figured out that apitrace doesn't actually lock up the game- it just shows a black screen with only the mouse cursor being visible. I can still click on things and even load the game. Is a trace taken under those conditions still useful to you?

@jarrard

This comment has been minimized.

Copy link

commented Jun 4, 2018

When I tested this title a while back, the frame rate was quite low, like 20-25fps, has that changed?

@JuBan1

This comment has been minimized.

Copy link
Author

commented Jun 4, 2018

I'm getting about 20-30 fps, but that's with a Rx 560 at 1440p. If you've got a juicier card you might have more luck now.

@jarrard

This comment has been minimized.

Copy link

commented Jun 4, 2018

Nope, I was getting that with a 1080ti also. I'll check with latest wine and dxvk tomorrow, could be a issue.

@JuBan1

This comment has been minimized.

Copy link
Author

commented Jun 7, 2018

@doitsujin

I figured out that apitrace doesn't actually lock up the game- it just shows a black screen with only the mouse cursor being visible. I can still click on things and even load the game. Is a trace taken under those conditions still useful to you (to debug the checkerbox issue)?

@jarrard

This comment has been minimized.

Copy link

commented Jun 7, 2018

re-tested this on latest DXVK and wine-staging, still gets 25fps at low settings 4k. Seems like something is going wrong here because setting to high settings doesn't really change the framerate, nor does the resolution.

(1080ti system)

@EntropicEffect

This comment has been minimized.

Copy link

commented Jun 7, 2018

@jarrard how does this compare to the performance of the native Linux version of the game?

@jarrard

This comment has been minimized.

Copy link

commented Jun 24, 2018

The performance under Linux has now been tested by me and I can say it runs loads better under Linux OpenGL then under DXVK. Not sure what the issue is with DXVK, something slowing it down I guess.

@doitsujin

This comment has been minimized.

Copy link
Owner

commented Jun 24, 2018

@JuBan1 Does the visual issue still occur with mesa-git?

As for performance being low, nothing I can do without a trace. Even with a trace there's probably nothing I can do in case that game is doing something rather silly (similar to Grim Dawn, which also runs extremely poorly on DXVK because it uses D3D11_USAGE_DYNAMIC for absolutely everything).

@jarrard

This comment has been minimized.

Copy link

commented Jun 24, 2018

no way to work around D3D11 USAGE DYNAMIC is there?

I'll work on getting a apitrace done for you, if for nothing more then completion points :)

@doitsujin

This comment has been minimized.

Copy link
Owner

commented Jul 17, 2018

Ping?

@JuBan1 Does the visual issue still occur with mesa-git?

@JuBan1

This comment has been minimized.

Copy link
Author

commented Jul 18, 2018

Sorry, I didn't see the last mention. I'll test it in the next few days.

@JuBan1

This comment has been minimized.

Copy link
Author

commented Jul 20, 2018

It seems to be gone with mesa-git and DXVK 0.62.

I've switched from a Rx 560 to a Rx 570 in the meantime but I doubt the hardware change had anything to do with it. Though I can confirm that the game runs about as fast on both cards, though that's an issue not related to this one.

I'll close this.

@JuBan1 JuBan1 closed this Jul 20, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.