protonscr

Apollo Justice: Ace Attorney Trilogy Image Glitch

vkd3dclosed
HansKristian-Work/vkd3d-proton#2048 · opened 2024-07-21 by Bob0111 · updated 2024-07-25 · 4 comments · github
BBob0111 2024-07-21 github

Please describe your issue as accurately as possible. Include screenshots or videos if relevant

Software information

Apollo Justice: Ace Attorney Trilogy. Turn on Esync and Fsync from lutris. Turn on Vsync from game.

System information

  • GPU: AMD Radeon RX 580 2048SP
  • Driver: Mesa 24.1.3-2
  • Wine version: wine-ge-8-26
  • VKD3D-Proton version: 2.12

Log files

1273.707:0120:0124:info:vkd3d-proton:vkd3d_instance_deduce_config_flags_from_environment: shader_cache is used, global_pipeline_cache is enforced.
1273.707:0120:0124:info:vkd3d-proton:vkd3d_config_flags_init_once: VKD3D_CONFIG=''.
1273.710:0120:0124:info:vkd3d-proton:vkd3d_get_vk_version: vkd3d-proton - applicationVersion: 2.12.0.
1273.710:0120:0124:info:vkd3d-proton:vkd3d_instance_init: vkd3d-proton - build: 7460c70de0dff08.
1273.796:0120:0124:info:vkd3d-proton:vkd3d_memory_info_upload_hvv_memory_properties: Topology: Device heaps are split. Assuming small BAR situation. Using HOST_COHERENT only.
1273.796:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Enabling fast paths for advanced ExecuteIndirect() graphics and compute.
1273.796:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports VK_EXT_mutable_descriptor_type.
1273.796:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports ultra-fast path for descriptor copies.
1273.796:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports packed metadata path for descriptor copies.
1273.796:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_add_binding: Device supports VK_EXT_descriptor_buffer!
1273.796:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_add_binding: Device supports VK_EXT_descriptor_buffer!
1273.796:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_add_binding: Device supports VK_EXT_descriptor_buffer!
1274.300:0120:0124:info:vkd3d-proton:d3d12_device_caps_init_shader_model: Enabling support for SM 6.6.
1274.300:0120:0124:fixme:vkd3d-proton:d3d12_device_caps_init_feature_options1: TotalLaneCount = 2048, may be inaccurate.
1274.300:0120:0124:info:vkd3d-proton:vkd3d_pipeline_library_init_disk_cache: Remapping VKD3D_SHADER_CACHE to: vkd3d-proton.cache.
1274.300:0120:0124:info:vkd3d-proton:vkd3d_pipeline_library_init_disk_cache: Attempting to load disk cache from: vkd3d-proton.cache.
1274.302:0120:01a8:info:vkd3d-proton:vkd3d_pipeline_library_disk_thread_main: Performing async setup of stream archive ...
1274.303:0120:01a8:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_merge: No write cache exists. No need to merge any disk caches.
1274.303:0120:01a8:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Merging pipeline libraries took 0.569 ms.
1274.303:0120:01a8:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Mapping read-only cache took 0.366 ms.
1274.306:0120:01a8:info:vkd3d-proton:d3d12_pipeline_library_read_blob_stream_format: Device teardown request received, stopping parse early.
1274.306:0120:01a8:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Parsing stream archive took 3.032 ms.
1274.306:0120:01a8:info:vkd3d-proton:vkd3d_pipeline_library_disk_thread_main: Done performing async setup of stream archive.
1274.319:0120:0124:info:vkd3d-proton:vkd3d_get_vk_version: vkd3d-proton - applicationVersion: 2.12.0.
1274.319:0120:0124:info:vkd3d-proton:vkd3d_instance_init: vkd3d-proton - build: 7460c70de0dff08.
1274.484:0120:0124:info:vkd3d-proton:vkd3d_memory_info_upload_hvv_memory_properties: Topology: Device heaps are split. Assuming small BAR situation. Using HOST_COHERENT only.
1274.484:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Enabling fast paths for advanced ExecuteIndirect() graphics and compute.
1274.484:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports VK_EXT_mutable_descriptor_type.
1274.484:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports ultra-fast path for descriptor copies.
1274.484:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports packed metadata path for descriptor copies.
1274.484:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_add_binding: Device supports VK_EXT_descriptor_buffer!
1274.484:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_add_binding: Device supports VK_EXT_descriptor_buffer!
1274.484:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_add_binding: Device supports VK_EXT_descriptor_buffer!
1274.485:0120:0124:info:vkd3d-proton:d3d12_device_caps_init_shader_model: Enabling support for SM 6.6.
1274.485:0120:0124:fixme:vkd3d-proton:d3d12_device_caps_init_feature_options1: TotalLaneCount = 2048, may be inaccurate.
1274.485:0120:0124:info:vkd3d-proton:vkd3d_pipeline_library_init_disk_cache: Remapping VKD3D_SHADER_CACHE to: vkd3d-proton.cache.
1274.485:0120:0124:info:vkd3d-proton:vkd3d_pipeline_library_init_disk_cache: Attempting to load disk cache from: vkd3d-proton.cache.
1274.487:0120:01b0:info:vkd3d-proton:vkd3d_pipeline_library_disk_thread_main: Performing async setup of stream archive ...
1274.487:0120:01b0:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_merge: No write cache exists. No need to merge any disk caches.
1274.488:0120:01b0:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Merging pipeline libraries took 0.372 ms.
1274.488:0120:01b0:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Mapping read-only cache took 0.266 ms.
1274.488:0120:01b0:info:vkd3d-proton:d3d12_pipeline_library_read_blob_stream_format: Device teardown request received, stopping parse early.
1274.488:0120:01b0:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Parsing stream archive took 0.006 ms.
1274.488:0120:01b0:info:vkd3d-proton:vkd3d_pipeline_library_disk_thread_main: Done performing async setup of stream archive.
1274.499:0120:0124:info:vkd3d-proton:vkd3d_get_vk_version: vkd3d-proton - applicationVersion: 2.12.0.
1274.499:0120:0124:info:vkd3d-proton:vkd3d_instance_init: vkd3d-proton - build: 7460c70de0dff08.
1274.536:0120:0124:info:vkd3d-proton:vkd3d_memory_info_upload_hvv_memory_properties: Topology: Device heaps are split. Assuming small BAR situation. Using HOST_COHERENT only.
1274.537:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Enabling fast paths for advanced ExecuteIndirect() graphics and compute.
1274.537:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports VK_EXT_mutable_descriptor_type.
1274.537:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports ultra-fast path for descriptor copies.
1274.537:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_get_bindless_flags: Device supports packed metadata path for descriptor copies.
1274.537:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_add_binding: Device supports VK_EXT_descriptor_buffer!
1274.537:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_add_binding: Device supports VK_EXT_descriptor_buffer!
1274.537:0120:0124:info:vkd3d-proton:vkd3d_bindless_state_add_binding: Device supports VK_EXT_descriptor_buffer!
1274.537:0120:0124:info:vkd3d-proton:d3d12_device_caps_init_shader_model: Enabling support for SM 6.6.
1274.537:0120:0124:fixme:vkd3d-proton:d3d12_device_caps_init_feature_options1: TotalLaneCount = 2048, may be inaccurate.
1274.537:0120:0124:info:vkd3d-proton:vkd3d_pipeline_library_init_disk_cache: Remapping VKD3D_SHADER_CACHE to: vkd3d-proton.cache.
1274.537:0120:0124:info:vkd3d-proton:vkd3d_pipeline_library_init_disk_cache: Attempting to load disk cache from: vkd3d-proton.cache.
1274.540:0120:01b8:info:vkd3d-proton:vkd3d_pipeline_library_disk_thread_main: Performing async setup of stream archive ...
1274.541:0120:01b8:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_merge: No write cache exists. No need to merge any disk caches.
1274.541:0120:01b8:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Merging pipeline libraries took 0.376 ms.
1274.541:0120:01b8:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Mapping read-only cache took 0.215 ms.
1274.541:0120:01b8:info:vkd3d-proton:vkd3d_pipeline_library_disk_cache_initial_setup: Parsing stream archive took 0.488 ms.
1274.541:0120:01b8:info:vkd3d-proton:vkd3d_pipeline_library_disk_thread_main: Done performing async setup of stream archive.
1274.542:0120:0124:fixme:vkd3d-proton:d3d12_command_queue_init: Ignoring priority 0x64.
1275.643:0120:0228:info:vkd3d-proton:dxgi_vk_swap_chain_init: Creating swapchain (1920 x 1080), BufferCount = 3.
1275.644:0120:0228:info:vkd3d-proton:dxgi_vk_swap_chain_init_sync_objects: Enabling frame latency handles.
1275.644:0120:0228:info:vkd3d-proton:dxgi_vk_swap_chain_init_sync_objects: Ensure maximum latency of 3 frames with KHR_present_wait.
1275.649:0120:0228:info:vkd3d-proton:dxgi_vk_swap_chain_init_waiter_thread: Enabling present wait path for frame latency.
1276.042:0120:01c0:info:vkd3d-proton:dxgi_vk_swap_chain_recreate_swapchain_in_present_task: Got 3 swapchain images.
1276.187:0120:01c0:info:vkd3d-proton:dxgi_vk_swap_chain_recreate_swapchain_in_present_task: Got 3 swapchain images.
1276.188:0120:0228:info:vkd3d-proton:dxgi_vk_swap_chain_ChangeProperties: Reallocating swapchain (640 x 400), BufferCount = 3.
1277.826:0120:0228:info:vkd3d-proton:dxgi_vk_swap_chain_ChangeProperties: Reallocating swapchain (2560 x 1080), BufferCount = 3.
1277.857:0120:01c0:info:vkd3d-proton:dxgi_vk_swap_chain_recreate_swapchain_in_present_task: Got 3 swapchain images.
Monitored process exited.
Initial process has exited (return code: 0)
Exit with return code 0

