# Отключение GPU
- Поддерживаемая версия: 0.6.9
Значит, вам нужно скрыть свой неподдерживаемый графический процессор? Что ж, с OpenCore все немного иначе, в частности, нам нужно указать, какое именно устройство мы хотим подменить. Есть 3 способа сделать это:
- Флаг загрузки
- Отключает все графические процессоры, кроме iGPU
- DeviceProperties
- Отключает графический процессор для каждого слота
- SSDT
- Отключает графический процессор для каждого слота
CSM должен быть отключен в BIOS для правильной работы спуфинга, особенно на системах с процессорами AMD.
# Флаг загрузки
Безусловно самый простой способ. Все, что вам нужно сделать, это просто добавить следующий boot-arg:
-wegnoegpu
Обратите внимание, что это отключит все GPU, кроме iGPU.
# Метод DeviceProperties
Здесь все довольно просто, найдите путь PCI с помощью gfxutil (opens new window), а затем создайте новый раздел в DeviceProperties с вашей подменой:
путь/к/gfxutil -f GFX0
И в результате получится что-то похожее:
DevicePath = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)
С этим результатом, перейдите в раздел Root -> DeviceProperties -> Add
и добавьте свой PCI путь со следующими свойствами:
Key | Type | Value |
---|---|---|
name | data | 23646973706C6179 |
IOName | string | #display |
class-code | data | FFFFFFFF |
# Метод SSDT
Есть много способов найти путь, но, как правило, самый простой способ - зайти в Диспетчер Устройств в Windows и найти путь PCI.
Пример пути к устройству (Device Path) для \_SB.PCI0.PEG0.PEGP
:
DefinitionBlock ("", "SSDT", 2, "DRTNIA", "spoof", 0x00000000)
{
External (_SB_.PCI0.PEG0.PEGP, DeviceObj)
Method (_SB.PCI0.PEG0.PEGP._DSM, 4, NotSerialized)
{
If ((!Arg2 || !(_OSI ("Darwin"))))
{
Return (Buffer (One)
{
0x03
})
}
Return (Package (0x0A)
{
"name",
Buffer (0x09)
{
"#display"
},
"IOName",
"#display",
"class-code",
Buffer (0x04)
{
0xFF, 0xFF, 0xFF, 0xFF
},
})
}
}
Копию этого SSDT можно найти здесь: Spoof-SSDT.dsl (opens new window). Вам понадобится MaciASL (opens new window) для компиляции этого. Помните, что .aml
- машинный код, а .dsl
- исходный код. Вы можете скомпилировать с помощью MaciASL, выбрав Файл -> Сохранить как -> ACPI Machine Language.
Источник: CorpNewt
# Выбор GPU в Windows
В зависимости от ваших настроек, вы можете обнаружить, что Windows отрисовывает игры или приложения используя нежелательный, для вас, графический процессор.
У многих пользователей всего два графических процессора. Nvidia и Intel HD/UHD IGPU. Поскольку Nvidia больше не работает в macOS, они могут подключить монитор к разъему HDMI/DP материнской платы для удобства. В результате, Windows будет отрисовывать все игры и приложения через iGPU. Вы можете перенаправить определенную игру или приложение на другой GPU, выбрав Settings > System > Display > Graphics settings
Отрисованная игра или приложение будут иметь свой буфер, скопированный в iGPU. Который как раз таки будет вам отображаться. У этого есть несколько недостатков:
- GSync больше не будет работать.
- Настройки Nvidia нельзя будет открыть. Для этого требуется, чтобы дисплей был подключен к графическому процессору
- Уменьшение частоты кадров.
- Увеличение задержки ввода.
- Ограничение частоты обновления.
Если у вашей материнской платы есть только разъем HDMI для iGPU, максимальная частота обновления для спецификации 2.1 составляет 120 Гц (opens new window). Предполагается, что ваша плата и монитор имеют одинаковые характеристики. И это означает, что ваш монитор 144 Гц будет определятся оборудованием как 120 Гц. Это ограничение не применяется, если ваша плата имеет разъем DP для iGPU.
Если у вас есть более двух графических процессоров (AMD, Nvidia и Intel), эта настройка будет ограничена. Монитор, подключенный к AMD GPU означает, что Windows позволит выбрать вам либо AMD GPU, либо Intel iGPU. Графический процессор Nvidia не будет отображаться. В будущей версии Windows, это ограничение будет снято (opens new window).
В качестве рекомендации, если вы используете обе операционные системы одинаково и предпочитаете пользоваться без недостатков, лучшим вариантом будет переключатель HDMI или DP.