If you know you have the right handle, the most likely problem is the GOP
driver. Almost every system I've come across has problems with driver
implementations. Even popular ones. Microsoft's Surface's Flush() for
simple file system doesn't work properly, for example. Many systems will
crash with improperly formatted boot entries. The list goes on. A lot of
stuff doesn't get used heavily and probably doesn't get tested heavily,
either. You just kinda have to work around it or limit your software to
specific machines that you've tested. I'm sure it will get better over time.
On Wed, Oct 8, 2014 at 5:43 PM, J. E. <[email protected]> wrote:
> I always use the last handle in the handle list, it works on 100% of the
> PC's Ive tested. Some PC's have 3 or 4 handles.
> However I'd prefer to do it the correct way so I will query the protocol
> as suggested.
>
> I currently use:
>
> nGOPHandleIndex = handleCount - 1;
> Status = gBS->HandleProtocol(
> handleBuffer[nGOPHandleIndex],
> &gEfiGraphicsOutputProtocolGuid,
> (VOID **)&(GraphicsOutput));
>
> The PC that returns black pixels has *2 total handles*.
> If I choose the *1st handle*, there is no graphics output at all. It
> stays on the console text screen.
> If I choose the *2nd handle*, there is graphics output, but
> BltLibVideoToBltBuffer returns black pixels.
>
> So I am definitely using the correct handle for GOP graphics.
>
> I was thinking maybe the BlitLib was using the 1st handle instead of the
> 2nd handle, but I couldn't find a way to set the handle index in BlitLib.
> Even if it was using the 1st handle, wouldn't I see bits of ASCII
> characters in the returned blit from the console? I see no text, just black.
> BltLibVideoToBltBuffer also has no option to set the handle.
>
> So it seems the BIOS in question simply hasn't implemented proper
> Screen-to-Blit functionality.
> I suppose it's not a feature many people would use so it would be easy for
> some BIOS developers to forget to test/implement this function.
>
> Thanks.
>
> ------------------------------
> Date: Wed, 8 Oct 2014 12:27:18 -0500
> From: [email protected]
> To: [email protected]
> Subject: Re: [edk2] BltLibVideoToBltBuffer returns black pixels
>
>
> Another way is to get it from the ConOut device path. There's a UEFI
> variable called "ConOut" (refer to UEFI spec) that holds a device path.
> Doing a LocateDevicePath() with gEfiGraphicsOutputProtocolGuid and this
> device path gives you the handle to GOP that ConOut is using. Just
> OpenProtocol() with this handle to get the GOP instance.
>
> On Wed, Oct 8, 2014 at 11:17 AM, Rafael Machado <
> [email protected]> wrote:
>
> Hi J. E.
>
> Just one question.
> Are you sure that this GOP you are using is handled by the current active
> graphic device ?
>
> I'm asking this because some time ago I had one problem like this, and the
> situation was that my system had two gop handles, but the first one that
> was detected was not related to the active device.
>
> To check this I used the Edid protocol.
>
> Thanks and Regards
> Rafael R. Machado
>
>
> 2014-10-03 3:15 GMT-03:00 J. E. <[email protected]>:
>
> BltLibVideoToBltBuffer seems to be unreliable on some PC's. Most work
> fine, but a select few return black pixels, no errors. EFI_STATUS =
> EFI_SUCCESS.
>
> If BltLibVideoToBltBuffer returns black pixels does that mean the
> hardware/firmware doesn't support screen-to-buffer functionality?
> I assume this is because someone didnt test the function or feel the need
> to implement the function in the BIOS code or GOP driver, rather than a GOP
> handle issue.
>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
>
>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI
> DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you
> Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI
> DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________ edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
>
> ------------------------------------------------------------------------------
> Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
> Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
> Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
> Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
>
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
>
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel