bugtracker
bugtracker copied to clipboard
Apparently Lexa core RX 550s work now
Tested this with a user:
Looking for more reports, will add if more confirmed reports. We should also figure out when exactly support was added.
As discussed in #129, this is interesting... You appear to be performing an override of the device properties using OC to rename the model to 0x67FF which will make the Mac think that it is a baffin core and use the baffin video driver.
You can confirm this with the following commands;
ioreg | grep AMD | grep Graph
| | | | +-o AMDRadeonX4000_AMDBaffinGraphicsAccelerator <class AMDRadeonX4000_AMDBaffinGraphicsAccelerator, id 0x10000042a, registered, matched, active, busy 0 (74476 ms), retain 173>
sudo kextstat | grep AMDRadeonX4000
141 0 0xffffff7f814bd000 0x3000 0x3000 com.apple.kext.AMDRadeonX4000HWServices (4.0.6) FC82F0FE-2CC3-3A8A-983E-251CB8FB6548 <113 14 13 8 6 5 3 1>
143 0 0xffffff7f81035000 0x436000 0x436000 com.apple.kext.AMDRadeonX4000 (4.0.6) 03E18D1E-6494-354B-A03F-899C7200F708 <142 113 72 14 8 6 5 3 1>
144 0 0xffffff7f814c5000 0x2f6000 0x2f6000 com.apple.kext.AMDRadeonX4000HWLibs (1.0) 07DFBE18-721B-31E3-BA62-425763A78B88 <14 6 5 3 1>
What does the underlying hardware identify the card as without the OC override?
Hello, I just applied this OC rename trick on a freshly bought (used) RX 550 with lexa core. It was originally detected as Lexa and not supported (strange 9Mb memory size detected) and now works perfectly !
I just applied this OC rename trick on a freshly bought (used) RX 550 with lexa core. It was originally detected as Lexa and not supported (strange 9Mb memory size detected) and now works perfectly !
I have a theory that AMD launched Lexa in 2017 but it was quickly replaced by the better Baffin chips in 2018. There may have been a period of time where they were manufacturing/supplying both SKUs to card vendors but after a while they stopped making or ran out of the older Lexa chips. It seems inefficient to maintain two production nodes unnecessarily. Since then they may have only been making Baffin cores and binning them based on the number of working SPs. Of course this is just a theory.
Can you let us know the vendor and model number of your graphics card? Also you say it was "originally detected as Lexa" by what software and how? Try running the commands I listed above to see what driver your Hackintosh is using. If you have used OC to make your Hackintosh think it is a baffin chip then it should be using the baffin driver. The baffin driver shouldn't be able to control a Lexa chip. Hence I think you actually have a RX550 with a baffin core and it was incorrectly identified as Lexa.
The card is a Yeston rx 550 5G D5. It is mentioned in #129 as beeing baffin (this is why I bought it), but on Windows in CPU-Z it is detected as a Lexa core (with 512sp, 1183MHz ref clock and 1500MHZ memory clock, a sort of mix of baffin and lexa spec for the clock speeds, but lexa sp count...). In Mac os, system information does not detect it explicitly as Lexa, but the device-id is a lexa one. When I run the command you listed I have the same result as you, so the baffin driver is loaded. Maybe it is a baffin core card with more defective sp than usual ? or mac os baffin driver is also capable of handling lexa core cards secretly :grin: ?
Well after digging a bit it seems that in my case at least I have a baffin rx 550 but with a "wrong" device-id. It seems that the Yeston rx 550 4G D5 exist in at least two variants :
- 512sp (with a lexa device id, like mine) https://www.techpowerup.com/gpu-specs/radeon-rx-550-512sp.c3740
- 640sp (with a baffin device id like the ones in #129) https://www.techpowerup.com/gpu-specs/radeon-rx-550-640sp.c3083
What does the underlying hardware identify the card as without the OC override?
1002:699F
, as seen in the GPU-Z screenshot.
It seems that the Yeston rx 550 4G D5 exist in at least two variants :
As far as I know, this is correct. The 512SP variant are identified as Lexa, and the 640SP variants are identified as Baffin. That's why the 640SP variants have always worked, while the 512SP variants only have worked recently.
To elaborate more, here is a screenshot dug up comparing the 512SP and 640SP variants:
Notice how the 512SP variant is identified as Lexa (Polaris 12), while the 640SP variant is identified as Baffin refresh (Polaris 21). TechPowerUp confirmed this when it was released (although they got the Lexa codename wrong, Polaris 20 is Ellesmere refresh).
At the end of the day, my guess is that they added Lexa support sometime.
Hmmm. Still not convinced but you could be correct. It just seems very strange that Apple would; a) Suddenly add support for a 5 year old GPU that has never been sold in any model b) When it identifies one of these GPU has been connected, refuse to load this newly added driver rendering the whole process pointless. c) Hide this new Lexa driver inside the existing Baffin driver I know Apple sometimes makes interesting decisions but this would be right up there.
I think it is far more likely that AMD are just selling Polaris 21 chips with only 512 working SPs and giving it the 699F (Lexa) designation (but with a different revision code) to still allow for product/driver differentiation without needing to run two completely different and expensive production nodes.
Just my 2c because without a bunch of random RX550 cards to test on, it's just an educated guess. But what this does indicate, is that if anyone buys a new RX550 GPU (assuming they don't get an old card that has been sitting in a warehouse for years) there is a good chance they can just use OC to override the device ID and it will work OOB with the inbuilt Baffin driver as you have done, which is fantastic!
I don't know it it can help the discussion, but I dumped my bios to see how the board is declared. Here is what I got.
At least, even in the bios it is declared as lexa... But the bios (and the card ?) seems to be recent (05/29/20), so maybe it is still a "fake" lexa.
Yeah, this is really interesting. I've found some threads from 2021 of people getting "Lexa" RX550s to work by overriding their device-ids in clover or OC. Another option I had not previously considered is maybe Apple have always supported Lexa as part of their Baffin driver but since they did not officially support Lexa had not written the code to identify the Lexa GPUs and thus won't load the driver without a manual override. It's so hard to know without testing a lot of cards and probably removing heatsinks to check chip numbers...
Hello everyone! I have an RX 550 LEXA with ID 699F but when I try to spoof it to 67FF like in the OP, only the name changes in MacOS, it still shows 14MB vRAM and, 699F Device ID and no acceleration...
EDIT: I got it to work, MacOS recognizes my GPU and monitor, and it feels much smoother in general now. But there's still no METAL HARDWARE ACCELERATION.
EDIT2: After a lot of tries, I finally managed to get full METAL HARDWARE ACCELERATION in MacOS Monterey on my LEXA RX 550. According to TechPowerUp, my Graphics Card was released in 2017. https://www.techpowerup.com/gpu-specs/msi-rx-550-aero-itx-oc.b4473 @cat2devnull
GPU-Z also says that it's a LEXA card. If requested, I can upload screenshots, my EFI folder and a tutorial.
Can you do so please? It would be helpful.
Its always worked for me using an SSDT
Lexa.zip
I managed to get my Lexa RX 550 working using SSDT patching (overwriting the device-id using the OpenCore configuration didn't work). The exact model is: PowerColor Red Dragon Radeon RX 550 2GB GDDR5 Low Profile (AXRX 550 2GBD5-HLEV2). It's the 2GB version of this card: https://www.powercolor.com/product?id=1639643037 Unfortunately I was not able to get HDMI audio working, but I wasn't interested in it.
Just need device-id = 0xFF, 0x67, 0x00, 00 no-gfx-spoof = 0x01, 0x00, 0x00, 0x00
And it will be good, i have build many Lexa GPU with id 0x699F and all is working fine
Its always worked for me using an SSDT
Lexa.zip
Finally, I've got it to work for my machine by specifying the acpi path and slot name of my RX550 4G Lexa. EFI
Its always worked for me using an SSDT
Lexa.zip
Finally, I've got it to work for my machine by specifying the acpi path and slot name of my RX550 4G Lexa.
this is work well for me