Jump to content

Dual dedicated GPU on Mojave (NVIDIA & AMD)


tokia
 Share

10 posts in this topic

Recommended Posts

Hello,

 

My desktop Hackintosh is running macOS Mojave 10.14.2 with two dedicated GPUs installed: NVIDIA GTX 1080 Ti, AMD Radeon HD 7970.

 

The AMD GPU is used primarily under macOS and the NVIDIA one under Windows.

 

macOS boots without issues as long as there are no displays connected to the NVIDIA GPU. If a display is connected then the display connected to the AMD GPU will become blank. The system can be accessed using Screen Sharing/VNC.

 

There are no problems if I swap PCI-e slots for the GPUs so that the AMD GPU is in the first slot (primary GPU), but I prefer not to do this.

 

I have tried to remove the whole PCI (bridge) device in the DSDT file and all the lines that refer to it. The PCI entries in ioreg and System Information are gone but System Information still shows an NVIDIA GPU under Graphics/Display.

 

Many of the suggestions I have found in guides and forum posts do not seem to apply here. My problem with some of the guides and answers is that they give the solution without explaining how anything works, or they tell you what to do without explaining the reasons behind it.

 

What else can I do? Thank you for any assistance you can provide!

 

I have attached some files that may help you help me.

 

DSDT_BIOS_3101.zip contains the original ACPI (*.aml) files without any patches.

Send me Steffens-iMac.zip is a file produced by RunMe.app, and do contain simple patches to rename some devices.

DSDT.dsl.patch is a diff of the original DSDT.dsl file and the one with the PCI devices removed (commented out).

 

Motherboard: ASUS Rampage V Extreme (X99), BIOS version 3101 (macOS does not boot with anything newer).

Clover version: 4813.

 

DSDT.dsl.patch:

--- /Users/sl/Desktop/DSDT_BIOS_3101/DSDT.dsl	2018-12-17 05:24:30.000000000 +0100
+++ /Volumes/EFI/EFI/CLOVER/ACPI/patched/DSDT.dsl	2018-12-17 16:52:08.000000000 +0100
@@ -5,7 +5,7 @@
  * 
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of DSDT.aml, Mon Dec 17 05:24:30 2018
+ * Disassembly of DSDT.aml, Mon Dec 17 04:01:52 2018
  *
  * Original Table Header:
  *     Signature        "DSDT"
@@ -2128,7 +2128,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -2274,7 +2274,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -2420,7 +2420,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -2570,7 +2570,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -2803,12 +2803,14 @@
                 If ((CSTA (Arg0, Arg1) == 0x00))
                 {
                     FLAG = 0x00
-                    PRID (APID = 0xFF) = 0xFF
+                    APID = 0xFF
+                    PRID = 0xFF
                 }
                 Else
                 {
                     Local0 = APID
-                    PRID (FLAG = 0x01) = Local0
+                    FLAG = 0x01
+                    PRID = Local0
                 }
 
                 Return (APIC)
@@ -15259,7 +15261,7 @@
                             ^BR2B.OSHP ()
                             ^BR2C.OSHP ()
                             ^BR2D.OSHP ()
-                            ^BR3A.OSHP ()
+                            //^BR3A.OSHP ()
                             ^BR3B.OSHP ()
                             ^BR3C.OSHP ()
                             ^BR3D.OSHP ()
@@ -26861,7 +26863,7 @@
                 }
             }
 
-            Device (BR3A)
+            /*Device (BR3A)
             {
                 Name (_ADR, 0x00030000)  // _ADR: Address
                 OperationRegion (MCTL, SystemMemory, 0xE0013188, 0x04)
@@ -27496,7 +27498,7 @@
                 {
                     Name (_ADR, 0xFFFF)  // _ADR: Address
                 }
-            }
+            }*/
 
             Device (BR3B)
             {
@@ -30267,7 +30269,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -30567,21 +30569,21 @@
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4158,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4158,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0001,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x5758,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x5758,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x5858,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x5858,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
@@ -37604,7 +37606,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -37904,21 +37906,21 @@
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4558,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4558,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0001,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4259,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4259,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4359,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4359,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
@@ -44941,7 +44943,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -45241,21 +45243,21 @@
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4958,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4958,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0001,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4559,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4559,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4659,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4659,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
@@ -53823,7 +53825,7 @@
                 Notify (\_SB.PCI0.BR2D.H007, Local0)
             }
 
-            If ((\_SB.PCI0.BR3A.PMEP == 0x01))
+            /*If ((\_SB.PCI0.BR3A.PMEP == 0x01))
             {
                 Local0 = \_SB.PCI0.BR3A.PMEH (0x05)
             }
@@ -53848,7 +53850,7 @@
                 Notify (\_SB.PCI0.BR3A.H005, Local0)
                 Notify (\_SB.PCI0.BR3A.H006, Local0)
                 Notify (\_SB.PCI0.BR3A.H007, Local0)
-            }
+            }*/
 
             If ((\_SB.PCI0.BR3B.PMEP == 0x01))
             {
@@ -54608,11 +54610,11 @@
                     \_SB.PCI0.BR2D.PMEP = 0x01
                 }
 
-                If ((Local1 == 0x07))
+                /*If ((Local1 == 0x07))
                 {
                     \_SB.PCI0.BR3A.PMES = 0x01
                     \_SB.PCI0.BR3A.PMEP = 0x01
-                }
+                }*/
 
                 If ((Local1 == 0x08))
                 {
@@ -54879,10 +54881,10 @@
                 Notify (\_SB.PCI0.BR2D, 0x02)
             }
 
-            If ((\_SB.PCI0.BR3A.DEVS () != 0x00))
+            /*If ((\_SB.PCI0.BR3A.DEVS () != 0x00))
             {
                 Notify (\_SB.PCI0.BR3A, 0x02)
-            }
+            }*/
 
             If ((\_SB.PCI0.BR3B.DEVS () != 0x00))
             {
@@ -55927,10 +55929,10 @@
                 {
                     Notify (\_SB.PCI0.BR2D, 0x00)
                 }
-                Case (0x28)
+                /*Case (0x28)
                 {
                     Notify (\_SB.PCI0.BR3A, 0x00)
-                }
+                }*/
                 Case (0x29)
                 {
                     Notify (\_SB.PCI0.BR3B, 0x00)
@@ -56736,11 +56738,11 @@
         }
     }
 
-    Scope (_SB.PCI0.BR3A)
+    /*Scope (_SB.PCI0.BR3A)
     {
         Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
         {
-            If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
+            If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") / * Device Labeling Interface * /))
             {
                 If (((Arg1 == 0x02) && (Arg2 == 0x00)))
                 {
@@ -56765,7 +56767,7 @@
                  0x00                                           
             })
         }
-    }
+    }*/
 
     Scope (_SB.PCI1.QR1A)
     {

 

DSDT_BIOS_3101.zip

Send me Steffens-iMac.zip

DSDT.dsl.patch

Edited by tokia
Link to comment
Share on other sites

Thank you for your reply!

 

My idea is to use the AMD GPU while leaving the NVIDIA GPU in the computer. This already works but I have to (un)plug displays multiple times per day, every day. Maybe I can edit the first post to make that more clear. :)

Edited by tokia
Link to comment
Share on other sites

5 minutes ago, tokia said:

Thank you for your reply!

 

My idea is to use the AMD GPU while leaving the NVIDIA GPU in the computer. This already works but I have to (un)plug displays multiple times per day, every day. Maybe I can edit the first post to make that more clear. :)

The only reasons I could see having to unplug displays from the AMD GPU to the Nvidia GPU is if you are booting into something other than macOS Mojave. But I would suggest setting down and really thinking about what your main use case for whatever OS you use is. If you use Windows (for gaming) more than macOS, maybe you should just stick with that OS until all other OSes support your equipment.

 

50 minutes ago, tokia said:

There are no problems if I swap PCI-e slots for the GPUs so that the AMD GPU is in the first slot (primary GPU), but I prefer not to do this.

It shouldn't matter what slot the GPU is in, it depends on what GPU your monitors are connected to. You will not be able to utilize the AMD GPU in macOS while your displays are connected to the Nvidia GPU and vise versa.

Link to comment
Share on other sites

Thank you for your reply!

 

46 minutes ago, Pavo said:

The only reasons I could see having to unplug displays from the AMD GPU to the Nvidia GPU is if you are booting into something other than macOS Mojave. But I would suggest setting down and really thinking about what your main use case for whatever OS you use is. If you use Windows (for gaming) more than macOS, maybe you should just stick with that OS until all other OSes support your equipment. 

 

I use macOS mainly for work (software development) and everything else except gaming. Windows is mainly also used for everything else including gaming. I cannot do without one or the other. I barely use my MacBook Pro because the performance of the Hackintosh is superior. There is a perceived performance loss in games (Windows) when the NVIDIA GPU is not installed in the PCI-e slot closest to the CPU.

 

