@@ -258,16 +258,15 @@ void OpenXRFrameSynthesisExtension::on_main_swapchains_created() {
258258 }
259259}
260260
261- void OpenXRFrameSynthesisExtension::on_pre_render ( ) {
261+ void OpenXRFrameSynthesisExtension::on_pre_draw_viewport (RID p_render_target ) {
262262 if (!frame_synthesis_ext) {
263263 return ;
264264 }
265265
266266 OpenXRAPI *openxr_api = OpenXRAPI::get_singleton ();
267267 ERR_FAIL_NULL (openxr_api);
268268
269- size_t view_count = render_state.config_views .size ();
270- if (!enabled || view_count != 2 || render_state.skip_next_frame ) {
269+ if (!enabled || render_state.config_views .size () != 2 || render_state.frame_synthesis_info .size () != 2 || render_state.skip_next_frame ) {
271270 // Unset these just in case.
272271 openxr_api->set_velocity_texture (RID ());
273272 openxr_api->set_velocity_depth_texture (RID ());
@@ -319,7 +318,7 @@ void OpenXRFrameSynthesisExtension::on_pre_render() {
319318
320319void OpenXRFrameSynthesisExtension::on_post_draw_viewport (RID p_render_target) {
321320 // Check if our extension is supported and enabled.
322- if (!frame_synthesis_ext || !enabled || render_state.config_views .size () != 2 || render_state.skip_next_frame ) {
321+ if (!frame_synthesis_ext || !enabled || render_state.config_views .size () != 2 || render_state.frame_synthesis_info . size () != 2 || render_state. skip_next_frame ) {
323322 return ;
324323 }
325324
@@ -331,7 +330,7 @@ void OpenXRFrameSynthesisExtension::on_post_draw_viewport(RID p_render_target) {
331330
332331void *OpenXRFrameSynthesisExtension::set_projection_views_and_get_next_pointer (int p_view_index, void *p_next_pointer) {
333332 // Check if our extension is supported and enabled.
334- if (!frame_synthesis_ext || !enabled || render_state.config_views .size () != 2 ) {
333+ if (!frame_synthesis_ext || !enabled || render_state.config_views .size () != 2 || render_state. frame_synthesis_info . size () != 2 ) {
335334 return nullptr ;
336335 }
337336
@@ -344,14 +343,8 @@ void *OpenXRFrameSynthesisExtension::set_projection_views_and_get_next_pointer(i
344343 return nullptr ;
345344 }
346345
347- // Check if we can run frame synthesis.
348- size_t view_count = render_state.config_views .size ();
349- if (enabled && view_count == 2 ) {
350- render_state.frame_synthesis_info [p_view_index].next = p_next_pointer;
351- return &render_state.frame_synthesis_info [p_view_index];
352- }
353-
354- return nullptr ;
346+ render_state.frame_synthesis_info [p_view_index].next = p_next_pointer;
347+ return &render_state.frame_synthesis_info [p_view_index];
355348}
356349
357350bool OpenXRFrameSynthesisExtension::is_available () const {
0 commit comments