public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Andrew Fish" <afish@apple.com>
To: edk2-devel-groups-io <devel@edk2.groups.io>, df7729@gmail.com
Subject: Re: [edk2-devel] SIMPLE_TEXT_OUTPUT_PROTOCOL and Video Resolution
Date: Wed, 16 Jun 2021 16:22:30 -0700	[thread overview]
Message-ID: <FB9411EB-B125-45D4-871E-AB1B5EEF13D9@apple.com> (raw)
In-Reply-To: <CAGRSmLs2krD38X8R3Yiy3Dk2yK1DoR+bsD0US04DKzbOY1+Z=A@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3979 bytes --]



> On Jun 16, 2021, at 2:45 PM, David F. <df7729@gmail.com> wrote:
> 
> Also, I found if there are 2 GOP handles and you change the mode of
> one, the other one doesn't reflect the change (but still doesn't solve
> anything with the original question), are you supposed to set the mode
> on every handle to keep that part in sync?
> 

A common implementation is to have the Conspliter [1] driver that produces virtual handles that aggregate how many actual devices you have and manages policy. 

You should grab the protocols on the gST->ConsoleOutHandle as these are the Spec defined active console devices. 


In terms on Simple Text Output Protocol on Graphics this is the default driver in edk2 [2]. These are the config knobs you can set from your DSC file to control defaults. 

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution ## SOMETIMES_CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution   ## SOMETIMES_CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow                 ## SOMETIMES_CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn              ## SOMETIMES_CONSUMES
Note: If you have serial active that may mess with the Conspliter and force it to pick a lower resolution since it has to find the best match between the serial and graphics Simple Text In. So try the Graphics without the serial terminal connect to see if it does different stuff. 


[1] https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Universal/Console/ConSplitterDxe <https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Universal/Console/ConSplitterDxe>

[2] https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Universal/Console/GraphicsConsoleDxe <https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Universal/Console/GraphicsConsoleDxe>


Thanks,

Andrew Fish

> On Tue, Jun 15, 2021 at 11:33 PM David F. via groups.io
> <df7729=gmail.com@groups.io> wrote:
>> 
>> Hello,
>> 
>> I've found that most implementation of UEFI don't automatically change
>> the resolution when setting the mode with STOP (Simple Text Output
>> Protocol) .  You can use GOP to change it after the mode but that
>> causes other problems.  For example, using surface pro 7 in this case,
>> with 4K screen.  The default text mode is 342x96 which puts it in
>> 2736x1824 mode which you'd expect and the text is tiny.  But now you
>> set the mode to 0 which is 80x25 and it actually sets the mode to
>> 2736x1824 if not already in that resolution and uses a 80x25 area in
>> the center of the screen, still tiny text you can hardly read.  If you
>> then say you want GOP in 640x480 mode (which is available as GOP mode
>> 1 on this system, it will make the font larger but you can't see
>> anything because it's still offset to the middle of the 2736x1824 area
>> and you're only seeing the 640x480 upper left of that area on the
>> screen.   Likewise if you have it in 342x96 so it's fully in the upper
>> left corner of the screen and change the mode to say 800x600
>> (available as GOP mode 2 on this system) it will make the text
>> readable but the text can go off the screen in both directions because
>> it's still 342x96 when the 100x31 STOP mode would be the correct one
>> (which happens to be mode 2 on this system).
>> 
>> Shouldn't setting the STOP mode handle adjusting the resolution since
>> that's the main reason you want to change the mode so the size shown
>> on the screen changes to something you can read.
>> 
>> Any tricks? I've tried a bunch of things, resetting the controller,
>> using the Reset() protocol function, and other things but nothing
>> works.  As soon as you use STOP to set the mode, it is back to high
>> resolution and using an area centered in the screen and changing the
>> resolution after that leaves it in the area centered in the high res
>> screen and not in the upper left area.
>> 
>> Thanks.
>> 
> 
> 
> 
> 
> 


[-- Attachment #2: Type: text/html, Size: 11042 bytes --]

  reply	other threads:[~2021-06-16 23:22 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAGRSmLuizR=TQgKQOALmhyZxqTgUxQxP2W7BM5ruG7QjARQPXw@mail.gmail.com>
2021-06-16  6:32 ` SIMPLE_TEXT_OUTPUT_PROTOCOL and Video Resolution David F.
     [not found] ` <1688FC67A39CB5DB.19105@groups.io>
2021-06-16 21:45   ` [edk2-devel] " David F.
2021-06-16 23:22     ` Andrew Fish [this message]
2021-06-23 10:24       ` Laszlo Ersek
2021-06-23 16:57         ` Andrew Fish
2021-06-23 19:23           ` Laszlo Ersek
2021-06-24  0:34         ` David F.

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=FB9411EB-B125-45D4-871E-AB1B5EEF13D9@apple.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox