Jump to content

Screen flashes white for a second during boot


unixb0y
 Share

195 posts in this topic

Recommended Posts

On 10/20/2018 at 3:37 PM, arsradu said:

 

Is this what you mean? Cause I've got the exact same issue ever since I bought the RX 580. 

 

Things I've noticed so far:

1. it doesn't always happen. But it does happen A LOT!

2. I'm not sure if it's from the monitor or something else (maybe FreeSync...though it seems unlikely), but it doesn't seem to happen to other people with RX 580! So I'm not sure it's the card either!

3. It's unrelated to WEG and such.

 

update: also, this occurs with HDMI/DVI/DP.

 

This is driving me crazy!

 

 

 

 

Exactly the same effect for me, no freesync!

  • Like 1
Link to comment
Share on other sites

On 10/14/2018 at 6:07 PM, unixb0y said:

 

Is there anything known to fix this? Do iMacs with AMD GPUs (e.g. the RX580) do the same thing?

 

With real macs the boot screen is white so it would be hard to tell.   This has been happening for years.   All my RX cards do it and my R9 as well.   When I see it I know my card will have acceleration.   So it’s a good sign IMO.

Link to comment
Share on other sites

1 hour ago, Gigamaxx said:

 

With real macs the boot screen is white so it would be hard to tell.   This has been happening for years.   All my RX cards do it and my R9 as well.   When I see it I know my card will have acceleration.   So it’s a good sign IMO.

 

Well, I don't know which Macs did you see, but that definitely doesn't happen with newer ones.  And the boot screen is black with new Macs and grey with old ones. It's never white. Also, doesn't occur to everyone (even people with RX 580). And it coincidentally seems to occur for people with monitors without FreeSync. It's definitely NOT a good sign. It's not supposed to do that. It doesn't do that in Windows. It's definitely not intended.

 

There is no iMac with the RX Graphics. But there is the 5K 27" iMac from 2017 that has the Radeon Pro 580 with 8GB of RAM.

 

And NO, it doesn't flash like that! I mean, how could Apple even release a product with such an issue?

 

See below the boot for a real 2017 iMac 5K 27" with Radeon Pro 580 graphics.

 

 

I'll be looking for a video of the actual RX connected externally to a MacBook of something.

 

 

Edited by arsradu
Link to comment
Share on other sites

3 hours ago, unixb0y said:

 

Exactly the same effect for me, no freesync!

That might be why... And if it's a hardware (monitor) issue...well, we're screwed.

 

Personally I was crazy enough to actually order a new monitor (an LG 4K IPS monitor, WITH FreeSync). I'm still waiting for the delivery though. Looks like that might take a little while longer due to shortage in supply. I'll let you know if it still occurs after that. Also, since I upgraded the GPU, it was time for an upgrade on the monitor, as well. So...I guess it's not all for nothing.

Edited by arsradu
Link to comment
Share on other sites

3 hours ago, arsradu said:

That might be why... And if it's a hardware (monitor) issue...well, we're screwed.

 

Personally I was crazy enough to actually order a new monitor (an LG 4K IPS monitor, WITH FreeSync). I'm still waiting for the delivery though. Looks like that might take a little while longer due to shortage in supply. I'll let you know if it still occurs after that. Also, since I upgraded the GPU, it was time for an upgrade on the monitor, as well. So...I guess it's not all for nothing.

 

That's interesting... :) I guess if it's the monitor, it's not something that hurts the hardware of the PC because it happens 'outside' of the system.

Well 4k and IPS + free sync sounds like a great monitor, it's definitely not 'for nothing'... upgrading from 1080p to 4K... :D

Definitely let us know! If the flash is gone, knowing the model name would be great too. I'm looking for a new monitor in the not-so-near-future as well anyway.

 

EDIT:

4 hours ago, arsradu said:

There is no iMac with the RX Graphics

 

Actually, there is :D

 

674448188_Screenshot2018-10-23at22_32_31.png.3e284ef532bac40e2c7952b593f6824a.png

Edited by unixb0y
Link to comment
Share on other sites

12 hours ago, unixb0y said:

 

That's interesting... :) I guess if it's the monitor, it's not something that hurts the hardware of the PC because it happens 'outside' of the system.

Well 4k and IPS + free sync sounds like a great monitor, it's definitely not 'for nothing'... upgrading from 1080p to 4K... :D

Definitely let us know! If the flash is gone, knowing the model name would be great too. I'm looking for a new monitor in the not-so-near-future as well anyway.

 

EDIT:

 

Actually, there is :D

 

674448188_Screenshot2018-10-23at22_32_31.png.3e284ef532bac40e2c7952b593f6824a.png

Isn't that the same iMac I posted above? :)

 

It's Radeon Pro 580, not Radeon RX 580. That's what I was trying to say.  Here's a comparison:  http://gpuboss.com/gpus/Radeon-RX-580-vs-Radeon-Pro-580

 

And if you take a look at my post above, you will see that I also posted a youtube link with the startup. And obviously there is no flashing.

 

And yes, I will definitely let you know the result as soon as I get the new monitor. For me, it's not such a huge bump in resolution since i'm coming from a Philips 2K monitor (with no FreeSync). So...I guess we'll see how it goes. I'll definitely let you know.

Edited by arsradu
Link to comment
Share on other sites

That’s an expensive fix for a 1/2 second flash, after 2 years my monitor still works my card still works and my computer still works.   But I don’t have epilepsy so it really doesn’t bother me.

I’m sure it’s not something that people will be very eager to do. I wasn’t either. And I would have been very happy if anyone came up with an actual fix to this. But I don’t think there is one. And as you said, some will be ok with it.
Personally, I don’t like it. And since a monitor upgrade was due anyway, I don’t see the problem. Hope you understand.
  • Like 1
Link to comment
Share on other sites

I have Sapphire RX 560 OC 4GB, same flashing here at the second stage of booting. I have a freesync monitor which is AOC Q3279VWF8 connected to the DP port of my graphic card. I use Z77P-D3 with E3-1230 v2, no iGPU, searched around for quite a lot of time, nothing works.  

Link to comment
Share on other sites

Hi guys,

 

So, I said I'll come back with news. So here I am.

 

The monitor I've bought is this LG 27UD59P-B. And it looks really, really nice. I'm not sorry I bought it. Especially since I'm selling the old one. So I'm getting part of the money back. So, to me, it's really worth the upgrade. Sad news is that, as Justin said above, the issue still occurs...:( Even with a FreeSync monitor, and even with FreeSync enabled.

 

Initially I thought it's because FreeSync was not enabled by default. So I enabled it and...no change. Still, I don't understand...Some people don't have this issue. Something's gotta be different for them. Maybe the manufacturer...maybe something else. I don't know. I'll keep searching.

Edited by arsradu
  • Like 1
Link to comment
Share on other sites

@arsradu

Congrats on the upgrade and sorry that it didn't work out they way it should.

Here's a part of the SSDT from an 18,3 iMac with Radeon Pro 580 (which is technically the same as the RX 580 only sub vendor ID is from Apple with their own EFI ROM for the GPU). I checked the details and the device ID is the same but probably with lower frequency to reduce the heat in the chipset among other things.

566259162_ScreenShot2018-10-25at1_03_42PM.png.9db8adf118d430193bb3391b0465052e.png

So you can see it has a section called LCD in the SSDT which can be the key for resolving the flash thingy if we can implement the same on our hacks.

Edited by Cyberdevs
  • Like 1
Link to comment
Share on other sites

4 minutes ago, Cyberdevs said:

@arsradu

Congrats on the upgrade and sorry that it didn't work out they way it should.

Here's a part of the SSDT from an 18,3 iMac with Radeon Pro 580 (which is technically the same as the RX 580 only sub vendor ID is from Apple withe their own EFI ROM for the GPU). I checked the details and the device ID is the same but probably with lower frequency to reduce the heat in the chipset among other things.

566259162_ScreenShot2018-10-25at1_03_42PM.png.9db8adf118d430193bb3391b0465052e.png

So you can see it has a section called LCD in the SSDT which can be the key for resolving the flash thingy if we can implement the same on our hacks.

 

Hi Cyber! Good to see you around here, as well. :) Also, thank you very much. I'm really happy I bought this monitor. The image is nice and crisp. Might need to adjust the color temperature a little bit for my taste. Seems a biiit too warm to my eyes. But it's got plenty of options for that. I just didn't get much time to do that. Just looked through the options and tried a few things. So yeah, I'll just need to fiddle with it a little to get it done perfectly.

 

Also, I'll check that tonight!

 

Many, many thanks! :) 

 

 

Edited by arsradu
  • Like 1
Link to comment
Share on other sites

Just now, Cyberdevs said:

Thanks man it's good to be here :)

I'm really curious to see how we can resolve this issue as well so I've ben doing some tests with no result so far but I hope we find a solution if there is any ;)

 

Well, interestingly enough, Vega users don't seem to have this issue. Not sure if all of them, or just some. However, Vega users have the issue with the fans stuck in full throttle. There seems to be a kext for that though.

So...maybe we can borrow something from Vega and apply to the RX cards. Or at least compare the two, see what's different and draw some conclusions from that. It's just an idea.

Link to comment
Share on other sites

1 minute ago, arsradu said:

Well, interestingly enough, Vega users don't seem to have this issue. Not sure if all of them, or just some. However, Vega users have the issue with the fans stuck in full throttle. There seems to be a kext for that though.

So...maybe we can borrow something from Vega and apply to the RX cards. Or at least compare the two, see what's different and draw some conclusions from that. It's just an idea.

Unfortunately I don't have access to a Vega GPU to test so we'll have to do with our 580s to see if we can find anything in that regard :wacko:

  • Like 1
Link to comment
Share on other sites

1 minute ago, Cyberdevs said:

Unfortunately I don't have access to a Vega GPU to test so we'll have to do with our 580s to see if we can find anything in that regard :wacko:

 

Well, I don't either. But...that's what friends are for. :) I'm just not sure where should we look for differences... Any ideas? I mean, aside from the obvious hardware ones.

Edited by arsradu
Link to comment
Share on other sites

6 minutes ago, arsradu said:

Well, I don't either. But...that's what friends are for. :) I'm just not sure where should we look for differences... Any ideas? I mean, aside from the obvious hardware ones.

If you are referring to @Pavo's statement as far as I know his rig doesn't have an iGPU that's one big difference from our rigs so the ACPI tables in his rig must be different. Although I have to say I'm not so good the ACPI/DSDT and SSDT tables but that might make the difference.

The other difference is in the ROM itself which is different in 500 series and Vega.

So for now I'm in the dark as well as the rest of us :rofl:

Edited by Cyberdevs
  • Like 1
Link to comment
Share on other sites

9 minutes ago, Cyberdevs said:

If you are referring to @Pavo's statement as far as I know his rig doesn't have an iGPU that's one big difference from our rigs so the ACPI tables in his rig must be different. Although I have to say I'm not so good the ACPI/DSDT and SSDT tables but that might make the difference.

The other difference is in the ROM itself which is different in 500 series and Vega.

So for now I'm in the dark as well as the rest of us :rofl:

Well, I wasn't referring to that. But it is an interesting idea. But...why would it matter if there's in iGPU or not? This issue occurs even with the iGPU disabled. And for some reason, with the new monitor I was able to actually switch on the iGPU and test... No difference. But with the old monitor I wasn't able to do that. Hmm..interesting.

 

And yeah, the ROM will certainly be different... But so should be the one for the older cards...with the same issue.

 

Edited by arsradu
Link to comment
Share on other sites

2 minutes ago, arsradu said:

Well, I wasn't referring to that. But it is an interesting idea. But...why would it matter if there's in iGPU or not? This issue occurs even with the iGPU disabled. And for some reason, with the new monitor I was able to actually switch on the iGPU and test... No difference. But with the old monitor I wasn't able to do that. Hmm..interesting.

 

And yeah, the ROM will certainly be different... But so should be the one for the older cards...with the same issue.

Well the ROM on the Vega GPUs is the lates version and we know the whole GPUs architecture has changed and has been improved so that might be the reason why there is no flashing on these GPUs.

If we disable the iGPU I believe we need to do a clean install and remove all the iGPU related settings from the config.plist to be more precise.

I will be doing a clean install later on if I can with iGPU being disabled completely so I can test and see if that makes a difference.

  • Like 2
Link to comment
Share on other sites

Thanks @arsradu for the update and the hint about the "Radeon Pro 580"!
I can confirm that even with the iGPU disabled, the issue persists. Still, it could very well be the source of the issue that the system somehow does a 'switch' between GPUs.

@Cyberdevs Thanks for trying the clean install, I'm looking forward to the results a lot!

Edited by unixb0y
  • Like 1
Link to comment
Share on other sites

1 minute ago, unixb0y said:

Thanks @arsradu for the update and the hint about the "Radeon Pro 580"!
I can confirm that even with the iGPU disabled, the issue persists. Still, it could very well be the source of the issue that the system somehow does a 'switch' between GPUs.

@Cyberdevs Thanks for trying the clean install, I'm looking forward to the results a lot!

Sure thing man I will post the results as soon as I do the clean install :)

  • Like 1
Link to comment
Share on other sites

@MaLd0n and @Pavo

Hi guys, can we implement this in the SSDT form for our hacks?

This is what I have extracted from an iMac18,3 with a Radeon Pro 580 GPU

But I don't know if we can even use such settings on our hack. So if you can please shed some light on the subject I will be appreciated.

 

Thanks in advance :)

PEG0GFX0 Table

Spoiler

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20161210-64(RM)
 * Copyright (c) 2000 - 2016 Intel Corporation
 * 
 * Disassembling to non-symbolic legacy ASL operators
 *
 * Disassembly of iASLSpNFcr.aml, Thu Oct 25 16:36:50 2018
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x00000712 (1810)
 *     Revision         0x02
 *     Checksum         0xFB
 *     OEM ID           "APPLE "
 *     OEM Table ID     "PEG0GFX0"
 *     OEM Revision     0x00001000 (4096)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20140424 (538182692)
 */
DefinitionBlock ("", "SSDT", 2, "APPLE ", "PEG0GFX0", 0x00001000)
{
    /*
     * iASL Warning: There were 3 external control methods found during
     * disassembly, but only 0 were resolved (3 unresolved). Additional
     * ACPI tables may be required to properly disassemble the code. This
     * resulting disassembler output file may not compile because the
     * disassembler did not know how many arguments to assign to the
     * unresolved methods. Note: SSDTs can be dynamically loaded at
     * runtime and may or may not be available via the host OS.
     *
     * To specify the tables needed to resolve external control method
     * references, the -e option can be used to specify the filenames.
     * Example iASL invocations:
     *     iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml
     *     iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml
     *     iasl -e ssdt*.aml -d dsdt.aml
     *
     * In addition, the -fe option can be used to specify a file containing
     * control method external declarations with the associated method
     * argument counts. Each line of the file must be of the form:
     *     External (<method pathname>, MethodObj, <argument count>)
     * Invocation:
     *     iasl -fe refs.txt -d dsdt.aml
     *
     * The following methods were unresolved and many not compile properly
     * because the disassembler had to guess at the number of arguments
     * required for each:
     */
    External (_SB_.PCI0.PEG0, DeviceObj)    // Warning: Unknown object
    External (_SB_.PCI0.SBUS.BUS0.BLC0.BSET, MethodObj)    // Warning: Unknown method, guessing 1 arguments
    External (BLCP, MethodObj)    // Warning: Unknown method, guessing 2 arguments
    External (BRTL, IntObj)    // Warning: Unknown object
    External (DLHR, UnknownObj)    // Warning: Unknown object
    External (DTGP, MethodObj)    // Warning: Unknown method, guessing 5 arguments
    External (EGPS, IntObj)    // Warning: Unknown object
    External (MUTX, UnknownObj)    // Warning: Unknown object
    External (OSDW, IntObj)    // Warning: Unknown object
    External (SSMP, UnknownObj)    // Warning: Unknown object
    External (SSMY, UnknownObj)    // Warning: Unknown object

    Scope (\_SB.PCI0.PEG0)
    {
        Device (GFX0)
        {
            OperationRegion (OPG0, SystemMemory, 0xE0008000, 0x1000)
            Field (OPG0, ByteAcc, NoLock, Preserve)
            {
                P0VI,   16, 
                P0DI,   16, 
                Offset (0x248), 
                    ,   7, 
                Q0L2,   1, 
                Q0L0,   1, 
                Offset (0x444), 
                    ,   31, 
                BYPD,   1, 
                Offset (0xC74), 
                LTSS,   4
            }

            Method (PUPD, 2, Serialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Store (One, Q0L2)
                    Add (Timer, 0x00989680, Local0)
                    While (LLessEqual (Timer, Local0))
                    {
                        If (LEqual (Q0L2, Zero))
                        {
                            Break
                        }
                    }
                }
                Else
                {
                    Sleep (DLHR)
                    Store (One, BYPD)
                    Store (One, Q0L0)
                    Add (Timer, 0x000F4240, Local1)
                    While (LLessEqual (Timer, Local1))
                    {
                        If (LEqual (Q0L0, Zero))
                        {
                            Break
                        }
                    }

                    Add (Timer, 0x000F4240, Local1)
                    While (LLessEqual (Timer, Local1))
                    {
                        If (LNotEqual (LTSS, Zero))
                        {
                            Break
                        }
                    }
                }
            }

            Method (GXWA, 0, Serialized)
            {
                Store (PWG1 (), Local0)
                If (LNotEqual (Local0, Zero))
                {
                    Return (One)
                }

                Store (BNIS, BNIR)
                Store (Zero, VID0)
                Sleep (0x0A)
                If (LEqual (VID0, 0xFFFF))
                {
                    Return (One)
                }

                Store (BARS, BAR4)
                Or (And (BARS, 0xFFFF0000), ShiftRight (BARS, 0x10), Local0)
                Store (Local0, MBAS)
                Store (0x07, GCMD)
                Store (0x06, BCMD)
                OperationRegion (BARE, SystemMemory, BARS, 0x5000)
                Field (BARE, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x30), 
                    CINX,   32, 
                    CDAT,   32
                }

                Store (0x0120482B, CINX)
                Store (CDAT, Local1)
                If (LEqual (Local1, 0xFFFFFFFF))
                {
                    Return (One)
                }

                And (Local1, 0xFFFFFFC7, Local1)
                Or (Local1, 0x28, Local1)
                Store (Local1, CDAT)
                Store (0x0120C82B, CINX)
                Store (CDAT, Local1)
                If (LEqual (Local1, 0xFFFFFFFF))
                {
                    Return (One)
                }

                And (Local1, 0xFFFFFFC7, Local1)
                Or (Local1, 0x28, Local1)
                Store (Local1, CDAT)
                Store (Zero, GCMD)
                Store (Zero, BAR4)
                Store (Zero, BCMD)
                Store (Zero, BNIR)
                Store (Zero, MBAS)
                Store (PWG3 (), Local0)
                If (LNotEqual (Local0, Zero))
                {
                    Return (One)
                }

                Return (Zero)
            }

            Method (PWG1, 0, NotSerialized)
            {
                Store (One, LTLS)
                Store (One, LCRL)
                Store (Zero, Local0)
                While (LTRN)
                {
                    If (LGreater (Local0, 0x01F4))
                    {
                        Return (One)
                    }

                    Increment (Local0)
                    Sleep (One)
                }

                If (LEqual (LSTS, 0x08))
                {
                    Return (Zero)
                }
                Else
                {
                    Return (One)
                }
            }

            Method (PWG3, 0, NotSerialized)
            {
                Store (0x03, LTLS)
                Store (One, LCRL)
                Store (Zero, Local0)
                While (LTRN)
                {
                    If (LGreater (Local0, 0x01F4))
                    {
                        Return (One)
                    }

                    Increment (Local0)
                    Sleep (One)
                }

                If (LEqual (LSTS, 0x08))
                {
                    Return (Zero)
                }
                Else
                {
                    Return (One)
                }
            }

            Name (_ADR, Zero)  // _ADR: Address
            Method (ABCM, 1, NotSerialized)
            {
                Store (Arg0, BRTL)
                If (BLCP (\_SB.PCI0.SBUS.BUS0.BLC0.BSET (Arg0), Return (Zero))) {}
                Divide (Multiply (Arg0, 0x0F), 0x64, Local1, Local0)
                ShiftLeft (Local0, 0x04, Local0)
                Or (Local0, 0x04, Local0)
                Acquire (MUTX, 0xFFFF)
                Store (Local0, SSMY)
                Store (0xBF, SSMP)
                Release (MUTX)
                Return (Zero)
            }

            Method (ABCL, 0, NotSerialized)
            {
                Return (Package (0x52)
                {
                    0x50, 
                    0x32, 
                    One, 
                    0x02, 
                    0x03, 
                    0x04, 
                    0x05, 
                    0x06, 
                    0x07, 
                    0x08, 
                    0x09, 
                    0x0A, 
                    0x0B, 
                    0x0C, 
                    0x0D, 
                    0x0E, 
                    0x0F, 
                    0x10, 
                    0x11, 
                    0x12, 
                    0x13, 
                    0x14, 
                    0x15, 
                    0x16, 
                    0x17, 
                    0x18, 
                    0x19, 
                    0x1A, 
                    0x1B, 
                    0x1C, 
                    0x1D, 
                    0x1E, 
                    0x1F, 
                    0x20, 
                    0x21, 
                    0x22, 
                    0x23, 
                    0x24, 
                    0x25, 
                    0x26, 
                    0x27, 
                    0x28, 
                    0x29, 
                    0x2A, 
                    0x2B, 
                    0x2C, 
                    0x2D, 
                    0x2E, 
                    0x2F, 
                    0x30, 
                    0x31, 
                    0x32, 
                    0x33, 
                    0x34, 
                    0x35, 
                    0x36, 
                    0x37, 
                    0x38, 
                    0x39, 
                    0x3A, 
                    0x3B, 
                    0x3C, 
                    0x3D, 
                    0x3E, 
                    0x3F, 
                    0x40, 
                    0x41, 
                    0x42, 
                    0x43, 
                    0x44, 
                    0x45, 
                    0x46, 
                    0x47, 
                    0x48, 
                    0x49, 
                    0x4A, 
                    0x4B, 
                    0x4C, 
                    0x4D, 
                    0x4E, 
                    0x4F, 
                    0x50
                })
            }

            Device (LCD)
            {
                Method (_ADR, 0, Serialized)  // _ADR: Address
                {
                    Return (0x0110)
                }

                Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                {
                    Return (ABCL ())
                }

                Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
                {
                    ABCM (Arg0)
                }

                Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
                {
                    Return (BRTL)
                }
            }

            Method (_DOD, 0, Serialized)  // _DOD: Display Output Devices
            {
                Return (Package (0x01)
                {
                    0x0110
                })
            }

            Name (ATIB, Buffer (0x0100) {})
            Method (ATIF, 2, Serialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (AF00 ())
                }

                If (LEqual (Arg0, One))
                {
                    Return (AF01 ())
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (AF02 ())
                }
                Else
                {
                    CreateWordField (ATIB, Zero, SSZE)
                    CreateWordField (ATIB, 0x02, VERN)
                    CreateDWordField (ATIB, 0x04, NMSK)
                    CreateDWordField (ATIB, 0x08, SFUN)
                    Store (Zero, SSZE)
                    Store (Zero, VERN)
                    Store (Zero, NMSK)
                    Store (Zero, SFUN)
                    Return (ATIB)
                }
            }

            Method (AF00, 0, NotSerialized)
            {
                CreateWordField (ATIB, Zero, SSZE)
                CreateWordField (ATIB, 0x02, VERN)
                CreateDWordField (ATIB, 0x04, NMSK)
                CreateDWordField (ATIB, 0x08, SFUN)
                Store (0x0C, SSZE)
                Store (One, VERN)
                Store (0x0C, NMSK)
                Store (0x03, SFUN)
                Return (ATIB)
            }

            Method (AF01, 0, NotSerialized)
            {
                CreateWordField (ATIB, Zero, SSZE)
                CreateDWordField (ATIB, 0x02, VMSK)
                CreateDWordField (ATIB, 0x06, FLGS)
                Store (0x0A, SSZE)
                Store (0x03, VMSK)
                Store (One, FLGS)
                Return (ATIB)
            }

            Method (AF02, 0, NotSerialized)
            {
                CreateWordField (ATIB, Zero, SSZE)
                CreateDWordField (ATIB, 0x02, PSBI)
                CreateByteField (ATIB, 0x09, FPWR)
                CreateByteField (ATIB, 0x0A, FPID)
                Store (0x0D, SSZE)
                Store (0x08, PSBI)
                Store (Zero, FPWR)
                Store (EGPS, FPID)
                Return (ATIB)
            }

            Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
            {
                If (OSDW)
                {
                    Return (Package (0x02)
                    {
                        0x69, 
                        0x04
                    })
                }
                Else
                {
                    Return (Package (0x02)
                    {
                        0x69, 
                        0x03
                    })
                }
            }

            OperationRegion (PEGH, PCI_Config, Zero, 0x40)
            Field (PEGH, ByteAcc, NoLock, Preserve)
            {
                VID0,   16, 
                DID0,   16, 
                GCMD,   8, 
                Offset (0x24), 
                BAR4,   32
            }

            OperationRegion (GBAR, SystemMemory, 0xE0008000, 0x0100)
            Field (GBAR, DWordAcc, NoLock, Preserve)
            {
                Offset (0x04), 
                BCMD,   8, 
                Offset (0x18), 
                BNIR,   32, 
                Offset (0x20), 
                MBAS,   32, 
                Offset (0xB0), 
                    ,   4, 
                LNKD,   1, 
                LCRL,   1, 
                Offset (0xB2), 
                LNKS,   4, 
                LSTS,   6, 
                    ,   1, 
                LTRN,   1, 
                Offset (0xD0), 
                LTLS,   4
            }

            Name (BNIS, Zero)
            Name (BARS, Zero)
            Method (PWRD, 1, NotSerialized)
            {
                Store (Zero, Local0)
                If (Arg0)
                {
                    Store (BNIR, BNIS)
                    Store (BAR4, BARS)
                    PUPD (Zero, 0x04)
                    Store (Zero, Local0)
                }
                Else
                {
                    PUPD (One, 0x04)
                    Store (GXWA (), Local0)
                    If (LNotEqual (Local0, Zero)) {}
                }

                Return (Local0)
            }

            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
                {
                    If (LNotEqual (And (VID0, 0xFFFF), 0xFFFF))
                    {
                        Store (Package (0x02)
                            {
                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Return (0x80000002)
            }
        }

        Device (HDAU)
        {
            Name (_ADR, One)  // _ADR: Address
            OperationRegion (HDAH, PCI_Config, Zero, 0x40)
            Field (HDAH, ByteAcc, NoLock, Preserve)
            {
                VID0,   16, 
                DID0,   16
            }

            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
                {
                    If (LNotEqual (And (VID0, 0xFFFF), 0xFFFF))
                    {
                        Store (Package (0x02)
                            {
                                "hda-gfx", 
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            }, Local0)
                        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                        Return (Local0)
                    }
                }

                Return (0x80000002)
            }
        }
    }
}

 

  • Like 1
Link to comment
Share on other sites

2 hours ago, Cyberdevs said:

Unfortunately the clean install with iGPU being disabled didn't make any difference, the flashing even occurs when the installer is about to load.

 

I think I recall someone mentioning the difference in EFI vs UEFI in the vbios.   At least for older Mac AMD cards.   But I think testing with an Apple EFI vbios flash it disabled the bios or boot for windows.   Not really sure about this it’s from memory about 2 years ago.   EFI vs UEFI?

Link to comment
Share on other sites

 Share

×
×
  • Create New...