Bug 145298

Summary: font linedraw characters visual glitch
Product: [openSUSE] openSUSE 10.3 Reporter: Jan Engelhardt <jengelh>
Component: BasesystemAssignee: Anna Maresova <anicka>
Status: VERIFIED FEATURE QA Contact: E-mail List <qa-bugs>
Severity: Enhancement    
Priority: P4 - Low CC: forgotten_Xh41Ao4q6j
Version: Final   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Found By: Beta-Customer Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: x
dash.fnt
real world screenshot using camera

Description Jan Engelhardt 2006-01-24 20:04:06 UTC
The horizontal bar (on cp437 that'd be char 196) in the font that's used when the terminal is probed is only 7 wide rather than 8 (8 is what most VGA ROMs have). 1. it does not look cosmetically right (dashed lines in yast), 2. it is a little bit ambiguous to the normal dash (ASCII 45).
Comment 1 Jan Engelhardt 2006-01-29 09:44:20 UTC
I found out something interesting :

Each character takes 9 pixels on the screen. Only on certain 'ASCII positions' (execute `showconsolefont`), the 8th character is duplicated for the 9th pixel. This is done for positions 192 to 223 _only_. Because the default-used SUSE font (lat9w-16.psfu) does not have its linedrawing characters there (see `showconsolefont`), the bugreported effect happens.

The "total default" font that is set when executing `setfont` without any arguments does not have this effect, as have most of the 4096-byte .fnt fonts.
Comment 2 Juergen Weigert 2006-03-15 13:04:35 UTC
what do I need to do to reproduce that?
yast shows me perfect graphics even after 'setfont'
Comment 3 Jan Engelhardt 2006-03-15 13:46:40 UTC
Created attachment 73014 [details]
x
Comment 4 Jan Engelhardt 2006-03-15 13:48:01 UTC
Created attachment 73015 [details]
dash.fnt
Comment 5 Jan Engelhardt 2006-03-15 13:55:29 UTC
See the screenshot. This is SUSE 10.1 Beta 5 (should break with any version though) i386 CD 1, booted with the default language and Text Mode. Running it in VMware does not affect anything, since yast loads its own font (lat9w-16.psfu.gz) anyway.

As you can see, the horizontal bars have a hole. (This is again, not a VMware bug.) To see what I described in #1: On an installed system, switch to tty1 and load the attached dash.fnt, which will set all character positions >= 128 to a contiguous horizontal dash. Start gpm so you can hover the mouse. Run `showconsolefont` now and hover the mouse above the characters from block 2 row 5 and row 6 (character positions 192 to 223). You should see a black dash within the white mouse pointer. If you now hover over any other of the dashes, the dash does not completely fill the mouse pointer.

Fonts are usually 8 pixels wide, but graphic cards output 720x400 mode, which means 9 pixels per character. Obviously, one is reproduced. For line graphics, this must be done, on the other chars (mostly text), the 9th position stays blank, which is what you can see with `showconsolefont`.
Comment 6 Jan Engelhardt 2006-03-15 13:57:56 UTC
Why does it show up in Yast? Because the loaded font has the horizontal line at position 128. When textmode yast has started in the install cd, run `setfont t` on tty2. Change back, you see the e-accent-grave (è). Back on tty2, running `showconsole` reveals that è (and the previous line draw character, respectively) is not within 192-223.
Comment 7 Juergen Weigert 2006-03-15 15:02:16 UTC
at tty1:
# gpm
# setfont dash.fnt.bz
# showconsolefont
right half of the matrix is all dashes. all equal. 
They all fill the block cursor completly.

Looks like I still lack a way to get the duplicated 8th column at all.
Comment 8 Jan Engelhardt 2006-03-15 19:31:07 UTC
Use a standard graphics card in a desktop system (reproducing does not always
work with laptops because they do not output in 720x400, but some graphics
mode). Or use VMware (or some variant of it, like VMware Player).
Comment 9 Juergen Weigert 2006-03-16 11:36:10 UTC
Using ATI 3D Rage Pro in my PIII desktop system -- pretty standard, I guess.
I don't know much about VMware, never tested. Can you test without VMware?
Comment 10 Jan Engelhardt 2006-04-02 19:45:21 UTC
Strange enough this does not happen outside VMware!
Comment 11 Jan Engelhardt 2006-04-03 08:35:31 UTC
Persists outside VMware. Try a CRT monitor to see the effect, LCD/TFT ones tend to blur it when they resize 80x25 (normally 720x400) to 1024x768.
Comment 12 Juergen Weigert 2006-06-21 17:41:13 UTC
I have no blurr effects. All pixels are clearly visible, nothing gets duplicated, no gaps remain.

I still do not know how to set up such a mode, where an 8th column is duplicated. All I try works with 8 pixels per cell.

I presume, my framebuffer prefers 640x400 pixels in 80x25 mode. 
which is not a bad choice...

I'll close this bug with worksforme now.
Comment 13 Jan Engelhardt 2006-06-21 18:10:34 UTC
Please disable any framebuffer whatsoever and use the regular 80x25 that was present back in 1990 and still is today. (Monitors which can display their current pixel size show 720x400. 640x400 will NOT show the issue.) IOW, this means: vga=0 or the "Text mode" from the CD's bootloader.
Comment 14 Jan Engelhardt 2007-11-28 17:08:47 UTC
Reproduced without VMware.
Comment 15 Jan Engelhardt 2007-11-28 17:11:57 UTC
Created attachment 185120 [details]
real world screenshot using camera

setfont lat9w-16
Graphics card is a nvidia gf2 mx400 ("NV11", VID:PID=10de:0110) - if you have something from that era or manufacturer, please have a look. On an ATI Technologies Inc Radeon Mobility M6 LY (VID:PID=1002:4c59), the problem does not appear, but that does not mean nv should be ignored. Also note this is 80x25 (vga=normal)!
Comment 16 Michal Marek 2008-09-03 15:46:21 UTC
-> new maintainer
Comment 18 Forgotten User Xh41Ao4q6j 2010-11-27 20:29:23 UTC
Is this solved in current versions? 

(just shaking old bugs during openSUSE Bug Day)
Comment 19 Forgotten User Xh41Ao4q6j 2010-11-29 00:39:50 UTC
Enhancements should be moved http://features.opensuse.org .
Comment 20 Jan Engelhardt 2013-09-30 23:30:03 UTC
Note to self: The issue is still present in openSUSE 12.3 and is reproducible with VirtualBox as well.