Right. Pointedly, what happened when AMD came out with AMD64?
1. AMD made it a compatible superset of the existing standard x86. You could still run all other x86 code on it.
2. Intel then immediately made their new chips compatible with it. So if you're writing brand new code, you still don't have to pick only one horse or the other.
That was nothing remotely like the gpu situation.
Even a totally different ISA like ARM still isn't the same situation.
Practically the entire body of c code can be compiled and run on arm or x86 with no more difficulty than optimizing for 486 vs 686.
Most of the problems in arm land are just platform integration with bootloaders and peripheral drivers because phones are just not treated like generic user-programmable devices the way pc's started out. Not because it's fundamentally so unique and incompatible with anything else.
If the gpu situation were the same, then we would equally have both amd and nvidia drivers that take similar enough interface that a compiler could handle 90% of the translation and there would only need to be a little bit of platform awareness in the code, and as a result, all games and apps would work on all gpus, the same way bash works the same on both my i7 and my pi, and it's such a non-thing that no one even thinks that's remarkable. That's the difference. There is not even a hint of such a problem when it comes to cpu's, even cpus with different ISAs.