Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Feb 2013 20:57:53 +0100
From:      Phileas Fogg <phileas-fogg@mail.ru>
To:        Oleksandr Tymoshenko <gonzo@freebsd.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Scrolling in framebuffer syscons
Message-ID:  <5123D941.2050906@mail.ru>
In-Reply-To: <51217854.8000508@freebsd.org>
References:  <511F879C.3030801@mail.ru> <51217854.8000508@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Oleksandr Tymoshenko wrote:
> On 2/16/2013 5:20 AM, Phileas Fogg wrote:
>> Hi,
>>
>> i have a question about how the scrolling in a framebuffer syscons works.
>> I'm trying to speed up the syscons on the PS3 console  which is a simple
>> framebuffer syscons.
>> It uses the renderer _gfbrndrsw_ (see dev/syscons/scgfbrndr.c) to draw into
>> the framebuffer of the PS3 console.
>> The _gfb_draw_ function implements a simple scrolling that moves data from
>> bottom to top with _vidd_copy_.
>> And that's where i have a problem because _vidd_copy_ calls the function
>> _ps3fb_copy_ (see powerpc/ps3/ps3_syscons.c).
>> But the function _ps3fb_copy_ is NOT implemented yet. So, the question is how
>> does the scrolling work then ?
>> I took a look at other syscons implementation based on a framebuffer, and
>> almost all of them do NOT implement _vidd_copy_
>> function, e.g. XBOX syscons.
>
> I think driver re-renders whole screen character by character. That's why no
> copy operation is invoked.
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"

You are right, syscons is using the teken terminal emulator which implements 
scrolling in software. The vidd_copy callback is never called. To optimize the 
PS3 syscons driver, i have to speed up vidd_puts and vidd_putc callbacks.

regards



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5123D941.2050906>