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

[Feature] Implement fixed-foveated rendering #274

Closed
Tracked by #259
kanerogers opened this issue Jul 19, 2022 · 2 comments
Closed
Tracked by #259

[Feature] Implement fixed-foveated rendering #274

kanerogers opened this issue Jul 19, 2022 · 2 comments
Assignees
Labels
feature A new feature to add to the engine rendering An issue with the rendering system

Comments

@kanerogers
Copy link
Collaborator

Background

Speaking with an Oculus Engineer, one of the biggest ways we can get an improvement out of our rendering pipeline is to use Fixed-Foveated rendering.

Facebook has an OpenXR extension that should make this very easy to implement.

@kanerogers kanerogers added feature A new feature to add to the engine rendering An issue with the rendering system labels Jul 19, 2022
@kanerogers kanerogers self-assigned this Jul 19, 2022
@kanerogers
Copy link
Collaborator Author

kanerogers commented Dec 1, 2022

Background

OpenXR

Implementing FFR seems to need a couple of dependent extensions in OpenXR

The setup seems to look something like this:

  1. Modify our call to xrCreateSwapchain to include an XrSwapchainCreateInfoFoveationFB structure
  2. Create a xrFoveationProfileFB with xrCreateFoveationProfileFB with a next pointer to a XrFoveationLevelProfileCreateInfoFB
  3. Immediately call xrUpdateSwapchainFB with an XrSwapchainStateFoveationFB structure that points to the XrFoveationProfileFB
  4. When we call xrEnumerateSwapchainImages, if we include XrSwapchainImageFoveationVulkanFB, we should get a VkImage we can pass down to our renderpass.

Vulkan

And then on the Vulkan side:

TODO

  • Enable the relevant extensions in OpenXR
  • Change xrCreateSwapchain call
  • Call xrCreateFoveationProfileFB
  • Call updateSwapchainFB
  • Get foveation image when enumerating swap chain images
  • Hide FFR behind a device flag so that we can run on the simulator

@kanerogers
Copy link
Collaborator Author

This was closed in #415

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new feature to add to the engine rendering An issue with the rendering system
Projects
None yet
Development

No branches or pull requests

1 participant