zlgopen / awtk-linux-fb

awtk port for linux framebuffer
108 stars 49 forks source link

Linux上G2D支持有些不优雅 #101

Open tracewong opened 1 year ago

tracewong commented 1 year ago

当前G2D类似的2D加速模块AWTK在Linux上支持有一些麻烦

因为当前awtk上G2D支持都是基于裸机实现的,内存地址直接是物理内存地址,给G2D是没有任何问题的。

但是Linux的适配中,无论是gb还是fb,用户层操作的都是虚拟内存。实际给G2D的时候需要转换成物理内存, 这里转换时有两种主要的操作方式:

  1. G2D单独申请一块物理连续的内存,然后将gb拷贝到这款内存,转换后送给fb
  2. 绘制gb的buffer申请时就使用物理连续内存,G2D使用时直接使用这块内存,转换后送给fb

上述第1种实现对当前awtk代码框架没有修改,但是会多一次拷贝,实现起来不优雅 上述第2中实现需要awtk上绘制相关的实现做一些不太大的修改,希望官方可以考虑一下