1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-11 13:10:58 +00:00

Merge pull request #99768 from dsnopek/openxr-vulkan-foveated-rendering

OpenXR: Use the `XR_FB_foveation_vulkan` extension to get the density map for VRS
This commit is contained in:
Thaddeus Crews
2025-04-17 09:14:23 -05:00
24 changed files with 178 additions and 18 deletions

View File

@@ -1546,6 +1546,11 @@ RID OpenXRInterface::get_vrs_texture() {
return RID();
}
RID density_map = openxr_api->get_density_map_texture();
if (density_map.is_valid()) {
return density_map;
}
PackedVector2Array eye_foci;
Size2 target_size = get_render_target_size();
@@ -1561,6 +1566,19 @@ RID OpenXRInterface::get_vrs_texture() {
return xr_vrs.make_vrs_texture(target_size, eye_foci);
}
XRInterface::VRSTextureFormat OpenXRInterface::get_vrs_texture_format() {
if (!openxr_api) {
return XR_VRS_TEXTURE_FORMAT_UNIFIED;
}
RID density_map = openxr_api->get_density_map_texture();
if (density_map.is_valid()) {
return XR_VRS_TEXTURE_FORMAT_FRAGMENT_DENSITY_MAP;
}
return XR_VRS_TEXTURE_FORMAT_UNIFIED;
}
void OpenXRInterface::set_cpu_level(PerfSettingsLevel p_level) {
OpenXRPerformanceSettingsExtension *performance_settings_ext = OpenXRPerformanceSettingsExtension::get_singleton();
if (performance_settings_ext && performance_settings_ext->is_available()) {