nuc972平台qt+dfb+2d简单性能对比测试

经过一段时间的DirectFB学习之后,终于在nuc972平台上将qt+dfb+2d硬件加速跑通了,这边先做了一个简单的性能对比测试,测试单纯跑qt和跑qt+dfb+2d的效果对比试验。

测试内容为让一个窗口绕着屏幕跑圈圈,qt代码如下:

/* tdialog.h */

#ifndef TDIALOG_H_
#define TDIALOG_H_

#include <QtGui>
#include <QDialog>


static QDialog* m_Dialog;

class TDialog : public QDialog
{
    Q_OBJECT
public:
    TDialog();

    virtual ~TDialog();

protected:
    void timerEvent(QTimerEvent *event);

private:
    int m_nTimerId;
};

#endif

/* main.cpp */

#include <QtGui>
#include <QDialog>
#include "tdialog.h"

static TDialog* m_TDialog;

TDialog::TDialog()
{   
    m_nTimerId = startTimer(0);    
}

TDialog::~TDialog()
{
    if(0 != m_nTimerId)  
    {
       killTimer(m_nTimerId); 
    }
}

void TDialog::timerEvent(QTimerEvent *event)
{
    static int x = 0, y = 0;

    if(x < 600 && y == 0)
    {
        x += 10;
    }
    else if(x == 600 && y < 300)
    {
        y += 10;
    }
    else if(x > 0 && y == 300)
    {
        x -= 10;
    }
    else if(x == 0 && y > 0)
    {
        y -= 10;
    }
   
    this->move(x, y);
}


int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    m_TDialog = new TDialog();

    m_TDialog->resize(200, 120);

    m_TDialog->move(0, 0);

    m_TDialog->show();

    return app.exec();
}

我们先来看单独跑qt的效果,如下视频:

(尝试在这里添加视频,但是未成功,请移步优酷观看)

nuc972平台qt测试之窗口移动实验

看完单独跑qt的效果我们再来看下跑qt+dfb+2d的测试效果,如下:

(尝试在这里添加视频,但是未成功,请移步优酷观看)

nuc972平台qt+dfb+2d测试之窗口移动实验

可以看出首先视觉上启用了2D硬件加速后窗口跑的更快了,然后在从CPU的使用情况来看,跑qt+dfb+2d时CPU使用率在60%左右,而单独跑qt的CPU使用率已接近100%,可以看出使用了2D硬件加速后性能提升明显。本次测试主要影响性能的就是矩形填充和块传输了,在没有硬件支持的情况下CPU需要通过memset和memcpy函数来实现这两点所以是非常影响性能的,特别是memcpy函数。

我这边适配的dfb硬件加速驱动也只适配了画线、矩形填充,Bitblt块传输,还有alpha混合等更强大的功能暂未做适配,后续将把它更完善后整理出来分享给大家使用。

nuc972开发板购买地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值