3850|6

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于S3C6410的2D加速的ALPHABLEND问题 [复制链接]

    如题,三星6410默认的显示驱动打开了2D加速,使用它的ALPHABLEND加速时,显示一小幅图片,要34到35MS

的样子,将2D加速全部关掉,显示一小幅图片,反而降到了27到28MS的样子,但是用同样的程序在魅族的M8机器

上试,显示该幅图片只要4到5MS,请问高手,有什么办法能够达到这个效果?不然我们机器上刷SHELL时会很慢!

最新回复

我的问题也搞定了。 手册写的寄存器配置不全!后来参考wince的驱动写的,现在可以实现bitblt的透明功能。800*600的时间大约是5~6ms 当时配置寄存器错误的几个地方如下: 1、DST_BASE_ADDR和SRC_BASE_ADDR要设置物理地址。不能是内核的虚拟地址或者应用程序中的地址。对于FB,要使用 dma_alloc_writecombine 第三个参数返回的物理地址 fbi->fix.smem_start。 2、在手册里bitblt没说要设置 clip 的寄存器,但是clip不设是不行的,感觉是使用默认值的0话就把图像全部剪掉了!我直接设为屏幕的分辨率了。 3、使用透明模式要设置的是 BS_COLOR,而不是BG_COLOR。开始我还以为是代码写错了。后来试了一下,感觉是手册写错了。Blue Screen Mode咋设置我就没有试了。 4、使用2D的画线和画点功能,也要设置DST_BASE_ADDR和clip的!手册里面都没说! 5、设置COORDn_X_REG+COORDn_Y_REG和设置COORDn_REG好像是一样的,都能跑。 代码详见 http://blog.chinaunix.net/u3/111323/showart.php?id=2200014  详情 回复 发表于 2010-3-26 10:05
点赞 关注

回复
举报

92

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
2D加速,最近可能要上这个,

帮顶下,MARK,期待做过这方面的高人、 、 、 、 、
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
没整过,关注一下!!!
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
lg~~~~~~~~~~~
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 
这几天也在弄6410的2D,不过我是linux的。
这两天在弄bitblt,最简单的从一块区域拷贝到另外一块区域显示。ALPHABLEND还没看过。
开发板的代码移植过来,根本不能用。
自己按照手册配置的寄存器,从FIFO state和中断来看,已经执行了。但是看不到任何效果!

开始怀疑是dst_addr、src_addr的问题。但后来试过Line Drawing,也不能画线!!!

现在都不知道怀疑啥了。网上也找不到资料。
希望借着贵地能一起讨论一下6410的2D。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
呵呵,我那个问题早已经解决了。

我这里是在WINCE6.0平台下的:

Bitblt的优化:打开显示驱动的precomp.h,里面有个G2D_ACCELERATE,这个是是否使用
              三星2D加速的总开关,关闭它,Bitblt可以优化到9MS的样子,不关大概
              20到30MS的样子吧!
alphablend:   precomp.h中,打开G2D_ACCELERATE,针对alphablend的宏设置如下:
  1.               #define G2D_BYPASS_HW_ALPHABLEND    (FALSE) //ture
  2.     /// Below is suboption
  3.     /// In our HW PPA feature has different bleding equation to SW.
  4.     #define G2D_BYPASS_PERPIXEL_ALPHABLEND          (FALSE)
  5.     /// In our HW SCA feature does not change alphavalue, so this can lead to test fail when repetive alphablending.
  6.     #define G2D_BYPASS_SOURCECONSTANT_ALPHABLEND    (FALSE)
  7.     /// This will run HW Bitblt twice, one for SCA and other for PPA, The result has incorrect alphabit
  8.     #define G2D_BYPASS_2STEP_PROCESS_PPA_AFTER_SCA  (FALSE)
复制代码

              设置好后重编显示驱动更新NK,alphablend可由原来的38MS变到2到4MS的样子。

STRETCHBLT的设置:同样在precomp.h里面,打开G2D_ACCELERATE,将G2D_BYPASS_HW_STRETCHBLT设置为0,可由原来的200MS左右的时间优化为14MS左右。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
我的问题也搞定了。
手册写的寄存器配置不全!后来参考wince的驱动写的,现在可以实现bitblt的透明功能。800*600的时间大约是5~6ms
当时配置寄存器错误的几个地方如下:
1、DST_BASE_ADDR和SRC_BASE_ADDR要设置物理地址。不能是内核的虚拟地址或者应用程序中的地址。对于FB,要使用 dma_alloc_writecombine 第三个参数返回的物理地址 fbi->fix.smem_start。
2、在手册里bitblt没说要设置 clip 的寄存器,但是clip不设是不行的,感觉是使用默认值的0话就把图像全部剪掉了!我直接设为屏幕的分辨率了。
3、使用透明模式要设置的是 BS_COLOR,而不是BG_COLOR。开始我还以为是代码写错了。后来试了一下,感觉是手册写错了。Blue Screen Mode咋设置我就没有试了。
4、使用2D的画线和画点功能,也要设置DST_BASE_ADDR和clip的!手册里面都没说!
5、设置COORDn_X_REG+COORDn_Y_REG和设置COORDn_REG好像是一样的,都能跑。

代码详见 http://blog.chinaunix.net/u3/111323/showart.php?id=2200014
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表