GPU acceleration doesn't work.

Kortez901

New member
AMD OS X Member
Aug 27, 2025
2
0
1
CPU:
FX-8350, R9 7900X
CPU: AMD FX-8350
GPU: Radeon R7 240 (R7240-2GD3-L)
Motherboard: AsRock 970 Pro3
OpenCore 1.0.2

Good afternoon!
The following situation occurred. Monterey, not without issues, but still, was installed. I had to tinker with fine-tuning the plist and removing some RAM sticks in order for the installation to complete successfully. However, I couldn’t get past the setup screen because there simply wasn’t enough video memory. Acceleration just didn’t work. I spent about a day struggling with this problem and eventually switched to Big Sur. With this system, things went more smoothly: I managed to reach the desktop and even the App Store was working. But I still couldn’t get acceleration to work.


After studying the topic and spending another day tinkering with Big Sur, I found out that the Oland family is not so easy to spoof. But there’s catastrophically little information about device-id spoofing, and those who managed to do it either no longer respond or don’t want to share any details.


So I’m asking for help here — maybe someone could help me understand and figure out how exactly to make acceleration work on the R7 240.


Yes, I perfectly understand that the simplest solution would be to buy another graphics card secondhand or something like that, but unfortunately, I just don’t have that option at the moment. Besides, for me it’s extremely irrational. The computer is already very old, even though it has a decent 8-core processor. Upgrading it, even for little money, would just be throwing money away.

From what I’ve already tried — SSDT-GPU-SPOOF, changing the device-id, adding no-gpu-spoof, different bootargs from the Dortania guide. The method from the guide didn’t help at all.
For some reason, the device-id doesn’t change at all, no matter whether I set it in config.plist or in the SSDT. It always remains the same — 6613.
It’s possible that I messed up the ACPI path, I don’t rule that out.
But judging by Hackintool, IORegistryExplorer, and gfxutil — they all show the same path, which is already written in the SSDT, yet the device-id doesn’t change. On one of the forums, something similar was mentioned. In that case, the person didn’t have access to GFX0, and somehow, by adding gfx-no-spoof in device properties, he managed to change the device-id, but ran into another error. It seemed to me that there wasn’t much to take away from that case. Besides, I tried a similar procedure, and it didn’t work.
 

Attachments

A little update and progress in case.

According to boot log, SSDT can't find path PCI0.PC02.GFX0 and throw error.
But, if i remove GFX0 error disappeared and all seems fine. However, device-id still doesn't changed.

I think, its all about ACPI path to GPU.
One guy from reddit make his own SSDT, which looks like this. Clover variant, i suppose.

Code:
/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20180427 (64-bit version)(RM)
 * Copyright (c) 2000 - 2018 Intel Corporation
 *
 * Disassembling to non-symbolic legacy ASL operators
 *
 * Disassembly of iASLuyoUi6.aml, Fri Mar 10 12:40:32 2023
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000001EC (492)
 *     Revision         0x02
 *     Checksum         0x8D
 *     OEM ID           "_rudd"
 *     OEM Table ID     "_6650"
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20180427 (538444839)
 */
DefinitionBlock ("", "SSDT", 2, "_rudd", "_6650", 0x00000000)
{
    External (_SB_.PCI0.GPP8, DeviceObj)    // (from opcode)
 
    Scope (_SB.PCI0.GPP8)
    {
        If (_OSI ("Darwin"))
        {
            Device (PEGP)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Device (PEGX)
                {
                    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 (0x0C)
                            {
                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },
 
                                "device-id",
                                Buffer (0x04)
                                {
                                     0xFF, 0x7E, 0x00, 0x00                         
                                },
 
                                "device_type",
                                Buffer (0x13)
                                {
                                    "Display Controller"
                                },
 
                                "model",
                                Buffer (0x12)
                                {
                                    "Radeon RX 6650 XT"
                                },
 
                                "name",
                                Buffer (0x05)
                                {
                                    "GFX0"
                                },
 
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                }
                            })
                        }
                    }
 
                    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 (0x0C)
                            {
                                "model",
                                Buffer (0x12)
                                {
                                    "Radeon RX 6650 XT"
                                },
 
                                "layout-id",
                                Buffer (0x04)
                                {
                                     0x01, 0x00, 0x00, 0x00                         
                                },
 
                                "hda-gfx",
                                Buffer (0x0A)
                                {
                                    "onboard-1"
                                },
 
                                "AAPL,slot-name",
                                Buffer (0x07)
                                {
                                    "Slot-1"
                                },
 
                                "name",
                                Buffer (0x05)
                                {
                                    "HDAU"
                                },
 
                                "device_type",
                                Buffer (0x16)
                                {
                                    "HDMI Audio Controller"
                                }
                            })
                        }
                    }
                }
            }
        }
    }
}

It's completely different from dortania guide, which one was used before.
And it works with that case from reddit.

Maybe someone can explain what happens here and how to adapt it to my ACPI path and spec?
 
  AdBlock Detected
Sure, ad-blocking software does a great job at blocking ads, but it also blocks some useful and important features of our website. For the best possible site experience please take a moment to disable your AdBlocker.