Port-luna68k archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lunafb(4) improvement



Hello, luna68k users,

This patch improves lunafb(4) performance, using VRAM ROP feature.
 http://www.pastel-flower.jp/~isaki/NetBSD/patch/lunafb-20220923.diff

It is about 4 times faster on 4bpp board even without asm.  Using asm
improves it by additional 5% (By default, asm is enabled).
The patch has no new features.

I confirmed it on 4bpp board on the real LUNA-I and 1/4/8bpp
configuration on nono emulator (though 8bpp is under development).
On 8bpp board, the patch acts as 4bpp.  

Any comments?, or may I commit it?

Here are major TODOs and issues:
- hwplanecount and rowattr[] should be stored in something like
  ri->ri_hw or softc.  This needs moving om_hwdevconfig definition to
  somewhere or reconstruction of lunafb.c and omrasops.c.
- om{1,4}_copycols that is not frequently called should also be merged
  in the future.
- 8 bytes offset in OMFB_FB_[RW]ADDR definition should be removed.
  It is used to make horizontal offset but should be achieved in a
  different way.

As a side note, this was first developped by Y.Sugahara back in late
2019.  His original implementation has also supported SIXEL graphics
and Japanese Kanji outputs (with the aid of the original userland font
loader, it stores the fonts to non-displayed area in VRAM) for
demonstration.  I removed such funny demo features and extracted only
performance improvements, because these are not essential features.
If some of you are interested in, dig this repository (though most
logs and comments are written in Japanese):
 https://github.com/isaki68k/netbsd-src/tree/lunafb

Thanks,
---
Tetsuya Isaki <isaki%pastel-flower.jp@localhost / isaki%NetBSD.org@localhost>


Home | Main Index | Thread Index | Old Index