Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

patch: shadowfb also for non-EFI boots



--- Begin Message ---
As nouveau doesn't work on my Thinkpad W701 with its NVIDIA G92
(see port-amd64/58305), I'm running it for non-test uses with

menu=Boot 10 nonouveautest:vesa 0x165;rndseed /etc/entropy-file;userconf disable nouveau*;boot netbsd10.test

with a patch suggested by RVP on tech-kern, as until a certain point in
the boot process, scrolling is very slow (about 1-2 seconds per line):

> Can you, instead, try changing this test:
> 
> https://github.com/NetBSD/src/blob/trunk/sys/arch/x86/x86/genfb_machdep.c#L156
> 
> to just:
> 
> ```
> 	if (x86_genfb_use_shadowfb) {
> ```
> 
> I see no reason why a shadow FB should be restricted to only EFI framebuffers.

I've tested this on the machine in question, netbsd10.1 userland, 
with netbsd10, netbsd11 and netbsd-11.99.5 kernels (with this patch),
and on a machine with intel graphics.

Should I proceed to commit? The change is appended as a patch; revisions
mentioned should be from my netbsd-10 source tree, but works unchanged
on 11 and current.

	-is


Index: x86/genfb_machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x86/x86/genfb_machdep.c,v
retrieving revision 1.19.4.4
diff -u -r1.19.4.4 genfb_machdep.c
--- x86/genfb_machdep.c	21 Oct 2023 12:59:25 -0000	1.19.4.4
+++ x86/genfb_machdep.c	5 Apr 2026 17:29:17 -0000
@@ -153,7 +153,7 @@
 	ri->ri_rpos = fbinfo->rpos;
 	ri->ri_gpos = fbinfo->gpos;
 	ri->ri_bpos = fbinfo->bpos;
-	if (x86_genfb_use_shadowfb && lookup_bootinfo(BTINFO_EFI) != NULL) {
+	if (x86_genfb_use_shadowfb) {
 		/* XXX The allocated memory is never released... */
 		ri->ri_bits = kmem_alloc(ri->ri_stride * ri->ri_height,
 		    KM_SLEEP);

--- End Message ---


Home | Main Index | Thread Index | Old Index