You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue was uncovered while investigating #3729.
Issue
The crux of the issue is in src/platforms/gbm-kms/server/kms/display.cpp.
Display::configure_locked (called by Display::configure) is responsible for associating incoming outptus with their DisplaySink. A DisplaySink is only created for an output when the output meets a number of conditions, one of which is being connected. Each DisplaySink has a shared_ptr reference to a RealKMSOutput.
When the configuration is requested by Display::configuration(), we update the properties of RealKMSOutputs to reflect its current status (e.g. the output may now be disconnected). The problem is, however, that an output that currently has a display sink may have been updated such that it should no longer have a display sink. However, the renderer thread is still running and submitting buffers to this sink which is associated with an invalid output.
Expected
A DisplaySink cannot be submitted for an output that does not deserve a sink. Or - perhaps even better! - the DisplaySink should be invalidated such that it will not be used by the renderer while the output is in an invalid state.
The text was updated successfully, but these errors were encountered:
This issue was uncovered while investigating #3729.
Issue
The crux of the issue is in
src/platforms/gbm-kms/server/kms/display.cpp
.Display::configure_locked
(called byDisplay::configure
) is responsible for associating incoming outptus with theirDisplaySink
. ADisplaySink
is only created for an output when the output meets a number of conditions, one of which is being connected. EachDisplaySink
has a shared_ptr reference to aRealKMSOutput
.When the configuration is requested by
Display::configuration()
, we update the properties ofRealKMSOutputs
to reflect its current status (e.g. the output may now be disconnected). The problem is, however, that an output that currently has a display sink may have been updated such that it should no longer have a display sink. However, the renderer thread is still running and submitting buffers to this sink which is associated with an invalid output.Expected
A
DisplaySink
cannot be submitted for an output that does not deserve a sink. Or - perhaps even better! - theDisplaySink
should be invalidated such that it will not be used by the renderer while the output is in an invalid state.The text was updated successfully, but these errors were encountered: