Skip to content

Commit 026efbb

Browse files
committed
Merge pull request #111733 from DarioSamo/rendering-device-shutdown-fix
Do not begin a new frame during RenderingDevice's shutdown.
2 parents f3ebee1 + af584b1 commit 026efbb

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

servers/rendering/rendering_device.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6584,11 +6584,14 @@ void RenderingDevice::_stall_for_previous_frames() {
65846584
}
65856585
}
65866586

6587-
void RenderingDevice::_flush_and_stall_for_all_frames() {
6587+
void RenderingDevice::_flush_and_stall_for_all_frames(bool p_begin_frame) {
65886588
_stall_for_previous_frames();
65896589
_end_frame();
65906590
_execute_frame(false);
6591-
_begin_frame();
6591+
6592+
if (p_begin_frame) {
6593+
_begin_frame();
6594+
}
65926595
}
65936596

65946597
Error RenderingDevice::initialize(RenderingContextDriver *p_context, DisplayServer::WindowID p_main_window) {
@@ -7086,7 +7089,7 @@ void RenderingDevice::finalize() {
70867089

70877090
if (!frames.is_empty()) {
70887091
// Wait for all frames to have finished rendering.
7089-
_flush_and_stall_for_all_frames();
7092+
_flush_and_stall_for_all_frames(false);
70907093
}
70917094

70927095
// Wait for transfer workers to finish.

servers/rendering/rendering_device.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1587,7 +1587,7 @@ class RenderingDevice : public RenderingDeviceCommons {
15871587
void _execute_frame(bool p_present);
15881588
void _stall_for_frame(uint32_t p_frame);
15891589
void _stall_for_previous_frames();
1590-
void _flush_and_stall_for_all_frames();
1590+
void _flush_and_stall_for_all_frames(bool p_begin_frame = true);
15911591

15921592
template <typename T>
15931593
void _free_rids(T &p_owner, const char *p_type);

0 commit comments

Comments
 (0)