wyhtc Posted December 11, 2017 Share Posted December 11, 2017 As we know,AMD Radeon RX Vega can start up without any settings,but it doesn't get the correct FB Name,and the graphics card name in the system information is RX xxx. With WhateverGreen.kext,the graphics card name in the system information is AMD Radeon Vega 64,but the FB Name still wrong.I tried to inject it with SSDT,but at last I failed. In the IORegistryExplorer,the graphics card is in PCI0>PEG0>PEGP>GFX0>display@0,and the FB Name injected failed.With WhateverGreen.kext,the graphics card is in PCI0>PEG0>PEGP>pci-bridge>GFX0. I used AIDA64 to find PEGP, in the PEG0,I find a device name "LTRE",but it can't find in PEG1 and PEG2. So I tried to inject the FB Name with DSDT. This is my way to Inject FB Name “Kamarang”on the Vega 64 with DSDT。Add a new device“LTRE” to replace the “pci-bridge”.I finally succeeded。 Device (PEGP) { Name (_ADR, Zero) // _ADR: Address Device (LTRE) { Name (_ADR, Zero) // _ADR: Address Device (GFX0) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x10) { "AAPL,slot-name", Buffer (0x07) { "Slot-1" }, "@0,name", Buffer (0x0D) { "ATY,Kamarang" }, "@1,name", Buffer (0x0D) { "ATY,Kamarang" }, "@2,name", Buffer (0x0D) { "ATY,Kamarang" }, "@3,name", Buffer (0x0D) { "ATY,Kamarang" }, "device_type", Buffer (0x13) { "ATY,KamarangParent" }, "model", Buffer (0x13) { "Radeon Pro Vega 64" }, "hda-gfx", Buffer (0x0A) { "onboard-2" } }) } } } } } With Injected FB Name,my Hackintosh can sleep,when the computer wakes up from sleep,it works. If the system starts the black screen,please turn off the DP1.2 2017-12-11 20:34 (UTC+8) With my friend's help, I finally succeeded inject FB name for AMD Radeon RX Vega with SSDT. This is the sample.dsl code,you can get the correct device name from IORegistryExplorer and modify them in SSDT.aml . DefinitionBlock ("", "SSDT", 2, "hack", "Wake", 0x00000000) { External (_SB_.PCI0.PEG0.PEGP.LTRE, DeviceObj) // (from opcode) Device (_SB.PCI0.PEG0.PEGP.LTRE) { Name (_ADR, Zero) // _ADR: Address Device (GFX0) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x10) { "AAPL,slot-name", Buffer (0x07) { "Slot-1" }, "@0,name", Buffer (0x0D) { "ATY,Kamarang" }, "@1,name", Buffer (0x0D) { "ATY,Kamarang" }, "@2,name", Buffer (0x0D) { "ATY,Kamarang" }, "@3,name", Buffer (0x0D) { "ATY,Kamarang" }, "device_type", Buffer (0x13) { "ATY,KamarangParent" }, "model", Buffer (0x13) { "Radeon Pro Vega 56" }, "hda-gfx", Buffer (0x0A) { "onboard-2" } }) } } Device (HDAU) { Name (_ADR, One) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x04) { "layout-id", Buffer (0x04) { 0x01, 0x00, 0x00, 0x00 }, "hda-gfx", Buffer (0x0A) { "onboard-2" } }) } } } } DSDT.zip SSDT-Inject FB Name For Vega 56 or 64.zip 7 Link to comment Share on other sites More sharing options...
Gigamaxx Posted December 11, 2017 Share Posted December 11, 2017 As we know,AMD Radeon RX Vega can start up without any settings,but it doesn't get the correct FB Name,and the graphics card name in the system information is RX xxx. With WhateverGreen.kext,the graphics card name in the system information is AMD Radeon Vega 64,but the FB Name still wrong.I tried to inject it with SSDT,but at last I failed. QQ图片20171211101845.jpg In the IORegistryExplorer,the graphics card is in PCI0>PEG0>PEGP>GFX0>display@0,and the FB Name injected failed.With WhateverGreen.kext,the graphics card is in PCI0>PEG0>PEGP>pci-bridge>GFX0. QQ图片201712111018392.jpg I used AIDA64 to find PEGP, in the PEG0,I find a device name "LTRE",but it can't find in PEG1 and PEG2. QQ图片20171211101751.pngQQ图片20171211101758.pngQQ图片20171211101804.png So I tried to inject the FB Name with DSDT. This is my way to Inject FB Name “Kamarang”on the Vega 64 with DSDT。Add a new device“LTRE” to replace the “pci-bridge”.I finally succeeded。 Device (PEGP) { Name (_ADR, Zero) // _ADR: Address Device (LTRE) { Name (_ADR, Zero) // _ADR: Address Device (GFX0) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x10) { "AAPL,slot-name", Buffer (0x07) { "Slot-1" }, "@0,name", Buffer (0x0D) { "ATY,Kamarang" }, "@1,name", Buffer (0x0D) { "ATY,Kamarang" }, "@2,name", Buffer (0x0D) { "ATY,Kamarang" }, "@3,name", Buffer (0x0D) { "ATY,Kamarang" }, "device_type", Buffer (0x13) { "ATY,KamarangParent" }, "model", Buffer (0x13) { "Radeon Pro Vega 64" }, "hda-gfx", Buffer (0x0A) { "onboard-2" } }) } } } } } 501152BB-DC86-4298-8F33-064691AF5502.jpg With Injected FB Name,my Hackintosh can sleep,when the computer wakes up from sleep,it works. If the system starts the black screen,please turn off the DP1.2 DSDT.zip Nice Job! Link to comment Share on other sites More sharing options...
wyhtc Posted December 11, 2017 Author Share Posted December 11, 2017 Nice Job! Thanks! Have you succeeded? Link to comment Share on other sites More sharing options...
Arkanis Posted December 12, 2017 Share Posted December 12, 2017 Gonna give it a try later this week and I will report back. Link to comment Share on other sites More sharing options...
wyhtc Posted December 12, 2017 Author Share Posted December 12, 2017 Gonna give it a try later this week and I will report back. Ok!Wish you success ! Link to comment Share on other sites More sharing options...
Gigamaxx Posted December 12, 2017 Share Posted December 12, 2017 Thanks! Have you succeeded? No, unfortunately my Ryzen dsdt has different terminology for these. Instead of PEGO or PEGP I have BGG8 attached to my PCIO@0 nomenclature. If I add dsdt (PCIO.PEGO) it renames it to IOMM? I’ve been testing but all the guides are for Intel systems. I tried to open your original dsdt but it won’t open using MacaISL editor. I will try again later with your latest links. Update: It works on Ryzen as well. 1 Link to comment Share on other sites More sharing options...
wyhtc Posted December 13, 2017 Author Share Posted December 13, 2017 No, unfortunately my Ryzen dsdt has different terminology for these. Instead of PEGO or PEGP I have BGG8 attached to my PCIO@0 nomenclature. If I add dsdt (PCIO.PEGO) it renames it to IOMM? I’ve been testing but all the guides are for Intel systems. I tried to open your original dsdt but it won’t open using MacaISL editor. I will try again later with your latest links. Update: It works on Ryzen as well. Screen Shot 2017-12-12 at 4.37.19 PM.png Nice Job!And the MacaISL version I used is RM-1.31(252.3)and edited with ACPI 6.1 I have done it successfully with SSDT and tested the FB Name "Kamarang" and "Iriri", they all work properly. Would you like to try this job? These are my SSDT files and the MacaISL editor what I use: SSDT-RX Vega FB.zip MaciASL RM-1.31.zip 1 Link to comment Share on other sites More sharing options...
truemac Posted December 13, 2017 Share Posted December 13, 2017 Nice Job!And the MacaISL version I used is RM-1.31(252.3)and edited with ACPI 6.1 QQ截图20171213100219.png I have done it successfully with SSDT and tested the FB Name "Kamarang" and "Iriri", they all work properly. Would you like to try this job? These are my SSDT files and the MacaISL editor what I use: SSDT-RX Vega FB.zip MaciASL RM-1.31.zip hey use this for device_type and name }, "device_type", Buffer (0x10) { "ATY,IririParent" }, "name", Buffer (0x10) { "ATY,IririParent" }, Link to comment Share on other sites More sharing options...
wyhtc Posted December 13, 2017 Author Share Posted December 13, 2017 hey use this for device_type and name }, "device_type", Buffer (0x10) { "ATY,IririParent" }, "name", Buffer (0x10) { "ATY,IririParent" }, Have you succeeded? Link to comment Share on other sites More sharing options...
truemac Posted December 14, 2017 Share Posted December 14, 2017 i don't have this card that is the way for inject FB. Link to comment Share on other sites More sharing options...
Gigamaxx Posted December 14, 2017 Share Posted December 14, 2017 i don't have this card that is the way for inject FB. Here is a repository of SSDT and DSDT fixes for some common AMD cards. Place in your Clover EFI "ACPI" in "Patched" folder. https://github.com/Pavo-IM/AMD_SSDT Link to comment Share on other sites More sharing options...
losinka Posted December 14, 2017 Share Posted December 14, 2017 What is the deference between Iriri and Kamarang? Both have a same HDMI, 3 x DP. What is a property framebuffer for Vega? Link to comment Share on other sites More sharing options...
wyhtc Posted December 14, 2017 Author Share Posted December 14, 2017 What is the deference between Iriri and Kamarang? Both have a same HDMI, 3 x DP. What is a property framebuffer for Vega? My friends had tested and said to me :Karamang can play H264 video but not H265 with hardware-accelerated graphics, Iriri can play H265 but not H264 with hardware-accelerated graphics. There are no other differences between them. Link to comment Share on other sites More sharing options...
Nightf4ll Posted December 14, 2017 Share Posted December 14, 2017 I used AIDA64 to find PEGP, in the PEG0,I find a device name "LTRE",but it can't find in PEG1 and PEG2. QQ图片20171211101751.pngQQ图片20171211101758.pngQQ图片20171211101804.png Could you explain this a little bit. Which AIDA64 version and how did you find it. Link to comment Share on other sites More sharing options...
wyhtc Posted December 15, 2017 Author Share Posted December 15, 2017 Could you explain this a little bit. Which AIDA64 version and how did you find it. AIDI 64 Engineer. 1 Link to comment Share on other sites More sharing options...
mrmggo Posted December 15, 2017 Share Posted December 15, 2017 My friends had tested and said to me :Karamang can play H264 video but not H265 with hardware-accelerated graphics, Iriri can play H265 but not H264 with hardware-accelerated graphics. There are no other differences between them. I use both Karamang H264 4k and H265 4k for hardware decoding Player: IINA Link to comment Share on other sites More sharing options...
wyhtc Posted December 15, 2017 Author Share Posted December 15, 2017 I use both Karamang H264 4k and H265 4k for hardware decoding Player: IINA Nice job!Thank you for feedback,and I will talk to my friend about your test result. Link to comment Share on other sites More sharing options...
Arkanis Posted December 25, 2017 Share Posted December 25, 2017 Not working for me, but might be due to my setup (Supermicro and dual Xeons), I tried to change the SSDT by myself but I can't get it to work properly or to display properly the name of the card. Will upload later today a IOreg maybe some of you guys will be able to help me. Thanks for the thread and the findings ! EDIT 1: As promised here is attached the IOreg for you guys to check... hope you will find what is going on. Apparently the path to the GFXO for me seems to be _SB / PCI0@0 / HPET / LTRE. Tried to modify that on the SSDT but I keep on getting compiler errors. MacPro.ioreg.zip Link to comment Share on other sites More sharing options...
kn6600 Posted December 25, 2017 Share Posted December 25, 2017 Not working for me, but might be due to my setup (Supermicro and dual Xeons), I tried to change the SSDT by myself but I can't get it to work properly or to display properly the name of the card. Will upload later today a IOreg maybe some of you guys will be able to help me. Thanks for the thread and the findings ! EDIT 1: As promised here is attached the IOreg for you guys to check... hope you will find what is going on. Apparently the path to the GFXO for me seems to be _SB / PCI0@0 / HPET / LTRE. Tried to modify that on the SSDT but I keep on getting compiler errors. The path for your GFX0 is _SB.NPE7.(something).LTRE . You could check this in windows with AIDA64 Engineer to find name of device in NPE7. Link to comment Share on other sites More sharing options...
Gigamaxx Posted December 25, 2017 Share Posted December 25, 2017 The path for your GFX0 is _SB.NPE7.(something).LTRE . You could check this in windows with AIDA64 Engineer to find name of device in NPE7. For my Ryzen systewm I had to use the imac 18.2 to get the GFX0 to work, with MP 6.1 it always listed as IOMM. Link to comment Share on other sites More sharing options...
Arkanis Posted December 26, 2017 Share Posted December 26, 2017 The path for your GFX0 is _SB.NPE7.(something).LTRE . You could check this in windows with AIDA64 Engineer to find name of device in NPE7. Problem is I don't have a windows partition on this machine, Linux possibly ? So I can make a USB stick and boot from it and find out... but I have no clue what tool to use on Linux, any idea ? Link to comment Share on other sites More sharing options...
MaLd0n Posted December 26, 2017 Share Posted December 26, 2017 Just create + two devices inside device with Name (_ADR, Zero) PEG0/PEGP/GFX0/GFX1, add patch into GFX1 Your DSDT full patched, add ur _DSM into GFX1 DSDT.wyhtc.zip 1 Link to comment Share on other sites More sharing options...
Arkanis Posted December 27, 2017 Share Posted December 27, 2017 Can you elaborate a little bit more ? What is the relationship between renaming to GFX1 with naming properly the card in the SSDT method ? Link to comment Share on other sites More sharing options...
MaLd0n Posted December 27, 2017 Share Posted December 27, 2017 Can you elaborate a little bit more ? What is the relationship between renaming to GFX1 with naming properly the card in the SSDT method ? not rename, device don't exist, u need create one with correct Name (_ADR Link to comment Share on other sites More sharing options...
kn6600 Posted December 27, 2017 Share Posted December 27, 2017 Problem is I don't have a windows partition on this machine, Linux possibly ? So I can make a USB stick and boot from it and find out... but I have no clue what tool to use on Linux, any idea ? Try this SSDT. SSDT-Vega.aml.zip 1 Link to comment Share on other sites More sharing options...
Recommended Posts