Jump to content
1504 posts in this topic

Recommended Posts

Hi, I really appreciate this work. 

One question: in readme file of https://github.com/acidanthera/WhateverGreen, I see

  • -cdfon (and enable-hdmi20 property) to enable HDMI 2.0 patches

Does that mean I should have both -cdfon boot argument and inject enable-hdmi20 in IGPU properties?

  • Like 1
2 minutes ago, zhengshiqi said:

Hi, I really appreciate this work. 

One question: in readme file of https://github.com/acidanthera/WhateverGreen, I see

  • -cdfon (and enable-hdmi20 property) to enable HDMI 2.0 patches

Does that mean I should have both -cdfon boot argument and inject enable-hdmi20 in IGPU properties?

 

No. Choose one of them. 

  • Like 1

Hi guys,

Is there a flag to set a display which is connected to the GPU using the DisplayPort to be detected as the main display?

I have two monitors and one of them have only one HDMI port and the other one has a one DisplayPort and two HDMIs. When I use HDMI cables I can change the priority of the display by swapping the cables but when I use both DP and HDMI cables the display which is connected to the HDMI is always being detected as the main display no matter what.

 

Is there a way to fix it?

 

Thanks in advance.

2 hours ago, Cyberdevs said:

Hi guys,

Is there a flag to set a display which is connected to the GPU using the DisplayPort to be detected as the main display?

I have two monitors and one of them have only one HDMI port and the other one has a one DisplayPort and two HDMIs. When I use HDMI cables I can change the priority of the display by swapping the cables but when I use both DP and HDMI cables the display which is connected to the HDMI is always being detected as the main display no matter what.

 

Is there a way to fix it?

 

Thanks in advance.

Are you looking for the boot-display property as detailed here?

8 minutes ago, scj312 said:

Are you looking for the boot-display property as detailed here?

No not the boot-display properties, I'm looking for the display detection after macOS is loaded.

 

P.S.

Thanks for the link though I might find my answer there.

Edited by Cyberdevs
3 hours ago, Cyberdevs said:

Hi guys,

Is there a flag to set a display which is connected to the GPU using the DisplayPort to be detected as the main display?

I have two monitors and one of them have only one HDMI port and the other one has a one DisplayPort and two HDMIs. When I use HDMI cables I can change the priority of the display by swapping the cables but when I use both DP and HDMI cables the display which is connected to the HDMI is always being detected as the main display no matter what.

 

Is there a way to fix it?

 

Thanks in advance.

Is this what you are looking for ?

Seems too simple.

2 hours ago, Cyberdevs said:

Nope that's not what I'm looking for. :D

That doesn't work either anyways.

 

Clearly I do not understand what you are trying to do. Sorry.:)

 

But linked article worked for me.

In Display preferences arrangement window, I can drag & drop the menu bar from the DP screen to the HDMI screen and it changes the main display to the HDMI screen. On reboot, the login screen is now always HDMI.

 

  • Like 1
17 hours ago, MacNB said:

Clearly I do not understand what you are trying to do. Sorry.:)

 

But linked article worked for me.

In Display preferences arrangement window, I can drag & drop the menu bar from the DP screen to the HDMI screen and it changes the main display to the HDMI screen. On reboot, the login screen is now always HDMI.

 

Yeah actually at first I thought the guide is for arranging displays which didn't work for me and after reading the whole article I realized that it's different than I though and it easily fixed the issue, thanks for the help :)

3 minutes ago, Cyberdevs said:

Yeah actually at first I thought the guide is for arranging displays which didn't work for me and after reading the whole article I realized that it's different than I though and it easily fixed the issue, thanks for the help :)

Great. So I did understand what you were trying to do :D

Glad you fixed it.

hey again,

 

any chance the kernelversion check of new AppleBacklightFixup- Feature in WG could get removed?!

 

if (kextBacklight.loadIndex == index) {
		const uint8_t find[]    = {"F%uT%04x"};
		const uint8_t replace[] = {"F%uTxxxx"};
		KernelPatcher::LookupPatch patch = {&kextBacklight, find, replace, sizeof(find), 1};
		if (getKernelVersion() >= KernelVersion::Sierra) {
			DBGLOG("weg", "applying backlight patch");
			patcher.applyLookupPatch(&patch);
		}
	}

This breaks the function in Yosemite and so on...

 

thx :D

 

@vit9696 Anyway to fix screen recording in Mojave when using MacPro6,1 SMBIOS? Console log shows:

GVA encoder error: Branch_Encoder1_AMD2, input format not supported

I noticed you have some patches for /System/Library/PrivateFrameworks/AppleGVA.framework/Versions/A/AppleGVA built into WEG. 

 

LOL, once again I figured it out, all I needed was shiki-id=Mac-7BA5B2D9E42DDD94 shikigva=33

Edited by Pavo
13 hours ago, Pavo said:

@vit9696 I was wondering if there is away to make WEG name the discrete GPU from GFX0 to GFX2 if using MacPro6,1 SMBIOS.  Nevermind I figured it out

..and the solution was ?

10 hours ago, Pavo said:

@vit9696 Anyway to fix screen recording in Mojave when using MacPro6,1 SMBIOS? Console log shows:


GVA encoder error: Branch_Encoder1_AMD2, input format not supported

I noticed you have some patches for /System/Library/PrivateFrameworks/AppleGVA.framework/Versions/A/AppleGVA built into WEG. 

 

LOL, once again I figured it out, all I needed was shiki-id=Mac-7BA5B2D9E42DDD94 shikigva=33

Is that fix for your Vega or RX580 system ?

4 hours ago, MacNB said:

..and the solution was ?

I didn't have to rename the device from GFX0 to GFX1 or GFX2. All I had to do was use an injector kext to add my vendor device to AGPM. If you look at the AGPM info.plist, the iMacPro1,1 board-id section has the AGPM settings for both Vega 56 and Vega 64. I copied those settings and just changed the device-id and it worked. I also used the same injector kext to make AGDP use the same policy that iMacPro1,1 uses for the AGPM.

<key>AGPM</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AGPM</string>
			<key>IOClass</key>
			<string>AGPMController</string>
			<key>IONameMatch</key>
			<string>AGPMEnabler</string>
			<key>IOProviderClass</key>
			<string>IOPlatformPluginDevice</string>
			<key>Machines</key>
			<dict>
				<key>Mac-F60DEB81FF30ACF6</key>
				<dict>
					<key>Vendor1002Device687f</key>
					<dict>
						<key>AGDCEnabled</key>
						<integer>1</integer>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>-1</integer>
						</dict>
						<key>control-id</key>
						<integer>17</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
					<key>GFX1</key>
					<dict>
						<key>AGDCEnabled</key>
						<integer>1</integer>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>-1</integer>
						</dict>
						<key>control-id</key>
						<integer>16</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
					<key>GFX2</key>
					<dict>
						<key>AGDCEnabled</key>
						<integer>1</integer>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>-1</integer>
						</dict>
						<key>control-id</key>
						<integer>17</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
				</dict>
         </dict>
<dict>
		<key>AppleGraphicsDevicePolicy</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AppleGraphicsDevicePolicy</string>
			<key>Config4</key>
			<dict>
				<key>GFX0</key>
				<dict>
					<key>EDID</key>
					<dict>
						<key>index</key>
						<integer>0</integer>
					</dict>
					<key>FeatureControl</key>
					<integer>12</integer>
					<key>unload</key>
					<false/>
				</dict>
				<key>IGPU</key>
				<dict>
					<key>unload</key>
					<true/>
				</dict>
				<key>display</key>
				<dict>
					<key>EDID</key>
					<dict>
						<key>index</key>
						<integer>0</integer>
					</dict>
					<key>FeatureControl</key>
					<integer>12</integer>
					<key>unload</key>
					<false/>
				</dict>
			</dict>
			<key>ConfigMap</key>
			<dict>
				<key>Mac-F60DEB81FF30ACF6</key>
				<string>Config4</string>
			</dict>
			<key>IOClass</key>
			<string>AppleGraphicsDevicePolicy</string>
			<key>IOMatchCategory</key>
			<string>AppleGraphicsDevicePolicy</string>
			<key>IOProviderClass</key>
			<string>AppleGraphicsDeviceControl</string>
			<key>IOResourceMatch</key>
			<string>IOKit</string>
		</dict>
