[PATCH 10/10] dcc-send: Fix freeze when video stream is stopped during ongoing draw
Michael Scherle
michael.scherle at rz.uni-freiburg.de
Thu Feb 27 11:03:32 UTC 2025
Prevent a freeze that occurs if the video stream is stopped while a
gl draw is in progress (e.g., when the client requests a new codec).
Ensure proper cleanup of the ongoing gl draw.
Signed-off-by: Michael Scherle <michael.scherle at rz.uni-freiburg.de>
---
server/dcc-send.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/server/dcc-send.cpp b/server/dcc-send.cpp
index 7bc20a22..71873563 100644
--- a/server/dcc-send.cpp
+++ b/server/dcc-send.cpp
@@ -2383,6 +2383,10 @@ static void marshall_gl_draw(DisplayChannelClient *dcc,
spice_marshall_msg_display_gl_draw(m, &p->draw);
} else if (DCC_TO_DC(dcc)->priv->gl_draw_stream) {
red_marshall_gl_draw_stream(dcc, m);
+ } else if (dcc->priv->gl_draw_ongoing) {
+ DisplayChannel *display = DCC_TO_DC(dcc);
+ dcc->priv->gl_draw_ongoing = false;
+ display_channel_gl_draw_done(display);
} else {
spice_warning("nothing to send to the client");
}
--
2.48.1
More information about the dri-devel
mailing list