I have been sticking with macOS High Sierra 10.13.6 but it seems to be possible to make Mojave work without causing me too much inconvenience considering that I have the hardware I need. :)

 

46 minutes ago, Pavo said:

It shouldn't matter what slot the GPU is in, it depends on what GPU your monitors are connected to. You will not be able to utilize the AMD GPU in macOS while your displays are connected to the Nvidia GPU and vise versa. 

 

I can leave displays connected to both GPUs when the AMD GPU is installed in the first PCI-e slot. I have a signal on the display connected to the AMD GPU but obviously no signal on the displays connected to the NVIDIA GPU.

 

I cannot use any displays connected to the AMD GPU under macOS if the NVIDIA GPU is installed in the first PCI-e slot unless I unplug the displays connected to the NVIDIA GPU.

 

Edited by tokia
Link to comment
Share on other sites

On 12/17/2018 at 10:44 PM, tokia said:

Hello,

 

My desktop Hackintosh is running macOS Mojave 10.14.2 with two dedicated GPUs installed: NVIDIA GTX 1080 Ti, AMD Radeon HD 7970.

  

The AMD GPU is used primarily under macOS and the NVIDIA one under Windows.

 

macOS boots without issues as long as there are no displays connected to the NVIDIA GPU. If a display is connected then the display connected to the AMD GPU will become blank. The system can be accessed using Screen Sharing/VNC.

 

There are no problems if I swap PCI-e slots for the GPUs so that the AMD GPU is in the first slot (primary GPU), but I prefer not to do this.

 

I have tried to remove the whole PCI (bridge) device in the DSDT file and all the lines that refer to it. The PCI entries in ioreg and System Information are gone but System Information still shows an NVIDIA GPU under Graphics/Display.

 

Many of the suggestions I have found in guides and forum posts do not seem to apply here. My problem with some of the guides and answers is that they give the solution without explaining how anything works, or they tell you what to do without explaining the reasons behind it.

 

What else can I do? Thank you for any assistance you can provide!

 

I have attached some files that may help you help me.

 

DSDT_BIOS_3101.zip contains the original ACPI (*.aml) files without any patches.

Send me Steffens-iMac.zip is a file produced by RunMe.app, and do contain simple patches to rename some devices.

DSDT.dsl.patch is a diff of the original DSDT.dsl file and the one with the PCI devices removed (commented out).

 

Motherboard: ASUS Rampage V Extreme (X99), BIOS version 3101 (macOS does not boot with anything newer).

Clover version: 4644 (macOS does not boot with the latest one, 4798).

 

DSDT.dsl.patch:


--- /Users/sl/Desktop/DSDT_BIOS_3101/DSDT.dsl	2018-12-17 05:24:30.000000000 +0100
+++ /Volumes/EFI/EFI/CLOVER/ACPI/patched/DSDT.dsl	2018-12-17 16:52:08.000000000 +0100
@@ -5,7 +5,7 @@
  * 
  * Disassembling to symbolic ASL+ operators
  *
- * Disassembly of DSDT.aml, Mon Dec 17 05:24:30 2018
+ * Disassembly of DSDT.aml, Mon Dec 17 04:01:52 2018
  *
  * Original Table Header:
  *     Signature        "DSDT"
@@ -2128,7 +2128,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -2274,7 +2274,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -2420,7 +2420,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -2570,7 +2570,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -2803,12 +2803,14 @@
                 If ((CSTA (Arg0, Arg1) == 0x00))
                 {
                     FLAG = 0x00
-                    PRID (APID = 0xFF) = 0xFF
+                    APID = 0xFF
+                    PRID = 0xFF
                 }
                 Else
                 {
                     Local0 = APID
-                    PRID (FLAG = 0x01) = Local0
+                    FLAG = 0x01
+                    PRID = Local0
                 }
 
                 Return (APIC)
@@ -15259,7 +15261,7 @@
                             ^BR2B.OSHP ()
                             ^BR2C.OSHP ()
                             ^BR2D.OSHP ()
-                            ^BR3A.OSHP ()
+                            //^BR3A.OSHP ()
                             ^BR3B.OSHP ()
                             ^BR3C.OSHP ()
                             ^BR3D.OSHP ()
@@ -26861,7 +26863,7 @@
                 }
             }
 