4 hours ago, MacNB said:

Is that fix for your Vega or RX580 system ?

This is for my Asus STRIX OC Radeon RX Vega 64. Looking at WEG source code under the Shiki section it explains how to enable hardware encoding/decoding for systems that don't have iGPU or have it disabled. Using these settings I was able to get hardware encoding/decoding working for my Vega 64. For me I am only enabling ForceOnlineRenderer, and ReplaceBoardID. So that would mean ForceOnlineRenderer = 1 and ReplaceBoardID = 32, 1+32=33, so.... shikigva=33 bootarg. Since I am also changing the board-id that Shiki will be using I also have to have shiki-id=Mac-7BA5B2D9E42DDD94 as bootarg.

private:
	// Aside generic DRM unlock patches, which are always on, Shiki also provides a set of patches
	// to workaround various issues with hardware video acceleration support.
	// These are set as a shikigva boot-arg bitmask.
	// For example, to enable ForceOnlineRenderer, ExecutableWhitelist, and ReplaceBoardID
	// you sum 1 + 8 + 32 = 41 -> and pass shikigva=41.
	enum ShikiGVAPatches {
		// Remove forceOfflineRenderer from AppleGVA Info.plist.
		// This is required to allow hardware acceleration on several mac models with discrete GPUs
		// when only IGPU is available.
		// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
		ForceOnlineRenderer        = 1,
		// Remve hweBGRA from AppleGVA Info.plist.
		// hweBGRA is not supported by NVIDIA GPUs, so the patch is sometimes required when using NVIDIA
		// in a mac model meant to be used with AMD or Intel.
		// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
		AllowNonBGRA               = 2,
		// Prior to 10.13.4 certain GPU+CPU combinations were not meant to provide hardware acceleration and had to be patched.
		// The overall problematic configuration list is: NVIDIA+BDW, NVIDIA+SKL, NVIDIA+KBL, AMD+IVB, NVIDIA+SNB.
		// Enabled automatically if shikigva is *NOT* passed on 10.13.3 and earlier. All are fixed in 10.13.4.
		ForceCompatibleRenderer    = 4,
		// Unlike 10.12.6 without security updates and earlier, on 10.13 and latest 10.12.6 AppleGVA patches
		// do not apply to all processes, and each process needs to be patched explicitly. This is a bug
		// in Lilu, which needs to be explored and fixed. For now this bit ensures that the processes present
		// in WHITELIST section of Patches.plist will definitely get the fixes even on 10.13 and 10.12.6.
		// On 10.12.6 and 10.13 this must be used if any of the following bits are used:
		// - ForceOnlineRenderer
		// - AllowNonBGRA
		// - ForceCompatibleRenderer
		// - ReplaceBoardID
		// - FixSandyBridgeClassName
		// It is enabled automatically on 10.12 and 10.13 if shikigva is *NOT* passed and ForceCompatibleRenderer or
		// FixSandyBridgeClassName are automatically enabled.
		AddExecutableWhitelist     = 8,
		DisabledUnused16           = 16,
		// Replace board-id used by AppleGVA by a different board-id.
		// Sometimes it is feasible to use different GPU acceleration settings from the main mac model.
		// By default Mac-27ADBB7B4CEE8E61 (iMac14,2) will be used, but you can override this via shiki-id boot-arg.
		// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
		ReplaceBoardID             = 32,
		// Attempt to support fps.1_0 (FairPlay 1.0) in Safari.
		// This should technically fix some very old streaming services in Safari, which rely on FairPlay DRM
		// similar to the one found in iTunes. Newer streaming services require FairPlay 2.0, which is hardware-only,
		// so nothing could be done about them.
		// Another way to enable this is to pass -shikifps boot argument.
		UnlockFP10Streaming        = 64,
		DeprecatedUnused128        = 128
	};

 

Edited by Pavo
2 hours ago, Pavo said:

I didn't have to rename the device from GFX0 to GFX1 or GFX2. All I had to do was use an injector kext to add my vendor device to AGPM. If you look at the AGPM info.plist, the iMacPro1,1 board-id section has the AGPM settings for both Vega 56 and Vega 64. I copied those settings and just changed the device-id and it worked. I also used the same injector kext to make AGDP use the same policy that iMacPro1,1 uses for the AGPM.


<key>AGPM</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AGPM</string>
			<key>IOClass</key>
			<string>AGPMController</string>
			<key>IONameMatch</key>
			<string>AGPMEnabler</string>
			<key>IOProviderClass</key>
			<string>IOPlatformPluginDevice</string>
			<key>Machines</key>
			<dict>
				<key>Mac-F60DEB81FF30ACF6</key>
				<dict>
					<key>Vendor1002Device687f</key>
					<dict>
						<key>AGDCEnabled</key>
						<integer>1</integer>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>-1</integer>
						</dict>
						<key>control-id</key>
						<integer>17</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
					<key>GFX1</key>
					<dict>
						<key>AGDCEnabled</key>
						<integer>1</integer>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>-1</integer>
						</dict>
						<key>control-id</key>
						<integer>16</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
					<key>GFX2</key>
					<dict>
						<key>AGDCEnabled</key>
						<integer>1</integer>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>-1</integer>
						</dict>
						<key>control-id</key>
						<integer>17</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
				</dict>
         </dict>

<dict>
		<key>AppleGraphicsDevicePolicy</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AppleGraphicsDevicePolicy</string>
			<key>Config4</key>
			<dict>
				<key>GFX0</key>
				<dict>
					<key>EDID</key>
					<dict>
						<key>index</key>
						<integer>0</integer>
					</dict>
					<key>FeatureControl</key>
					<integer>12</integer>
					<key>unload</key>
					<false/>
				</dict>
				<key>IGPU</key>
				<dict>
					<key>unload</key>
					<true/>
				</dict>
				<key>display</key>
				<dict>
					<key>EDID</key>
					<dict>
						<key>index</key>
						<integer>0</integer>
					</dict>
					<key>FeatureControl</key>
					<integer>12</integer>
					<key>unload</key>
					<false/>
				</dict>
			</dict>
			<key>ConfigMap</key>
			<dict>
				<key>Mac-F60DEB81FF30ACF6</key>
				<string>Config4</string>
			</dict>
			<key>IOClass</key>
			<string>AppleGraphicsDevicePolicy</string>
			<key>IOMatchCategory</key>
			<string>AppleGraphicsDevicePolicy</string>
			<key>IOProviderClass</key>
			<string>AppleGraphicsDeviceControl</string>
			<key>IOResourceMatch</key>
			<string>IOKit</string>
		</dict>

This is for my Asus STRIX OC Radeon RX Vega 64. Looking at WEG source code under the Shiki section it explains how to enable hardware encoding/decoding for systems that don't have iGPU or have it disabled. Using these settings I was able to get hardware encoding/decoding working for my Vega 64.


private:
	// Aside generic DRM unlock patches, which are always on, Shiki also provides a set of patches
	// to workaround various issues with hardware video acceleration support.
	// These are set as a shikigva boot-arg bitmask.
	// For example, to enable ForceOnlineRenderer, ExecutableWhitelist, and ReplaceBoardID
	// you sum 1 + 8 + 32 = 41 -> and pass shikigva=41.
	enum ShikiGVAPatches {
		// Remove forceOfflineRenderer from AppleGVA Info.plist.
		// This is required to allow hardware acceleration on several mac models with discrete GPUs
		// when only IGPU is available.
		// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
		ForceOnlineRenderer        = 1,
		// Remve hweBGRA from AppleGVA Info.plist.
		// hweBGRA is not supported by NVIDIA GPUs, so the patch is sometimes required when using NVIDIA
		// in a mac model meant to be used with AMD or Intel.
		// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
		AllowNonBGRA               = 2,
		// Prior to 10.13.4 certain GPU+CPU combinations were not meant to provide hardware acceleration and had to be patched.
		// The overall problematic configuration list is: NVIDIA+BDW, NVIDIA+SKL, NVIDIA+KBL, AMD+IVB, NVIDIA+SNB.
		// Enabled automatically if shikigva is *NOT* passed on 10.13.3 and earlier. All are fixed in 10.13.4.
		ForceCompatibleRenderer    = 4,
		// Unlike 10.12.6 without security updates and earlier, on 10.13 and latest 10.12.6 AppleGVA patches
		// do not apply to all processes, and each process needs to be patched explicitly. This is a bug
		// in Lilu, which needs to be explored and fixed. For now this bit ensures that the processes present
		// in WHITELIST section of Patches.plist will definitely get the fixes even on 10.13 and 10.12.6.
		// On 10.12.6 and 10.13 this must be used if any of the following bits are used:
		// - ForceOnlineRenderer
		// - AllowNonBGRA
		// - ForceCompatibleRenderer
		// - ReplaceBoardID
		// - FixSandyBridgeClassName
		// It is enabled automatically on 10.12 and 10.13 if shikigva is *NOT* passed and ForceCompatibleRenderer or
		// FixSandyBridgeClassName are automatically enabled.
		AddExecutableWhitelist     = 8,
		DisabledUnused16           = 16,
		// Replace board-id used by AppleGVA by a different board-id.
		// Sometimes it is feasible to use different GPU acceleration settings from the main mac model.
		// By default Mac-27ADBB7B4CEE8E61 (iMac14,2) will be used, but you can override this via shiki-id boot-arg.
		// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
		ReplaceBoardID             = 32,
		// Attempt to support fps.1_0 (FairPlay 1.0) in Safari.
		// This should technically fix some very old streaming services in Safari, which rely on FairPlay DRM
		// similar to the one found in iTunes. Newer streaming services require FairPlay 2.0, which is hardware-only,
		// so nothing could be done about them.
		// Another way to enable this is to pass -shikifps boot argument.
		UnlockFP10Streaming        = 64,
		DeprecatedUnused128        = 128
	};

 

 

Thanks.

On the encode issue on my i7-3770K + RX580, I've not had any joy (iMac13,2).

H.264 is fine playback and encode (but uses the CPU+IGPU).

HEVC hangs the system (very slugish forcing a reboot). I tried the changing just the Board-ID to different values in the SMBIOS but no joy.

I don't use Whatevergreen as it made no difference.

But I had not used the shiki-id= trick.

 

That board ID you used is for which system ?

 

 

2 minutes ago, MacNB said:

 

Thanks.

On the encode issue on my i7-3770K + RX580, I've not had any joy (iMac13,2).

H.264 is fine playback and encode (but uses the CPU+IGPU).

HEVC hangs the system (very slugish forcing a reboot). I tried the changing just the Board-ID to different values in the SMBIOS but no joy.

I don't use Whatevergreen as it made no difference.

But I had not used the shiki-id= trick.

You should be able to disable iGPU and use RX 580 for encoding/decoding just fine. WhateverGreen is required for using shiki-id but you also have to use shikigva bootarg in order to pass the shiki-id bootarg.

 

5 minutes ago, MacNB said:

That board ID you used is for which system ?

 Mac-7BA5B2D9E42DDD94 is iMacPro1,1 board-id. The reason I chose it was because they come with Vega GPUs and do not have iGPUs. Now I could be wrong but I think you have to have working AGPM to get encoding/decoding working for the GPU. To check if you have working AGPM look at your IOReg. Check to see if you have this on your GPU:

Screenshot-2018-12-15-13-02-37.png

If you don't then you need to get AGPM working for the GPU prior to getting encoding/decoding working.

 

12 minutes ago, Pavo said:

You should be able to disable iGPU and use RX 580 for encoding/decoding just fine. WhateverGreen is required for using shiki-id but you also have to use shikigva bootarg in order to pass the shiki-id bootarg.

 

 Mac-7BA5B2D9E42DDD94 is iMacPro1,1 board-id. The reason I chose it was because they come with Vega GPUs and do not have iGPUs. Now I could be wrong but I think you have to have working AGPM to get encoding/decoding working for the GPU. To check if you have working AGPM look at your IOReg. Check to see if you have this on your GPU:

Screenshot-2018-12-15-13-02-37.png

If you don't then you need to get AGPM working for the GPU prior to getting encoding/decoding working.

 

 

OK thx. Yes I have AGPM working:

 

1698476146_Screenshot2018-12-15at18_16_15.thumb.png.4d9553e37cc9cecbe0ad5b02969e3d0d.png

 

1523403980_Screenshot2018-12-15at18_15_16.thumb.png.6f3d7a1fde00d197c08d30e394171ea4.png

 

I'll try WEG and disabling IGPU then use board-id from iMac18,3 (Mac-BE088AF8C5EB4FA2) as it has a Radeon Pro 580 similar to RX580.

7 minutes ago, MacNB said:

 

OK thx. Yes I have AGPM working:

 

1698476146_Screenshot2018-12-15at18_16_15.thumb.png.4d9553e37cc9cecbe0ad5b02969e3d0d.png

 

1523403980_Screenshot2018-12-15at18_15_16.thumb.png.6f3d7a1fde00d197c08d30e394171ea4.png

 

I'll try WEG and disabling IGPU then use board-id from iMac18,3 (Mac-BE088AF8C5EB4FA2) as it has a Radeon Pro 580 similar to RX580.

Make sure you use the same info from iMac18,3 AGPM settings because it looks like your GFX0 settings are not the same as iMac18,3 settings:

<key>Mac-BE088AF8C5EB4FA2</key>
	<dict>
		<key>Vendor1002Device67df</key>
			<dict>
				<key>AGDCEnabled</key>
				<integer>1</integer>
				<key>Heuristic</key>
			<dict>
				<key>ID</key>
				<integer>-1</integer>
			</dict>
				<key>control-id</key>
				<integer>17</integer>
				<key>max-power-state</key>
				<integer>15</integer>
				<key>min-power-state</key>
				<integer>0</integer>
			</dict>

 

3 minutes ago, Pavo said:

Make sure you use the same info from iMac18,3 AGPM settings because it looks like your GFX0 settings are not the same as iMac18,3 settings:


<key>Mac-BE088AF8C5EB4FA2</key>
	<dict>
		<key>Vendor1002Device67df</key>
			<dict>
				<key>AGDCEnabled</key>
				<integer>1</integer>
				<key>Heuristic</key>
			<dict>
				<key>ID</key>
				<integer>-1</integer>
			</dict>
				<key>control-id</key>
				<integer>17</integer>
				<key>max-power-state</key>
				<integer>15</integer>
				<key>min-power-state</key>
				<integer>0</integer>
			</dict>

 

 

Good point. Will change that. Thx.

On 12/10/2018 at 8:52 AM, Andres ZeroCross said:

I get black screen after wake from Sleep in Mojave 10.14.2

eGPU : Radeon RX580
macOS Version : Mojave 10.14.2

It wake from sleep with normal condition in previous mojave 10.14 and 10.14.1 include beta 10.14.2. But after update to public release 10.14.2 i get black screen after wake from sleep if i sleep for long time. If for short time, it wake normally from sleep.
I used Lilu.kext version 1.2.8 and WhateverGreen version 1.2.4 

 

Same issue here. Using a Vanilla install, on an Asus Z370-A II / i7-8700K, dGPU (not external, it's on motherboard) Sapphire RX580 Nitro+. Wake after short sleep ok, long sleep (don't know how long exactly to trigger issue) does not work (blank screen).

 

Also notice that sometimes after wake from sleep, that dGPU memory clock speed gets stock at 2000 MHz even though dGPU core clock speed throttles up and down ok. It's fixed if I change display resolution to something else and back again. Anyone seen that issue?

 

The RX580 in my setup is idling at around 47 degrees (it's fans are off, which I do like a lot), while CPU is at around 37 degrees C. The heat pipes are rather hot on the RX580, and so is the whole metal side of the card. I would love if it idled at lower temps. Much warmer than CPU tower heatsink (nh-d15s). What are you experience here? 

Edited by gimtudil
33 minutes ago, gimtudil said:

 

Same issue here. Using a Vanilla install, on an Asus Z370-A II / i7-8700K, dGPU (not external, it's on motherboard) Sapphire RX580 Nitro+. Wake after short sleep ok, long sleep (don't know how long exactly to trigger issue) does not work (blank screen).

 

Also notice that sometimes after wake from sleep, that dGPU memory clock speed gets stock at 2000 MHz even though dGPU core clock speed throttles up and down ok. It's fixed if I change display resolution to something else and back again. Anyone seen that issue?

 

The RX580 in my setup is idling at around 47 degrees (it's fans are off, which I do like a lot), while CPU is at around 37 degrees C. The heat pipes are rather hot on the RX580, and so is the whole metal side of the card. I would love if it idled at lower temps. Much warmer than CPU tower heatsink (nh-d15s). What are you experience here? 

Would love to see a pic of (not external, it's on motherboard) Sapphire RX580 Nitro+.

On 12/15/2018 at 3:04 PM, Pavo said:

I didn't have to rename the device from GFX0 to GFX1 or GFX2. All I had to do was use an injector kext to add my vendor device to AGPM. If you look at the AGPM info.plist, the iMacPro1,1 board-id section has the AGPM settings for both Vega 56 and Vega 64. I copied those settings and just changed the device-id and it worked. I also used the same injector kext to make AGDP use the same policy that iMacPro1,1 uses for the AGPM.


<key>AGPM</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AGPM</string>
			<key>IOClass</key>
			<string>AGPMController</string>
			<key>IONameMatch</key>
			<string>AGPMEnabler</string>
			<key>IOProviderClass</key>
			<string>IOPlatformPluginDevice</string>
			<key>Machines</key>
			<dict>
				<key>Mac-F60DEB81FF30ACF6</key>
				<dict>
					<key>Vendor1002Device687f</key>
					<dict>
						<key>AGDCEnabled</key>
						<integer>1</integer>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>-1</integer>
						</dict>
						<key>control-id</key>
						<integer>17</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
					<key>GFX1</key>
					<dict>
						<key>AGDCEnabled</key>
						<integer>1</integer>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>-1</integer>
						</dict>
						<key>control-id</key>
						<integer>16</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
					<key>GFX2</key>
					<dict>
						<key>AGDCEnabled</key>
						<integer>1</integer>
						<key>Heuristic</key>
						<dict>
							<key>ID</key>
							<integer>-1</integer>
						</dict>
						<key>control-id</key>
						<integer>17</integer>
						<key>max-power-state</key>
						<integer>15</integer>
						<key>min-power-state</key>
						<integer>0</integer>
					</dict>
				</dict>
         </dict>

<dict>
		<key>AppleGraphicsDevicePolicy</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AppleGraphicsDevicePolicy</string>
			<key>Config4</key>
			<dict>
				<key>GFX0</key>
				<dict>
					<key>EDID</key>
					<dict>
						<key>index</key>
						<integer>0</integer>
					</dict>
					<key>FeatureControl</key>
					<integer>12</integer>
					<key>unload</key>
					<false/>
				</dict>
				<key>IGPU</key>
				<dict>
					<key>unload</key>
					<true/>
				</dict>
				<key>display</key>
				<dict>
					<key>EDID</key>
					<dict>
						<key>index</key>
						<integer>0</integer>
					</dict>
					<key>FeatureControl</key>
					<integer>12</integer>
					<key>unload</key>
					<false/>
				</dict>
			</dict>
			<key>ConfigMap</key>
			<dict>
				<key>Mac-F60DEB81FF30ACF6</key>
				<string>Config4</string>
			</dict>
			<key>IOClass</key>
			<string>AppleGraphicsDevicePolicy</string>
			<key>IOMatchCategory</key>
			<string>AppleGraphicsDevicePolicy</string>
			<key>IOProviderClass</key>
			<string>AppleGraphicsDeviceControl</string>
			<key>IOResourceMatch</key>
			<string>IOKit</string>
		</dict>

This is for my Asus STRIX OC Radeon RX Vega 64. Looking at WEG source code under the Shiki section it explains how to enable hardware encoding/decoding for systems that don't have iGPU or have it disabled. Using these settings I was able to get hardware encoding/decoding working for my Vega 64. For me I am only enabling ForceOnlineRenderer, and ReplaceBoardID. So that would mean ForceOnlineRenderer = 1 and ReplaceBoardID = 32, 1+32=33, so.... shikigva=33 bootarg. Since I am also changing the board-id that Shiki will be using I also have to have shiki-id=Mac-7BA5B2D9E42DDD94 as bootarg.


private:
	// Aside generic DRM unlock patches, which are always on, Shiki also provides a set of patches
	// to workaround various issues with hardware video acceleration support.
	// These are set as a shikigva boot-arg bitmask.
	// For example, to enable ForceOnlineRenderer, ExecutableWhitelist, and ReplaceBoardID
	// you sum 1 + 8 + 32 = 41 -> and pass shikigva=41.
	enum ShikiGVAPatches {
		// Remove forceOfflineRenderer from AppleGVA Info.plist.
		// This is required to allow hardware acceleration on several mac models with discrete GPUs
		// when only IGPU is available.
		// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
		ForceOnlineRenderer        = 1,
		// Remve hweBGRA from AppleGVA Info.plist.
		// hweBGRA is not supported by NVIDIA GPUs, so the patch is sometimes required when using NVIDIA
		// in a mac model meant to be used with AMD or Intel.
		// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
		AllowNonBGRA               = 2,
		// Prior to 10.13.4 certain GPU+CPU combinations were not meant to provide hardware acceleration and had to be patched.
		// The overall problematic configuration list is: NVIDIA+BDW, NVIDIA+SKL, NVIDIA+KBL, AMD+IVB, NVIDIA+SNB.
		// Enabled automatically if shikigva is *NOT* passed on 10.13.3 and earlier. All are fixed in 10.13.4.
		ForceCompatibleRenderer    = 4,
		// Unlike 10.12.6 without security updates and earlier, on 10.13 and latest 10.12.6 AppleGVA patches
		// do not apply to all processes, and each process needs to be patched explicitly. This is a bug
		// in Lilu, which needs to be explored and fixed. For now this bit ensures that the processes present
		// in WHITELIST section of Patches.plist will definitely get the fixes even on 10.13 and 10.12.6.
		// On 10.12.6 and 10.13 this must be used if any of the following bits are used:
		// - ForceOnlineRenderer
		// - AllowNonBGRA
		// - ForceCompatibleRenderer
		// - ReplaceBoardID
		// - FixSandyBridgeClassName
		// It is enabled automatically on 10.12 and 10.13 if shikigva is *NOT* passed and ForceCompatibleRenderer or
		// FixSandyBridgeClassName are automatically enabled.
		AddExecutableWhitelist     = 8,
		DisabledUnused16           = 16,
		// Replace board-id used by AppleGVA by a different board-id.
		// Sometimes it is feasible to use different GPU acceleration settings from the main mac model.
		// By default Mac-27ADBB7B4CEE8E61 (iMac14,2) will be used, but you can override this via shiki-id boot-arg.
		// See /System/Library/PrivateFrameworks/AppleGVA.framework/Resources/Info.plist for more details.
		ReplaceBoardID             = 32,
		// Attempt to support fps.1_0 (FairPlay 1.0) in Safari.
		// This should technically fix some very old streaming services in Safari, which rely on FairPlay DRM
		// similar to the one found in iTunes. Newer streaming services require FairPlay 2.0, which is hardware-only,
		// so nothing could be done about them.
		// Another way to enable this is to pass -shikifps boot argument.
		UnlockFP10Streaming        = 64,
		DeprecatedUnused128        = 128
	};

 

 

So..let me get this right.

On your VEGA system, you have your SMBIOS model id set for MacPro6,1 but using iMacPro1,1 Board-ID bootarg shiki-id=Mac-7BA5B2D9E42DDD94; and injecting AGPM & AGDP kext for MacPro6,1 ?

58 minutes ago, MacNB said:

 

So..let me get this right.

On your VEGA system, you have your SMBIOS model id set for MacPro6,1 but using iMacPro1,1 Board-ID bootarg shiki-id=Mac-7BA5B2D9E42DDD94; and injecting AGPM & AGDP kext for MacPro6,1 ?

I am using MacPro6,1 SMBIOS, injecting iMacPro1,1 as a Shiki board-Id and using a injector kext to make AGPM and AGDP use the iMacPro1,1 AGPM and AGDP settings instead of using MacPro6,1 AGPM and AGDP settings.

×
×
  • Create New...