I was having the same issue on a new build. My dual sapphire 580's worked fine Catalina and a previous Big Sur vm I made a year ago. But no joy with this.
I did the following:
Updated OpenCore to the latest
Made sure the GPU and sound were on the same bus/slot
Updated Lilu and Whatevergreen
Made sure my on-card performance switch was to the right (top) . Some places say to the left works, but those are mainly Hackintosh and not vm. But I get no signal with it to the left and to the right worked previously.
Was only using DisplayPort to view (HDMI is not currently supported)
Used my previously self-dumped 580 bios
Make sure you have a Mac defined in open core that could use a gpu like a Mac Pro or possibly the latest iMac Pro.
I then played around and booted the vm with vnc as the primary and GPU secondary. Display in vnc worked but the card was not properly listed in the vm. it only knew it as an AMD something, and no output.
So, I took a wild shot and moved my GPU to the same bus assignment as the VNC viewer (and removed the vnc viewer). I was able to see the OpenCore selection menu on the screen, and it booted normally.
I don't know which one's of the above specifically fixed it but I know to get my sapphire rx580's to work I had to have that change in my xml.
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x11' slot='0x00' function='0x0'/>
</source>
<rom file='/mnt/cache/domains/vbios/580.dump'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x11' slot='0x00' function='0x1'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1' multifunction='on'/>
</hostdev>
if you end up with a conflict on slot 2, then change to slot 3 or higher. I don't show sound available, but that's ok for now.
hope this helps!