Skip to content

vk.flip_capture_failed: display buffer not registered for Vulkan flip (Dead Cells, Arkanoid) #255

Description

@jackby03

Symptoms

  • Dead Cells (PPSA15552): vk.flip_capture_failed version=1 queue=dcb.graphics addr=0x102440000 found=False
  • Arkanoid Eternal Battle (PPSA06328): Debug.Assert in ExecuteOrderedGuestFlipWait
  • Both crash with Access Violation (0xC0000005)

Log evidence

[LOADER][WARN] vk.flip_capture_failed version=1 queue=dcb.graphics addr=0x0000000102440000 found=False initialized=False

Arkanoid stack trace:

at System.Diagnostics.Debug.Fail(...)
at VulkanVideoPresenter+Presenter.ExecuteOrderedGuestFlipWait(...)
at VulkanVideoPresenter+Presenter.Render(Double)

Assertion: An ordered wait-safe marker must execute after its flip capture.

Analysis

  1. Game calls sceVideoOutRegisterBuffers with a pixel format
  2. MapPixelFormatToGuestTextureFormat only supports RGB8 (fmt 56) and RGB10 (fmt 9)
  3. If the game uses a different format, RegisterKnownDisplayBuffer skips registration
  4. When SubmitFlip arrives, the image address isn't in _availableGuestImages or _guestImages
  5. ExecuteOrderedGuestFlip fails silently (vk.flip_capture_failed)
  6. ExecuteOrderedGuestFlipWait triggers Debug.Assert because capture was expected

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions