kokozaurs Posted September 29, 2020 Share Posted September 29, 2020 (edited) Hi all, I'm using ESXI 7.0b (did use 6.7 to try but with no difference). Right now on Catalina but I can't seem to try to get GPU (RX580) working properly. I pass it through to the VM(tried with windows before with no problems) and it appeared just as pci-device with no name. After that, I've applied whatevergreen + lilu kexts and it does properly recognize it under system report however that's all there is. It's listed at GFX0. See attached images. No hardware acceleration. Monitor also not turning on using either DP/HDMI. Since it is being passed through to the VM, it seems that the problem is not on ESXi side but on macOS side. Has anyone has been able to pass through an AMD GPU to ESXI VM? Can anyone suggest some pointers as to where I could find some solutions to this problem? Thanks! Edited September 29, 2020 by kokozaurs Link to comment https://www.insanelymac.com/forum/topic/345301-esxi-6770-amd-gpu-passhtrough/ Share on other sites More sharing options...
shantur Posted November 4, 2020 Share Posted November 4, 2020 I was trying something similar. I found out that MacOS isn't able to read the vBIOS off the GPU and hence it cannot use it. Further more, MacOS expects GPU to be named as GFX0 or GFX1 in ACPI tables and VMware sets it to S1F0 so MacOS doesn't like it. You could try OpenCore with WhateverGreen and try to inject bios with SSDT property ATY,bin https://github.com/acidanthera/WhateverGreen/blob/master/Manual/Sample.dsl#L122 Link to comment https://www.insanelymac.com/forum/topic/345301-esxi-6770-amd-gpu-passhtrough/#findComment-2742963 Share on other sites More sharing options...
shantur Posted November 4, 2020 Share Posted November 4, 2020 (edited) Do this. Either try it via a USB or make a snapshot of your VM as it might break boot. 1. Use Windows GPUz to extract your vBIOS and copy it somewhere you can access in MacOS 2. Boot into MacOS 3. Goto Terminal and use the command hexdump -ve '/1 "0x%02x, "' -n 65536 <PathTovBIOS> 4. Copy all the bytes printed in terminal 5. Use attached DSL file to add your vBIOS 6. Change PE60 to the PE number of your GPU from IORegistry. Compile and save as AML to Opencore ACPI. 7. Enable newly added SSDT in OpenCore config.plist and add -v in OpenCore args if you don't have it. 8. Enable SSH in your VM and try connecting to it. 9. Reboot VM and wait for it to boot, if it stalls, try to connect via SSH 10. Once in SSH try to run the command log show --predicate 'process == "kernel"' --style syslog --last boot 11. Check the logs In my case before injecting vBIOS the logs had "configureDevice failed" but after vBIOS was inject it was configured and I went to the next stage Now I am seeing "unable to get vram descriptors" error and haven't been able to go past it. You might be different as mine was a different GPU SSDT-GPU-BIOS.dsl Edited November 4, 2020 by shantur Added DSL Link to comment https://www.insanelymac.com/forum/topic/345301-esxi-6770-amd-gpu-passhtrough/#findComment-2742967 Share on other sites More sharing options...
safar Posted April 19, 2022 Share Posted April 19, 2022 I got it working with my radeon vii, using manually a VBIOS and these arguments: pciPassthru0.opromEnabled = TRUE pciPassthru0.filename = /vmfs/volumes/datastorehere/vmnamehere/vgaromwithoutheader.rom (i your vga is pciPassthru0). I beleive a proper VBIOS would start with the hex characters 55AA for a Radeon, as seen in Hexfiend. Otherwise it might have extra headers, that would need to be removed. It only works in esxi7 (tested only U3), not on esxi6. Here is the twitter thread that lead me to this solution: 2 Link to comment https://www.insanelymac.com/forum/topic/345301-esxi-6770-amd-gpu-passhtrough/#findComment-2780618 Share on other sites More sharing options...
Recommended Posts