Commit a7de3f4
linux-pipewire: Dup syncobj fds
PipeWire format renegotiation runs in parallel with video rendering.
When the stream format is renegotiated, PipeWire removes the existing
buffers and closes the syncobj file descriptors. At the same time, the
video rendering thread may try to import the (already closed) syncobj
acquire fd, and hang on waiting for the fence to become available.
This is not a problem for the dmabuf fd because it's imported into a
texture right away, which doesn't disappear when PipeWire closes the fd.
This commit adds duping to the syncobj fds so that they too remain open
as long as the rendering thread may access them.1 parent 7092bc1 commit a7de3f4
1 file changed
+12
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
| |||
765 | 766 | | |
766 | 767 | | |
767 | 768 | | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
768 | 772 | | |
769 | 773 | | |
770 | 774 | | |
771 | 775 | | |
772 | | - | |
| 776 | + | |
773 | 777 | | |
774 | 778 | | |
775 | | - | |
| 779 | + | |
| 780 | + | |
776 | 781 | | |
777 | 782 | | |
778 | 783 | | |
| |||
1179 | 1184 | | |
1180 | 1185 | | |
1181 | 1186 | | |
| 1187 | + | |
| 1188 | + | |
1182 | 1189 | | |
1183 | 1190 | | |
1184 | 1191 | | |
| |||
1409 | 1416 | | |
1410 | 1417 | | |
1411 | 1418 | | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
1412 | 1422 | | |
1413 | 1423 | | |
1414 | 1424 | | |
| |||
0 commit comments