gfxreconstruct icon indicating copy to clipboard operation
gfxreconstruct copied to clipboard

[capture] Replay a capture for trimming doesn't produce any output

Open djdeath opened this issue 10 months ago • 0 comments

Describe the capture bug: While I managed to successfully capture and application and the replay of the trace appears to be working properly, trying to capture the replay of the trace to trim it to a single frame does not work.

Build Environment: Using 0cbab3c27e8a60af517b7132e07c1e710899fb9e

Capture Settings:

$ gfxrecon-capture-vulkan.py -o /tmp/frame29 -f 29 gfxrecon-replay --log-level debug ~/capture_20250204T141832 
Executing program gfxrecon-replay
Errors:
gfxrecon-replay: gfxreconstruct/framework/encode/vulkan_state_tracker.cpp:3242: void gfxrecon::encode::VulkanStateTracker::TrackBeginRendering(VkCommandBuffer, const VkRenderingInfo*): Assertion `img_view_wrapper != nullptr' failed.

Output:
[gfxrecon] WARNING - Replay tool has detected that the capture layer is enabled
[gfxrecon] INFO - Settings Loader: Found option "GFXRECON_CAPTURE_FILE" with value "/tmp/frame29"
[gfxrecon] INFO - Settings Loader: Found option "GFXRECON_CAPTURE_FRAMES" with value "29"
[gfxrecon] INFO - Initializing GFXReconstruct capture layer
[gfxrecon] INFO -   GFXReconstruct Version 1.0.5-dev (dev:0cbab3c) Debug
[gfxrecon] INFO -   Vulkan Header Version 1.4.304
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 1, replay count = 3
[gfxrecon] INFO -   Vulkan Header Version 1.4.304
[gfxrecon] INFO -   Vulkan Header Version 1.4.304
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 1, replay count = 3
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 1, replay count = 3
[gfxrecon] WARNING - A Shader is using the 'SPV_KHR_physical_storage_buffer' feature. Resource tracking for buffers accessed via references is currently unsupported, so replay may fail.
[gfxrecon] INFO -   Vulkan Header Version 1.4.304

Yet replaying the capture alone works :

$ gfxrecon-replay --log-level debug ~/capture_20250204T141832 
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 1, replay count = 3
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 1, replay count = 3
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 1, replay count = 3
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> dst_buffer (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] WARNING - A Shader is using the 'SPV_KHR_physical_storage_buffer' feature. Resource tracking for buffers accessed via references is currently unsupported, so replay may fail.
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> dst_buffer (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> src_buffer (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> dst_args (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> dst_args (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> dst_args (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> dst_args (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> dst_args (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> dst_args (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (u_info_t) -> src (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (Registers) -> out_dispatch (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (Registers) -> indirect (push-constant-block, buffer-offset: 0, array-stride: 0)
[gfxrecon] DEBUG - buffer-reference: (Registers) -> out_dispatch (push-constant-block, buffer-offset: 8, array-stride: 0)
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 1, replay count = 3
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 1, replay count = 3
[gfxrecon] DEBUG - Virtual swapchain skipping creating blit info for queue family 1 because it was not enabled by the device
[gfxrecon] DEBUG - Virtual swapchain skipping creating blit info for queue family 2 because it was not enabled by the device
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] INFO - Replay adjusted the vkGetPhysicalDeviceQueueFamilyProperties array count: capture count = 1, replay count = 3
[gfxrecon] DEBUG - Virtual swapchain skipping creating blit info for queue family 1 because it was not enabled by the device
[gfxrecon] DEBUG - Virtual swapchain skipping creating blit info for queue family 2 because it was not enabled by the device
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkAcquireNextImageKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.
[gfxrecon] WARNING - API call vkQueuePresentKHR returned value VK_SUBOPTIMAL_KHR that does not match return value from capture file: VK_SUCCESS.

To Reproduce: Take a capture of the benchmark, try to replay and capture a single frame

Screenshots: N/A

System environment:

  • Intel B580 / Intel Mesa main branch

Title configuration:

  • Title name : Assassin's Creed Valhalla
  • Title version : N/A
  • Steam ID if applicable : 2208920
  • Is DXR enabled? : No

Additional information (optional):

  • is there a SHA for which capture is known to work? : N/A, capture is working
  • Does capture operate correctly on a different GPU or driver version? : not tested

djdeath avatar Feb 05 '25 12:02 djdeath