-            Device (BR3A)
+            /*Device (BR3A)
             {
                 Name (_ADR, 0x00030000)  // _ADR: Address
                 OperationRegion (MCTL, SystemMemory, 0xE0013188, 0x04)
@@ -27496,7 +27498,7 @@
                 {
                     Name (_ADR, 0xFFFF)  // _ADR: Address
                 }
-            }
+            }*/
 
             Device (BR3B)
             {
@@ -30267,7 +30269,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -30567,21 +30569,21 @@
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4158,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4158,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0001,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x5758,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x5758,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x5858,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x5858,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
@@ -37604,7 +37606,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -37904,21 +37906,21 @@
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4558,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4558,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0001,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4259,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4259,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4359,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4359,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
@@ -44941,7 +44943,7 @@
                             ^^PCI0.BR2B.OSHP ()
                             ^^PCI0.BR2C.OSHP ()
                             ^^PCI0.BR2D.OSHP ()
-                            ^^PCI0.BR3A.OSHP ()
+                            //^^PCI0.BR3A.OSHP ()
                             ^^PCI0.BR3B.OSHP ()
                             ^^PCI0.BR3C.OSHP ()
                             ^^PCI0.BR3D.OSHP ()
@@ -45241,21 +45243,21 @@
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4958,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4958,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0001,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4559,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4559,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                     0x0000,             // Granularity
                     0x4659,             // Range Minimum
-                    0x0000,             // Range Maximum
+                    0x4659,             // Range Maximum
                     0x0000,             // Translation Offset
                     0x0000,             // Length
                     ,, , TypeStatic, DenseTranslation)
@@ -53823,7 +53825,7 @@
                 Notify (\_SB.PCI0.BR2D.H007, Local0)
             }
 
-            If ((\_SB.PCI0.BR3A.PMEP == 0x01))
+            /*If ((\_SB.PCI0.BR3A.PMEP == 0x01))
             {
                 Local0 = \_SB.PCI0.BR3A.PMEH (0x05)
             }
@@ -53848,7 +53850,7 @@
                 Notify (\_SB.PCI0.BR3A.H005, Local0)
                 Notify (\_SB.PCI0.BR3A.H006, Local0)
                 Notify (\_SB.PCI0.BR3A.H007, Local0)
-            }
+            }*/
 
             If ((\_SB.PCI0.BR3B.PMEP == 0x01))
             {
@@ -54608,11 +54610,11 @@
                     \_SB.PCI0.BR2D.PMEP = 0x01
                 }
 
-                If ((Local1 == 0x07))
+                /*If ((Local1 == 0x07))
                 {
                     \_SB.PCI0.BR3A.PMES = 0x01
                     \_SB.PCI0.BR3A.PMEP = 0x01
-                }
+                }*/
 
                 If ((Local1 == 0x08))
                 {
@@ -54879,10 +54881,10 @@
                 Notify (\_SB.PCI0.BR2D, 0x02)
             }
 
-            If ((\_SB.PCI0.BR3A.DEVS () != 0x00))
+            /*If ((\_SB.PCI0.BR3A.DEVS () != 0x00))
             {
                 Notify (\_SB.PCI0.BR3A, 0x02)
-            }
+            }*/
 
             If ((\_SB.PCI0.BR3B.DEVS () != 0x00))
             {
@@ -55927,10 +55929,10 @@
                 {
                     Notify (\_SB.PCI0.BR2D, 0x00)
                 }
-                Case (0x28)
+                /*Case (0x28)
                 {
                     Notify (\_SB.PCI0.BR3A, 0x00)
-                }
+                }*/
                 Case (0x29)
                 {
                     Notify (\_SB.PCI0.BR3B, 0x00)
@@ -56736,11 +56738,11 @@
         }
     }
 
-    Scope (_SB.PCI0.BR3A)
+    /*Scope (_SB.PCI0.BR3A)
     {
         Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
         {
-            If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */))
+            If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") / * Device Labeling Interface * /))
             {
                 If (((Arg1 == 0x02) && (Arg2 == 0x00)))
                 {
@@ -56765,7 +56767,7 @@
                  0x00                                           
             })
         }
