Skip to content

vulkan(android): return a no-op vkFrameBoundaryANDROID instead of NULL - #2

Draft
manon-traverse wants to merge 1 commit into
v1.xfrom
pr-android-frame-boundary
Draft

vulkan(android): return a no-op vkFrameBoundaryANDROID instead of NULL#2
manon-traverse wants to merge 1 commit into
v1.xfrom
pr-android-frame-boundary

Conversation

@manon-traverse

Copy link
Copy Markdown
Collaborator

Summary

Fixes a null-pointer crash when capturing Android apps that use VK_ANDROID_frame_boundary.

Problem

RenderDoc does not implement VK_ANDROID_frame_boundary, so vkGetDeviceProcAddr(device, "vkFrameBoundaryANDROID") returns NULL. Apps that enable the extension and call vkFrameBoundaryANDROID unconditionally (observed on Adreno titles, e.g. Asphalt 9) then call through a null pointer and crash (SIGSEGV) as soon as the capture layer is active.

Fix

Return a small no-op stub for vkFrameBoundaryANDROID from the layer's GetDeviceProcAddr so the call is safe. RenderDoc already delimits frames via vkQueuePresentKHR, so nothing else is needed for single-frame capture. (Mirrors how gfxreconstruct provides a valid no-op for this function.)

Testing

With this stub the target app runs normally under the capture layer and a frame captures successfully; without it the app crashes at instance/device init.


🤖 Draft opened on the Traverse-Research fork for internal human review before any upstream submission.

RenderDoc does not implement VK_ANDROID_frame_boundary, so GetDeviceProcAddr
returned NULL for vkFrameBoundaryANDROID. Apps that enable the extension and
call the function unconditionally (e.g. some Adreno titles) then dereference a
null pointer and crash while capturing. Return a no-op stub so the call is
safe; RenderDoc already delimits frames via vkQueuePresentKHR.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant