NVIDIA GraphicCard Device Properties - ruwalln/KnowledgeBase GitHub Wiki

NVIDIA Quadro FX 4800

HowTo create Device Properties List for OpenCore

For example NVIDIA GraphicCards has been dropped from macOS since 12.+ Monterey. A bunch of prerequisite has to be fullfilled before NV graphicards can be used.

With legacy Nvidia GPUs, macOS has difficulties enabling acceleration due to many missing properties. To work around this, we can inject properties into IOService for macOS to easily interpret. In Opencore you can easily inject "Device Properties" using OpenCore Configurator or PropperTree.

Prerequisites :

  • You have installed a running version of macOS <= 11.+
  • Your GPU chip is either Fermi or older
    • Kepler and newer do not need Device Property injection
    • Info: please check your GPU chip here TechPowerUp Website
  • You have to load .kext Lilu and WhatEverGreen Kernel Extensions.
    • To check this please use the following shell command by open a "CommandShellWindow". So make sure both are loaded in your EFI configuration.
kextstat | grep -E "Lilu|WhateverGreen"
  • BootArgs for NVIDIA graphics adapter and how to use this inside Opencores EFI configuration.
    • If you get a blackscreen situation you can disable NVIDIA adapters using :
nv_disable=1
  • Please note for NVIDIA webdriver usage nvda_drv=31 is obsolete. To use NVIDIA webdriver package please use the following NVRAM variable. You need to add NVRAM parameter to Opencore EFI config to enable the web drivers under: NVRAM/Add/7C436110-AB2A-4BBB-A880-FE41995C9F82.

    Parameter Name Type Value
    nvda_drv Data 31

The usage of the NVCAP Property

  • Description of NVIDIA NVCAP Bit Positions 01-20.

    Byte Property Description
    01 NVCAP Version 04 for 7 series and older, 05 for 8 series and newer
    02 Laptop with Lid 01 for true, 00 otherwise
    03 Composite 01 for S-Video, 00 otherwise
    04 Backlight 01 for Tesla V1 with Backlight, otherwise 00 for newer GPUs regardless of screen type
    05+06 TVDCBMask 00 00, relates to DCB entry 5
    07+08 Head0DCBMask 00 00, see below
    09+10 Head1DCBMask 00 00, see below
    11+12 Head2DCBMask 00 00, non-applicable for Fermi and older
    13+14 Head3DCBMask 00 00, non-applicable for Fermi and older
    15. ScriptBasedPowerAndBacklight 00, only relevant for genuine MacBook Pros
    16 Unknown 0F for 300 series and newer, otherwise 07
    17 EDID 00
    18 Reserved 00
    19 Reserved 00
    20 Reserved 00
  • Here're the ready to use Device Properties for a (Legacy) NVIDIA Quadro FX 4800 graphics adapter.

    Parameter Name Type Value
    model String Quadro FX 4800 Mac
    device_type String NVDA,Parent
    VRAM,totalsize Data 0000006000000000
    rom-revision String V7.01
    NVCAP Data 05000100 00000300 3c000000 0000000f 00000000
    @0,compatible String NVDA,NVMac
    @0,device_type String display
    @0,name String NVDA,Display-A
    @1,compatible String NVDA,NVMac
    @1,device_type String display
    @1,name String NVDA,Display-B
  • HowTo calculate the total size of graphiccard RAM (please open a ShellCommandWindow)

echo '(1024+512) * 1024 * 1024' | bc
  • total result = 1610612736
echo 'obase=16; ibase=10; 1610612736' | bc
  • total Size of VRAM = 60000000
  • VRAM,totalsize calculation -> 0000006000000000
  • for more Information please visit HowTo NVIDIA patching

    NVCAP total displayed Informations
    TV mask: 0x0
    Head 0 mask: 0x3
    Head 1 mask: 0x3c
    NVCAP: (20 Bytes value)
    05 00 01 00 00 00 03 00 3c 00 00 00 00 00 00 0f 00 00 00 00