@ -475,6 +475,10 @@ static bool drm_crtc_commit(struct wlr_drm_connector *conn,
}
}
drm_connector_set_pending_page_flip ( conn , page_flip ) ;
drm_connector_set_pending_page_flip ( conn , page_flip ) ;
if ( state - > base - > committed & WLR_OUTPUT_STATE_MODE ) {
conn - > refresh = calculate_refresh_rate ( & state - > mode ) ;
}
} else {
} else {
// The set_cursor() hook is a bit special: it's not really synchronized
// The set_cursor() hook is a bit special: it's not really synchronized
// to commit() or test(). Once set_cursor() returns true, the new
// to commit() or test(). Once set_cursor() returns true, the new
@ -1466,6 +1470,7 @@ static bool connect_drm_connector(struct wlr_drm_connector *wlr_conn,
wlr_conn - > crtc - > props . mode_id , & mode_id ) ;
wlr_conn - > crtc - > props . mode_id , & mode_id ) ;
wlr_conn - > crtc - > mode_id = mode_id ;
wlr_conn - > crtc - > mode_id = mode_id ;
wlr_conn - > refresh = calculate_refresh_rate ( current_modeinfo ) ;
}
}
wlr_log ( WLR_INFO , " % " PRId32 " x% " PRId32 " @ %.3f Hz %s " ,
wlr_log ( WLR_INFO , " % " PRId32 " x% " PRId32 " @ %.3f Hz %s " ,
@ -1765,7 +1770,7 @@ static void handle_page_flip(int fd, unsigned seq,
. presented = drm - > session - > active ,
. presented = drm - > session - > active ,
. when = & present_time ,
. when = & present_time ,
. seq = seq ,
. seq = seq ,
. refresh = mhz_to_nsec ( conn - > output. refresh) ,
. refresh = mhz_to_nsec ( conn - > refresh) ,
. flags = present_flags ,
. flags = present_flags ,
} ;
} ;
wlr_output_send_present ( & conn - > output , & present_event ) ;
wlr_output_send_present ( & conn - > output , & present_event ) ;