It turns out to be windows confused between RX 480 or integrated gpu, and kept attempting to output display with the integrated gpu. Since my motherboard can't totally disable integrated gpu (i can only select pcie priority, but it doesn't fix this problem), only choice i got is to disable it manually in windows under device manager, and set windows update not to install device drivers automatically (although it still does once in a while).
Now my pc boots properly untill it doesn't then i will need to do boot override then manually disable the intel graphics in windows again, which i wish it wont happen too often.
I don't know why windows would get confused as I had been using my old sapphire hd7950 for years without issue.
That is odd with not being able to disable the onboard Intel GPU (most likely due to the LucidLogix Virtu MVP thing), but thanks for letting us know of the solution in case anyone else has the same problem.