|
@@ -855,18 +855,19 @@ bool OpenXRAPI::create_swapchains() {
|
|
|
}
|
|
|
|
|
|
if (swapchain_format_to_use == 0) {
|
|
|
- swapchain_format_to_use = usable_swapchain_formats[0]; // just use the first one and hope for the best...
|
|
|
- print_line("Couldn't find usable depth swap chain format, using", get_swapchain_format_name(swapchain_format_to_use), "instead.");
|
|
|
+ print_line("Couldn't find usable depth swap chain format, depth buffer will not be submitted.");
|
|
|
} else {
|
|
|
print_verbose(String("Using depth swap chain format:") + get_swapchain_format_name(swapchain_format_to_use));
|
|
|
- }
|
|
|
|
|
|
- if (!create_swapchain(XR_SWAPCHAIN_USAGE_SAMPLED_BIT | XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, swapchain_format_to_use, recommended_size.width, recommended_size.height, view_configuration_views[0].recommendedSwapchainSampleCount, view_count, swapchains[OPENXR_SWAPCHAIN_DEPTH].swapchain, &swapchains[OPENXR_SWAPCHAIN_DEPTH].swapchain_graphics_data)) {
|
|
|
- return false;
|
|
|
- }
|
|
|
+ // Note, if VK_FORMAT_D32_SFLOAT is used here but we're using the forward+ renderer, we should probably output a warning.
|
|
|
|
|
|
- depth_views = (XrCompositionLayerDepthInfoKHR *)memalloc(sizeof(XrCompositionLayerDepthInfoKHR) * view_count);
|
|
|
- ERR_FAIL_NULL_V_MSG(depth_views, false, "OpenXR Couldn't allocate memory for depth views");
|
|
|
+ if (!create_swapchain(XR_SWAPCHAIN_USAGE_SAMPLED_BIT | XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, swapchain_format_to_use, recommended_size.width, recommended_size.height, view_configuration_views[0].recommendedSwapchainSampleCount, view_count, swapchains[OPENXR_SWAPCHAIN_DEPTH].swapchain, &swapchains[OPENXR_SWAPCHAIN_DEPTH].swapchain_graphics_data)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ depth_views = (XrCompositionLayerDepthInfoKHR *)memalloc(sizeof(XrCompositionLayerDepthInfoKHR) * view_count);
|
|
|
+ ERR_FAIL_NULL_V_MSG(depth_views, false, "OpenXR Couldn't allocate memory for depth views");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// We create our velocity swapchain if:
|
|
@@ -1837,6 +1838,7 @@ RID OpenXRAPI::get_color_texture() {
|
|
|
}
|
|
|
|
|
|
RID OpenXRAPI::get_depth_texture() {
|
|
|
+ // Note, image will not be acquired if we didn't have a suitable swap chain format.
|
|
|
if (submit_depth_buffer && swapchains[OPENXR_SWAPCHAIN_DEPTH].image_acquired) {
|
|
|
return graphics_extension->get_texture(swapchains[OPENXR_SWAPCHAIN_DEPTH].swapchain_graphics_data, swapchains[OPENXR_SWAPCHAIN_DEPTH].image_index);
|
|
|
} else {
|