gfxreconstruct icon indicating copy to clipboard operation
gfxreconstruct copied to clipboard

webgpu: vkAllocateMemory returned error value VK_ERROR_INVALID_EXTERNAL_HANDLE

Open jeremyg-lunarg opened this issue 5 months ago • 2 comments

Describe the replay bug: This is a replay of webgpu content running on linux with the RADV driver. WebGPU renders into a swapchain image created by chromium. It is then passed to a compositor in chromium. Both components are Vulkan running with their own VkInstance and VkDevice.

[gfxrecon] FATAL - API call at index: 4261 thread: 1 vkAllocateMemory returned error value VK_ERROR_INVALID_EXTERNAL_HANDLE that does not match the result from the capture file: VK_SUCCESS. Replay cannot continue.
Replay has encountered a fatal error and cannot continue: an external handle is not a valid handle of the specified type

It looks like at some point vkGetMemoryFdKHR() returns a -1 file descriptor but I could be getting confused looking at the output.

note: chromium might be doing graphics stuff in multiple processes, looking at the gfxr-convert output I think everything is in 1 process and captured but I'm not 100% sure.

Verify before submission:

  • Was trimming enabled? no
  • Was replayer renamed if necessary? no
  • Was --sync used if title is known to need forced synchronization? no

Build Environment: Please include the SHA and PR or branch name used in capture and also used to build the replayer.

1.3.290 SDK

To Reproduce Steps to reproduce the behavior:

  1. Get the .gfxr file attached to the issue.
  2. . Run gfxrecon-replay with gfxrecon_capture_frames_1_through_5000_20240916T105521.gfxr, no arguments

Screenshots: Does not run long enough for screenshots.

System environment: Capture and replay on the same system running Ubuntu 24.04 with the RADV driver

Title configuration: life branch of https://github.com/jeremyg-lunarg/webgpu-electron

With npm and node.js installed: npm install npm run start

Additional information (optional):

  • is there a SHA for which replayer is known to replay correctly? no
  • Is there an older trace that works? What SHA was used to build those capture DLLs? no
  • Does a newer capture work? no
  • Does the capture file replay correctly on a different GPU? no

jeremyg-lunarg avatar Sep 16 '24 21:09 jeremyg-lunarg