Scrolling in framebuffer syscons

Phileas Fogg phileas-fogg at mail.ru
Tue Feb 19 18:58:00 UTC 2013


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 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at 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


More information about the freebsd-hackers mailing list