gfxreconstruct
gfxreconstruct copied to clipboard
webgpu: vkAllocateMemory returned error value VK_ERROR_INVALID_EXTERNAL_HANDLE
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:
- Get the
.gfxr
file attached to the issue. - . 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