The thing need to be noted is Device teardown request received, stopping parse early. Considered I turned on the vsync in game, this message shouldn't appear. But if I use the gamescope or window the game, the image glitch disappears. Trying to turn off "allowing screen tearingartifacts in fullscreen windows" in my wayland compositor setting and still get no luck. I'm running KDE Plasma 5.27.

Ddoitsujin maintainer 2024-07-22 github

What do you mean by image glitch? Do you have a screenshot?

BBob0111 2024-07-23 github

https://github.com/user-attachments/assets/cb1767b6-ed85-4b37-81fb-c34c5edd6b9b

When apps run at the fullscreen mode under Wayland session, the image glitch doesn't only exist in DirectX 12 apps, but also in DirectX 11 apps(translated by dxvk). But when apps run under X11 sessions, apps are rendered correctly(no image blinking like in the video). I turn compositor on both under Wayland session and X11 session. The bug may not be related to either vkd3d or dxvk, but I'm not familiar with Linux graphical stack, so not sure about whether the problem is in the mesa or in the desktop compositor. I'd appreciate it that if you can help me figure it out.

Ddoitsujin maintainer 2024-07-23 github

Considering that even MangoHUD is flickering in the video, I believe this issue is firmly outside of our territory.

BBob0111 2024-07-25 github

OK. I'll try to change the Wayland compositor and try to find the problem.

Launch options