Re: [PATCH 0/3] fbuffer: performance improvement + code cleanup
From: Alexey Kardashevskiy <hidden>
Date: 2015-05-29 04:54:25
On 05/28/2015 11:13 PM, Greg Kurz wrote:
If booted in frame buffer mode, board-qemu currently calls hv-logical-load and hv-logical-store for every pixel when enabling or disabling the cursor. This is suboptimal when writing one char at a time to the console since terminal-write always toggles the cursor. And this is precisely what grub is doing when the user wants to edit a menu entry... the result is an incredibly slow and barely usable interface. This series introduces per-board helpers to be used by the frame buffer code, so that board-qemu may have its own accelarated implementation: - the first patch is preliminary cleanup, before moving code out to helpers. - the second patch introduces a helper to invert a memory region byte-per-byte: this fixes the unbearable slowliness of grub editing mode. - the third patch introduces a similar helper with a a quad-word pace: it doesn't bring any speed improvement since board-qemu already uses hv-logical-memop, but it allows to "unify hcall-invert-screen and fb8-invert-screen again". Please comment.
Thanks, I'll remove that extra line in 3/3 and push these today.
---
Greg Kurz (3):
fbuffer: simplify address computations in fb8-toggle-cursor
fbuffer: introduce the invert-region helper
fbuffer: introduce the invert-region-x helper
board-js2x/slof/helper.fs | 9 +++++++++
board-qemu/slof/helper.fs | 7 +++++++
board-qemu/slof/pci-device_1234_1111.fs | 10 +---------
slof/fs/fbuffer.fs | 8 +++-----
4 files changed, 20 insertions(+), 14 deletions(-)
--
Greg-- Alexey