-    }
+    }*/
 
     Scope (_SB.PCI1.QR1A)
     {

 

DSDT_BIOS_3101.zip

Send me Steffens-iMac.zip

DSDT.dsl.patch


put the nvidia gpu on first pcie slot and amd gpu on secondry pcie slot 
make sure you have lilu + whatevergreen kexts in clover 
then boot with -radoff boot flag . 
it will disable amd gpu drivers and let you boot with nvidia gpu .

Link to comment
Share on other sites

On 12/20/2018 at 1:00 PM, XLNC said:

put the nvidia gpu on first pcie slot and amd gpu on secondry pcie slot 
make sure you have lilu + whatevergreen kexts in clover 
then boot with -radoff boot flag . 
it will disable amd gpu drivers and let you boot with nvidia gpu . 

Thank you for your reply!

 

Do you mean boot Windows with the -radoff boot flag?

Link to comment
Share on other sites

  • 10 months later...

Hello,

 

I have a double boot with Windows 10 and El Capitan

I am using a GTX 980, the Intel integrated GPU is disabled.

 

Now, I am using Mac OS for everything except gaming, for which I go on Windows.

With recent games, I am tempted to move to a more recent NVIDIA card, but can't because there are no drivers for them on Mac OS.

 

I was wondering: can I have two GPUs, each connected to my screen, and have a setup that allows me to expose only one of them to each system.

This means GTX 2080 on Windows, GTX 980 on Mac OS

Did you succeed? And if so, how?

 

I might then update the GTX 980 to an AMD one to benefit from Metal and update my Mac OS. But that's not what's important to me at the moment.

Link to comment
Share on other sites

  • 2 weeks later...
On 11/7/2019 at 11:47 AM, seldo said:

Hello,

 

I have a double boot with Windows 10 and El Capitan

I am using a GTX 980, the Intel integrated GPU is disabled.

 

Now, I am using Mac OS for everything except gaming, for which I go on Windows.

With recent games, I am tempted to move to a more recent NVIDIA card, but can't because there are no drivers for them on Mac OS.

 

I was wondering: can I have two GPUs, each connected to my screen, and have a setup that allows me to expose only one of them to each system.

This means GTX 2080 on Windows, GTX 980 on Mac OS

Did you succeed? And if so, how?

 

I might then update the GTX 980 to an AMD one to benefit from Metal and update my Mac OS. But that's not what's important to me at the moment.

 

 

Nvidia 980 work on mojave??? And catalina?

Link to comment
Share on other sites

On 11/7/2019 at 6:47 PM, seldo said:

Hello,

 

I have a double boot with Windows 10 and El Capitan

I am using a GTX 980, the Intel integrated GPU is disabled.

 

Now, I am using Mac OS for everything except gaming, for which I go on Windows.

With recent games, I am tempted to move to a more recent NVIDIA card, but can't because there are no drivers for them on Mac OS.

 

I was wondering: can I have two GPUs, each connected to my screen, and have a setup that allows me to expose only one of them to each system.

This means GTX 2080 on Windows, GTX 980 on Mac OS

Did you succeed? And if so, how?

 

I might then update the GTX 980 to an AMD one to benefit from Metal and update my Mac OS. But that's not what's important to me at the moment.

I'm using somewhat similar set-up. RX580 in PCI-e slot 1 and 1070 Ti in slot 2. Both are connected to the same monitor (HDMI for RX580 and DP for 1070 Ti). I use this guide to disable the nVidia card in macOS (method 4). In Windows, I just disable the RX580.

 

The computer boots with RX580 HDMI output and 1070 Ti DP output is treated as the second screen. When I boot into Windows, the RX580 is disabled during boot, so the last image of the Windows 10 loading screen stay in the HDMI output. It causes problem when the screen go to sleep in windows - no signal via DP and the monitor will change to HDMI to display the last boot image. Similar problem for macOS, except that it's a blank screen.

 

I've figured out how to work-around this problem in windows, by re-enable and disable the RX580 after every boot. By doing this, it clears out the HDMI output. However, I haven't figured out how to clear the DP output from macOS.

Link to comment
Share on other sites

  • 3 months later...
On 11/21/2019 at 4:55 PM, popophobia said:

I'm using somewhat similar set-up. RX580 in PCI-e slot 1 and 1070 Ti in slot 2. Both are connected to the same monitor (HDMI for RX580 and DP for 1070 Ti). I use this guide to disable the nVidia card in macOS (method 4). In Windows, I just disable the RX580.

 

The computer boots with RX580 HDMI output and 1070 Ti DP output is treated as the second screen. When I boot into Windows, the RX580 is disabled during boot, so the last image of the Windows 10 loading screen stay in the HDMI output. It causes problem when the screen go to sleep in windows - no signal via DP and the monitor will change to HDMI to display the last boot image. Similar problem for macOS, except that it's a blank screen.

 

I've figured out how to work-around this problem in windows, by re-enable and disable the RX580 after every boot. By doing this, it clears out the HDMI output. However, I haven't figured out how to clear the DP output from macOS.

Hi, i have the exact same configuration as your setup. May i know if you have solved the problem? and how did you do so? Thank you.

Link to comment
Share on other sites

 Share

×
×
  • Create New...