Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Mar 2022 13:40:57 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 261751] vt mouse pointer background display bug
Message-ID:  <bug-261751-227-LZ4iLQ0Ldf@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-261751-227@https.bugs.freebsd.org/bugzilla/>

index | next in thread | previous in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261751

--- Comment #4 from Ed Maste <emaste@freebsd.org> ---
Thank you for the photo, I have an idea what's happening here and why I don't
see it. I believe this issue is reproducible with vt_vga only, not with an EFI
framebuffer.

In sys/dev/vt/hw/vga/vt_vga.c:vga_bitblt_one_text_pixels_block() there is an
optimized special case for a "pixel block" having only two colours, and a more
general case for n colours. In the case in your photo we are using the general
case.

I suspect the general case has the R and B channels swapped.  If you can easily
try a patch we could confirm this by disabling the optimization. For example,

diff --git a/sys/dev/vt/hw/vga/vt_vga.c b/sys/dev/vt/hw/vga/vt_vga.c
index 563867399e53..c8041f1dac8b 100644
--- a/sys/dev/vt/hw/vga/vt_vga.c
+++ b/sys/dev/vt/hw/vga/vt_vga.c
@@ -770,7 +770,7 @@ vga_bitblt_one_text_pixels_block(struct vt_device *vd,
         * The pixels block is completed, we can now draw it on the
         * screen.
         */
-       if (used_colors == 2)
+       if (0 && used_colors == 2)
                vga_bitblt_pixels_block_2colors(vd, pattern_2colors, fg, bg,
                    x, y, vf->vf_height);
        else

If I am correct this would result in a display that is consistently incorrect
-- the entire dialog background would be red, not just the location of the
mouse cursor.

-- 
You are receiving this mail because:
You are the assignee for the bug.

help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-261751-227-LZ4iLQ0Ldf>