[Openchrome-devel] [Bug 100679] Garbled graphics when resuming from standby

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Apr 24 01:32:59 UTC 2017


--- Comment #35 from Kevin Brace <kevinbrace at gmx.com> ---
(In reply to Marty from comment #29)

Hi Marty,

I did a commit some new code into the master branch.
The current latest version as of now is Version 0.6.109.
The patch I uploaded so far is no longer valid, so you will not have to use it
The code is slightly different than the v1 patch, and I am hoping that it will
perform better than that one when resuming.
The code behavior is a little different for the 24-bit FP interface situation
(i.e., Your particular hardware.).
    Regarding the cursor not getting restored, it is a known issue, but so far,
I have not found a good fix for it other than the following workarounds for

1) Always attach a VGA monitor when resuming
2) Follow the workaround latalante has figured out (i.e., This is called VGA
BIOS rePOST on some desktop mainboard BIOS.)

I suspect the issue is intimately related to video accelerator since the
hardware cursor and video accelerator have some shared registers.
So far, I have not touched the video accelerator code, but I am afraid I may
have to eventually.
    Your particular model appears to have the issue of the VGA switching to
monochrome mode after resuming from standby.
I know I am sure you still see color on your display, but when IBM VGA was
developed in '80s, there still used to be a thing called monochrome mode, and
in this mode, the CRTC (Cathode Ray Tube Controller; something people still
used until early to mid 2000s, at least for desktop PCs) address switches to
03B5H rather than the normal 03D5H for color mode.
I have one model that exhibits this behavior (Sylvania g netbook), and when
this happens, the register dump from via_regs_tool becomes mostly useless.
This is what I mean,

. . .
Graphic Controller register dump (IO Port address: 0x3ce): 
   3cf.00 = 0x00 (Set / Reset)
   3cf.01 = 0x00 (Enable Set / Reset)
   3cf.02 = 0x00 (Color Compare)
   3cf.03 = 0x00 (Data Rotate)
   3cf.04 = 0x00 (Read Map Select)
   3cf.05 = 0x00 (Mode)
   3cf.06 = 0x00 (Miscellaneous)
   3cf.07 = 0x00 (Color Don't Care)
   3cf.08 = 0x00 (Bit Mask)
   3cf.20 = 0x00 (Offset Register Control)
   3cf.21 = 0x00 (Offset Register A)
   3cf.22 = 0x00 (Offset Register B)

CRT controller register dump (IO Port address: 0x3d4): 
   3d5.00 = 0xff (Horizontal Total)
   3d5.01 = 0xff (Horizontal Display End)
   3d5.02 = 0xff (Start Horizontal Blank)
   3d5.03 = 0xff (End Horizontal Blank)
   3d5.04 = 0xff (Start Horizontal Retrace)
   3d5.05 = 0xff (End Horizontal Retrace)
   3d5.06 = 0xff (Vertical Total)
   3d5.07 = 0xff (Overflow)
   3d5.08 = 0xff (Preset Row Scan)
   3d5.09 = 0xff (Max Scan Line)
   3d5.0a = 0xff (Cursor Start)
   3d5.0b = 0xff (Cursor End)
. . .

The 0xff means "there is nothing connected here" in this particular situation.
It is essentially emulating "bus high impedance (Hi-Z)" or no connection
situation for backward compatibility reasons.
This behavior is highly VIA Technologies VGA BIOS dependent, however, X Server
appears to have a way to cope with the occurrence.
In order to then read the register you will have to read off 03B5H registers
For example,

$ sudo ./via_regs_dump -r 3b5.96
$ sudo ./via_regs_dump -r 3b5.97
$ sudo ./via_regs_dump -r 3b5.99
$ sudo ./via_regs_dump -r 3b5.9b

Those registers are important in this case.

> Hi Kevin,
> After resume the screen is still not correctly restored. But the behaviour
> is different from V0.6.107 without patch:
> 1. The X-Server now at least allows to "recognize" the GUI (with correct
> size) and partly to read some things. But the whole screen is filled with
> big round colored artifacts. It looks very artistic! The mouse cursor seems
> to be invisible.
> 2. If I switch to VT I now get just a black screen. (I had never this
> before.)
> I am not sure if it has any value anymore. But I did reg-dumps after resume.
> Let me attach them again.
> Regards,
> Marty

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/openchrome-devel/attachments/20170424/9bba4467/attachment.html>

More information about the Openchrome-devel mailing list