mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 12:55:58 +01:00
backend/drm: Init connector after we try to allocate a crtc for it
drm_connect_state_init() will set primary_fd to null if no CRTC is active for the connector and can crash later if the code expects a CRTC (like when lighting up an output).
This commit is contained in:
parent
54e1fefd2e
commit
672ff1e14e
1 changed files with 7 additions and 7 deletions
|
@ -672,26 +672,26 @@ static bool drm_connector_test(struct wlr_output *output,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ok = false;
|
if ((state->committed & WLR_OUTPUT_STATE_ENABLED) ? state->enabled : output->enabled) {
|
||||||
struct wlr_drm_connector_state pending = {0};
|
|
||||||
drm_connector_state_init(&pending, conn, state);
|
|
||||||
|
|
||||||
if (pending.active) {
|
|
||||||
if ((state->committed &
|
if ((state->committed &
|
||||||
(WLR_OUTPUT_STATE_ENABLED | WLR_OUTPUT_STATE_MODE)) &&
|
(WLR_OUTPUT_STATE_ENABLED | WLR_OUTPUT_STATE_MODE)) &&
|
||||||
!(state->committed & WLR_OUTPUT_STATE_BUFFER)) {
|
!(state->committed & WLR_OUTPUT_STATE_BUFFER)) {
|
||||||
wlr_drm_conn_log(conn, WLR_DEBUG,
|
wlr_drm_conn_log(conn, WLR_DEBUG,
|
||||||
"Can't enable an output without a buffer");
|
"Can't enable an output without a buffer");
|
||||||
goto out;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!drm_connector_alloc_crtc(conn)) {
|
if (!drm_connector_alloc_crtc(conn)) {
|
||||||
wlr_drm_conn_log(conn, WLR_DEBUG,
|
wlr_drm_conn_log(conn, WLR_DEBUG,
|
||||||
"No CRTC available for this connector");
|
"No CRTC available for this connector");
|
||||||
goto out;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ok = false;
|
||||||
|
struct wlr_drm_connector_state pending = {0};
|
||||||
|
drm_connector_state_init(&pending, conn, state);
|
||||||
|
|
||||||
if ((state->committed & WLR_OUTPUT_STATE_ADAPTIVE_SYNC_ENABLED) &&
|
if ((state->committed & WLR_OUTPUT_STATE_ADAPTIVE_SYNC_ENABLED) &&
|
||||||
state->adaptive_sync_enabled &&
|
state->adaptive_sync_enabled &&
|
||||||
!drm_connector_supports_vrr(conn)) {
|
!drm_connector_supports_vrr(conn)) {
|
||||||
|
|
Loading…
Reference in a new issue