mbox series

[v4,0/3] Fix regression introduced by disabling accelerated scrolling in fbcon

Message ID 20220202135531.92183-1-deller@gmx.de
Headers show
Series Fix regression introduced by disabling accelerated scrolling in fbcon | expand

Message

Helge Deller Feb. 2, 2022, 1:55 p.m. UTC
This series reverts two patches which disabled scrolling acceleration in
fbcon/fbdev. Those patches introduced a regression for fbdev-supported graphic
cards because of the performance penalty by doing screen scrolling by software
instead of using existing 2D hardware acceleration.

The third patch introduces a new config option
CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION, which -if enabled- switches
fbcon to utilize the bitblt and fillrect hardware acceleration in the
framebuffer console. If disabled, such acceleration will not be used, even if
it is supported by the graphics hardware driver.

This series is being discussed on linux-fbdev and dri-devel mailing lists.

Updates in v3:
- respin with fixes to build rotation code

Updates in v4:
- changed the Kconfig option and Kconfig help text

Helge Deller (3):
  Revert "fbdev: Garbage collect fbdev scrolling acceleration, part 1
    (from TODO list)"
  Revert "fbcon: Disable accelerated scrolling"
  fbcon: Add option to enable legacy hardware acceleration

 Documentation/gpu/todo.rst              |  24 -
 drivers/video/console/Kconfig           |  20 +
 drivers/video/fbdev/core/bitblit.c      |  16 +
 drivers/video/fbdev/core/fbcon.c        | 557 +++++++++++++++++++++++-
 drivers/video/fbdev/core/fbcon.h        |  72 +++
 drivers/video/fbdev/core/fbcon_ccw.c    |  28 +-
 drivers/video/fbdev/core/fbcon_cw.c     |  28 +-
 drivers/video/fbdev/core/fbcon_rotate.h |   9 +
 drivers/video/fbdev/core/fbcon_ud.c     |  37 +-
 drivers/video/fbdev/core/tileblit.c     |  16 +
 drivers/video/fbdev/skeletonfb.c        |  12 +-
 include/linux/fb.h                      |   2 +-
 12 files changed, 753 insertions(+), 68 deletions(-)

Comments

Daniel Vetter Feb. 2, 2022, 3 p.m. UTC | #1
On Wed, Feb 02, 2022 at 02:55:28PM +0100, Helge Deller wrote:
> This series reverts two patches which disabled scrolling acceleration in
> fbcon/fbdev. Those patches introduced a regression for fbdev-supported graphic
> cards because of the performance penalty by doing screen scrolling by software
> instead of using existing 2D hardware acceleration.
> 
> The third patch introduces a new config option
> CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION, which -if enabled- switches
> fbcon to utilize the bitblt and fillrect hardware acceleration in the
> framebuffer console. If disabled, such acceleration will not be used, even if
> it is supported by the graphics hardware driver.
> 
> This series is being discussed on linux-fbdev and dri-devel mailing lists.
> 
> Updates in v3:
> - respin with fixes to build rotation code
> 
> Updates in v4:
> - changed the Kconfig option and Kconfig help text
> 
> Helge Deller (3):
>   Revert "fbdev: Garbage collect fbdev scrolling acceleration, part 1
>     (from TODO list)"
>   Revert "fbcon: Disable accelerated scrolling"
>   fbcon: Add option to enable legacy hardware acceleration

Applied to drm-misc-fixes, thanks for the patches.

Cheers, Daniel

> 
>  Documentation/gpu/todo.rst              |  24 -
>  drivers/video/console/Kconfig           |  20 +
>  drivers/video/fbdev/core/bitblit.c      |  16 +
>  drivers/video/fbdev/core/fbcon.c        | 557 +++++++++++++++++++++++-
>  drivers/video/fbdev/core/fbcon.h        |  72 +++
>  drivers/video/fbdev/core/fbcon_ccw.c    |  28 +-
>  drivers/video/fbdev/core/fbcon_cw.c     |  28 +-
>  drivers/video/fbdev/core/fbcon_rotate.h |   9 +
>  drivers/video/fbdev/core/fbcon_ud.c     |  37 +-
>  drivers/video/fbdev/core/tileblit.c     |  16 +
>  drivers/video/fbdev/skeletonfb.c        |  12 +-
>  include/linux/fb.h                      |   2 +-
>  12 files changed, 753 insertions(+), 68 deletions(-)
> 
> -- 
> 2.34.1
>
Geert Uytterhoeven Feb. 4, 2022, 8:37 a.m. UTC | #2
Hi Helge,

Thanks for your patch!

On Wed, Feb 2, 2022 at 8:05 PM Helge Deller <deller@gmx.de> wrote:
> Add a config option CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION to
> enable bitblt and fillrect hardware acceleration in the framebuffer
> console. If disabled, such acceleration will not be used, even if it is
> supported by the graphics hardware driver.

Note that this also applies to vertical panning and wrapping.


Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Helge Deller Feb. 4, 2022, 10:17 a.m. UTC | #3
Hello Geert,

On 2/4/22 09:37, Geert Uytterhoeven wrote:
> On Wed, Feb 2, 2022 at 8:05 PM Helge Deller <deller@gmx.de> wrote:
>> Add a config option CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION to
>> enable bitblt and fillrect hardware acceleration in the framebuffer
>> console. If disabled, such acceleration will not be used, even if it is
>> supported by the graphics hardware driver.
>
> Note that this also applies to vertical panning and wrapping.

That's correct.
Would you mind to send a patch which adds this info?

Helge
Geert Uytterhoeven Feb. 4, 2022, 10:24 a.m. UTC | #4
Hi Helge,

On Fri, Feb 4, 2022 at 11:17 AM Helge Deller <deller@gmx.de> wrote:
> On 2/4/22 09:37, Geert Uytterhoeven wrote:
> > On Wed, Feb 2, 2022 at 8:05 PM Helge Deller <deller@gmx.de> wrote:
> >> Add a config option CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION to
> >> enable bitblt and fillrect hardware acceleration in the framebuffer
> >> console. If disabled, such acceleration will not be used, even if it is
> >> supported by the graphics hardware driver.
> >
> > Note that this also applies to vertical panning and wrapping.
>
> That's correct.
> Would you mind to send a patch which adds this info?

To add it where? "bitblt and fillrect" are only mentioned in the patch
description.

The Kconfig help entry just talks about "hardware acceleration",
which can mean any trick supported by the hardware.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Helge Deller Feb. 4, 2022, 5:31 p.m. UTC | #5
Hi Geert,

On 2/4/22 11:24, Geert Uytterhoeven wrote:
> On Fri, Feb 4, 2022 at 11:17 AM Helge Deller <deller@gmx.de> wrote:
>> On 2/4/22 09:37, Geert Uytterhoeven wrote:
>>> On Wed, Feb 2, 2022 at 8:05 PM Helge Deller <deller@gmx.de> wrote:
>>>> Add a config option CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION to
>>>> enable bitblt and fillrect hardware acceleration in the framebuffer
>>>> console. If disabled, such acceleration will not be used, even if it is
>>>> supported by the graphics hardware driver.
>>>
>>> Note that this also applies to vertical panning and wrapping.
>>
>> That's correct.
>> Would you mind to send a patch which adds this info?
>
> To add it where? "bitblt and fillrect" are only mentioned in the patch
> description.
>
> The Kconfig help entry just talks about "hardware acceleration",
> which can mean any trick supported by the hardware.

Yes, I thought about extending the Kconfig help entry text to
mention vertical panning and wrapping as well.
If you have an idea how that should be phrased, I think it
makes sense to add it.

Helge