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;
|
||||
struct wlr_drm_connector_state pending = {0};
|
||||
drm_connector_state_init(&pending, conn, state);
|
||||
|
||||
if (pending.active) {
|
||||
if ((state->committed & WLR_OUTPUT_STATE_ENABLED) ? state->enabled : output->enabled) {
|
||||
if ((state->committed &
|
||||
(WLR_OUTPUT_STATE_ENABLED | WLR_OUTPUT_STATE_MODE)) &&
|
||||
!(state->committed & WLR_OUTPUT_STATE_BUFFER)) {
|
||||
wlr_drm_conn_log(conn, WLR_DEBUG,
|
||||
"Can't enable an output without a buffer");
|
||||
goto out;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!drm_connector_alloc_crtc(conn)) {
|
||||
wlr_drm_conn_log(conn, WLR_DEBUG,
|
||||
"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) &&
|
||||
state->adaptive_sync_enabled &&
|
||||
!drm_connector_supports_vrr(conn)) {
|
||||
|
|
Loading…
Reference in a new issue