backend/drm: move legacy-specific checks to legacy.c
Now that we have a test_only arg in crtc_commit, we can move the legacy checks to legacy.c.
This commit is contained in:
parent
017555651b
commit
fde56c20b4
|
@ -419,14 +419,6 @@ static bool drm_connector_set_pending_fb(struct wlr_drm_connector *conn,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WLR_OUTPUT_STATE_BUFFER_SCANOUT:;
|
case WLR_OUTPUT_STATE_BUFFER_SCANOUT:;
|
||||||
/* Legacy never gets to have nice things. But I doubt this would ever work,
|
|
||||||
* and there is no reliable way to try, without risking messing up the
|
|
||||||
* modesetting state. */
|
|
||||||
if (drm->iface == &legacy_iface) {
|
|
||||||
wlr_drm_conn_log(conn, WLR_DEBUG,
|
|
||||||
"Cannot use direct scan-out with legacy KMS API");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!drm_fb_import(&plane->pending_fb, drm, state->buffer,
|
if (!drm_fb_import(&plane->pending_fb, drm, state->buffer,
|
||||||
&crtc->primary->formats)) {
|
&crtc->primary->formats)) {
|
||||||
wlr_drm_conn_log(conn, WLR_DEBUG,
|
wlr_drm_conn_log(conn, WLR_DEBUG,
|
||||||
|
|
|
@ -8,9 +8,24 @@
|
||||||
#include "backend/drm/iface.h"
|
#include "backend/drm/iface.h"
|
||||||
#include "backend/drm/util.h"
|
#include "backend/drm/util.h"
|
||||||
|
|
||||||
|
static bool legacy_crtc_test(struct wlr_drm_connector *conn,
|
||||||
|
const struct wlr_output_state *state) {
|
||||||
|
if ((state->committed & WLR_OUTPUT_STATE_BUFFER) &&
|
||||||
|
state->buffer_type == WLR_OUTPUT_STATE_BUFFER_SCANOUT) {
|
||||||
|
wlr_drm_conn_log(conn, WLR_DEBUG,
|
||||||
|
"Cannot use direct scan-out with legacy KMS API");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static bool legacy_crtc_commit(struct wlr_drm_backend *drm,
|
static bool legacy_crtc_commit(struct wlr_drm_backend *drm,
|
||||||
struct wlr_drm_connector *conn, const struct wlr_output_state *state,
|
struct wlr_drm_connector *conn, const struct wlr_output_state *state,
|
||||||
uint32_t flags, bool test_only) {
|
uint32_t flags, bool test_only) {
|
||||||
|
if (!legacy_crtc_test(conn, state)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (test_only) {
|
if (test_only) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue