Contribute
Register

How to build your own iMac Pro [Successful Build/Extended Guide]

Status
Not open for further replies.
Dear me! Why you want to rename display@0 to GFX0@0?

As you use your Vega 56 GPU in Slot-1 and you also employ the ASUS Prime X299 Deluxe, you need to perform exactly the same ACPI replacements as already implemented in my SSDT-X299-iMacPro-Vega.aml...

Take a breath and carefully investigate the respective Vega SSDT implementation ;)..

Good luck :thumbup: ,

KGP
thanks for your answer

Im trying the easy way first, than more research and find ssdt implementation for vega56 (assumed its different than vega64). So far ssdt seems pretty complicated (i tried it didnt work :) ) and a route i will go when i have time to spare. Also always tried to do as little as possible with my builds to get them working.

I need the GFX0 for proper acceleration of HEVC (especially inside fcpx). Without GFX0 HEVC freezes inside fcpx (probably because of Metal). With whatevergreen i do get that GFX0 but I have hangups time to time with dual screen. So i want to go step by step to reach HEVC acceleration.
 
Last edited:
thanks for your answer

Im trying the easy way first, than research and find ssdt implementations for vega56 (assume its different than vega64). So far ssdt seems pretty complicated and a route i will go when i have time to spare. Also always tried to do as little as possible with my builds to get them working (if something breaks i would never know where to start).

I need the GFX0 for proper acceleration of HEVC (especially inside fcpx). Without GFX0 HEVC freezes inside fcpx (probably because of Metal). With whatevergreen i do get that GFX0 but I have hangups time to time with dual screen. So i want to go step by step to reach HEVC acceleration.

I don't understand why it should be easier to write your own SSDT instead of adopting mine wherever necessary... I do not see why the SSDT for a Vega 56 should be much different apart from the PP_PhmSoftPowerPlayTable, which you can easily adopt by means of VGTab..

In any case, measurements like renaming display@0 to GFX0@0 or anything similar will lead you to nowhere, as they are totally wrong and lack any base to build on.. :rolleyes:
 
Important notification:

before complaining and claiming here that my SSDT-X299-iMacPro-Vega.aml does not work, please provide "IOREG" and "PCI" screenshots to see that the latter AML has been properly adopted and implemented on your system!

I applied the latter SSDT to both Gigabyte Radeon Vega 64 Gaming (3x HDMI, 3x DP) and Sapphire Nitro+ Vega 64 (2x HDMI, 2xDP) and all ports have been automatically and correctly implemented, including multi-monitor support and display hot plug, independent of the macOS operating system (10.13.6 and 10.14). Please see my respective posts and screenshots along this thread!

Good luck,

KGP
 
tried to rename display@0 to GFX0@0 in clover …
Take a close look at your IOREG and DSDT. The last real device to the graphics card is "SL05". Everything after that will be filled up automatically, if not described by an extension of the DSDT or SSDT.

I would recommend to also delete the "SL05" so that the existing "PEGP" (look into the DSDT) is used. In addition you need from here (PEGP, last existing device) new further device entries. First of all, one for the "pci-bridge" (EGP0), then a new device for "display" (GFX0).

Code:
DefinitionBlock ("", "SSDT", 2, "NICO", "VEGA56", 0x00000000)
{
    External (_SB_.PC02.BR2A, DeviceObj)    // (from opcode)
    External (_SB_.PC02.BR2A.PEGP, DeviceObj)    // (from opcode)
    External (_SB_.PC02.BR2A.SL05, DeviceObj)    // (from opcode)
    External (DTGP, MethodObj)    // 5 Arguments (from opcode)

    Scope (\_SB.PC02.BR2A)
    {
        Scope (SL05)
        {
            Name (_STA, Zero)  // _STA: Status
        }

        Scope (PEGP)
        {
            Device (EGP0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Device (GFX0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
…

From here then your own "_DSM" method. Good luck and show your finished SSDT.
 
  • Like
Reactions: qbe
@qbe
If you want to keep "SL05" your SSDT should start like this:

Code:
DefinitionBlock ("", "SSDT", 2, "NICO", "VEGA56", 0x00000000)
{
    External (_SB_.PC02.BR2A, DeviceObj)    // (from opcode)
    External (_SB_.PC02.BR2A.SL05, DeviceObj)    // (from opcode)
    External (DTGP, MethodObj)    // 5 Arguments (from opcode)

    Scope (\_SB.PC02.BR2A)
    {
        Scope (SL05)
        {
            Device (EGP0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Device (GFX0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
…
 
  • Like
Reactions: qbe
@qbe
If you want to keep "SL05" your SSDT should start like this:

Code:
DefinitionBlock ("", "SSDT", 2, "NICO", "VEGA56", 0x00000000)
{
    External (_SB_.PC02.BR2A, DeviceObj)    // (from opcode)
    External (_SB_.PC02.BR2A.SL05, DeviceObj)    // (from opcode)
    External (DTGP, MethodObj)    // 5 Arguments (from opcode)

    Scope (\_SB.PC02.BR2A)
    {
        Scope (SL05)
        {
            Device (EGP0)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Device (GFX0)
                {
                    Name (_ADR, Zero)  // _ADR: Address
…

But now you should explain him also how to inplement external method DTGP :)...

And then he will end up with the same ACPI structure as anyway implemented in SSDT-X299-iMacPro-Vega.aml, to which I was initially referring to to, apart from the SL05 -> PEGP replacement of course..

BTW... what about the TB SSDT-9.aml project we started to dive into together with @nmano.. Are you willing to join? :wave: ...We are currently stocked at the respective _INI executions...
 
Last edited:
  • Like
Reactions: qbe
Absolutely clear, but he wants to do it himself. I've explained the beginning so he understands where the extra new device entries come from.
edit:
Possibly this does not work with "PEGP" because of the partly different PCIe Slots because of the limited CPU. Therefore also a variant directly on "SL05".
 
Absolutely clear, but he wants to do it himself. I've explained the beginning so he understands where the extra new device entries come from.
edit:
Possibly this does not work with "PEGP" because of the partly different PCIe Slots because of the limited CPU. Therefore also a variant directly on "SL05".

Sure, why not? :thumbup:.. absolutely fine with me if you try to help..

However, he did in fact a weird display@0 to GFX@0 replacement, which was the initial point of the entire current discussion..

BTW.. Did you see my last edit of post #10114? Are you willing to join the respective endeavour? :)

Most related posts have been along this tread and along https://www.tonymacx86.com/threads/...ful-build-extended-guide.255117/#post-1769350 ...
 
Last edited:
@kgp
Thunderbolt SSDT is finished in my opinion. I once integrated the complete iMacPro TB-SSDT with all external methods into the DSDT. It changed nothing. It can not be federated via SSDT as if it were a real Mac. This would require changing the EFI-ROM of the controller with the specific entries from the Mac-ROM.
 
Last edited:
Status
Not open for further replies.
Back
Top