Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-attempt adding Android Frame boundary extension implementation #1288

Merged
merged 2 commits into from
Oct 6, 2023

Conversation

MarkY-LunarG
Copy link
Contributor

This updates PR #981 to the latest dev tree source.

Re-attempting to bring it into GFXR since Google has requested support for it.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 54406.

@MarkY-LunarG
Copy link
Contributor Author

Previous comments from the other PR from @mikes-lunarg (just to keep them all in one place):

Capture the vkFrameBoundaryANDROID function and treat it as a frame delimiter.

It is very simple extension. The most complicated parts are:

There was an existing bug in the capture layer where it wouldn't always return an pointer for layer-implemented functions. This is handled in the first commit.
VK_ANDROID_frame_boundary is not in the main spec so this change also adds a way to patch the vk.xml tree so the code generators can know about the extension.

Questions:

Is this useful? I thinks so, HWUI is already using it. Ideally this private vendor extension would be replaced with a EXT or KHR extension and hosted in the main spec.
Should there be an option to enable it? Probably yes. It makes sense to make undocumented/experimental functionality opt-in.
Should it be exposed on Android only? I'm not sure. Exposing it on other platforms doesn't hurt, but also isn't very useful.
Should it be exposed in the layer manifest file? Probably no. This is a private extension so I don't see much value in telling the desktop loader we support it.

Future work:

It would be nice to hook this up to the virtual swapchain (and screenshot!) on replay. Replaying a blank screen isn't very exciting...

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 3319 running.

@MarkY-LunarG MarkY-LunarG force-pushed the vk_android_frame_boundary branch from c7ba9a5 to 9282234 Compare October 2, 2023 22:19
@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 54448.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 3320 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 3320 passed.

@bradgrantham-lunarg bradgrantham-lunarg self-assigned this Oct 5, 2023
@bradgrantham-lunarg bradgrantham-lunarg removed the request for review from andrew-lunarg October 5, 2023 16:23
The capture layer should always return layer implementation function
pointers for extensions that it implements, even if the underlying
layers/driver do not support them. This fixes VK_EXT_tooling_info on
Android 12 which could previously be enumerated but never returned a
function pointer for vkGetPhysicalDeviceToolPropertiesEXT.
Capture the vkFrameBoundaryANDROID function and treat it as a frame
delimiter. Since this is a private extension, this change also includes
a mechanism to extend the vk.xml tree before the code generators are
invoked.
@MarkY-LunarG MarkY-LunarG force-pushed the vk_android_frame_boundary branch from 9282234 to b794188 Compare October 5, 2023 18:17
@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 57141.

@MarkY-LunarG
Copy link
Contributor Author

Rebased on Andrew's changes, and later re-generated files to make sure nothing new was needed. Just making sure it passes through CI now.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 3353 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 3353 passed.

@MarkY-LunarG MarkY-LunarG merged commit 6ffb01a into LunarG:dev Oct 6, 2023
@MarkY-LunarG MarkY-LunarG deleted the vk_android_frame_boundary branch October 6, 2023 14:38
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.

4 participants