2

我正在尝试在英特尔 j1900 cpu(高清显卡 gen7)上运行带有 eglfs 的 Qt5。运行应用程序时我收到错误

Could not queue DRM page flip on screen DP1 (Invalid argument)

查看我在第 294 行看到的 eglfs 的来源

FrameBuffer *fb = framebufferForBufferObject(m_gbm_bo_next);
ensureModeSet(fb->fb);

QKmsOutput &op(output());
const int fd = device()->fd();
m_flipPending = true;
int ret = drmModePageFlip(fd,
                          op.crtc_id,
                          fb->fb,
                          DRM_MODE_PAGE_FLIP_EVENT,
                          this);
if (ret) {
    qErrnoWarning("Could not queue DRM page flip on screen %s", qPrintable(name()));
    m_flipPending = false;
    gbm_surface_release_buffer(m_gbm_surface, m_gbm_bo_next);
    m_gbm_bo_next = nullptr;
    return;
}

for (CloneDestination &d : m_cloneDests) {
    if (d.screen != this) {
        d.screen->ensureModeSet(fb->fb);
        d.cloneFlipPending = true;
        int ret = drmModePageFlip(fd,
                                  d.screen->output().crtc_id,
                                  fb->fb,
                                  DRM_MODE_PAGE_FLIP_EVENT,
                                  d.screen);
        if (ret) {
            qErrnoWarning("Could not queue DRM page flip for clone screen %s", qPrintable(name()));
            d.cloneFlipPending = false;
        }
    }
}

http://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp?h=5.11#n294

我似乎找不到 eglfs 不使用 vsync 的方法,并且使用下面的 env varibles 并没有什么不同

QT_QPA_EGLFS_SWAPINTERVAL
QT_QPA_EGLFS_FORCEVSYNC
FB_MULTI_BUFFER
QT_QPA_EGLFS_FORCE888
4

0 回答 0