They are all inspired by the hardware and the experiences implementing high-content game workloads. The main goal is to reduce CPU occupation and improve parallelism of CPU cores. This is achieved in several ways:
- reduce raw CPU work by increasing precompilation of state and data to native formats
- reduce communication from the CPU to the GPU, by increasing the flexibility of API calls
- reduce CPU <-> GPU dependencies by moving some forms of logic and flow into the GPU
All of them conspire to increase parallelism as well since there are in general fewer points where synchronization is needed.
Playstation developers have a long tradition of doing these things since the first model; Xbox developers not so much, but still a lot more than on PCs. Since the general goal is to reduce API surface, remove abstractions and match the metal more closely, it's natural for APIs to converge.