glColor3f(1.0, 0.0, 0.0);
glBegin(GL_TRIANGLES);
glVertex3f (-1.0, -1.0, 0.0);
glVertex3f (1.0, -1.0, 0.0);
glVertex3f (0.0, 1.0, 0.0);
glEnd();
Has been able to draw a red triangle for almost 20 years, on nearly every GPU released from a few dozen vendors. It transparently gets faster without you having to do much.As a result of everyone having to writing code like the above, as opposed to assembly code specific to each GPU, the GPU vendors have been able to change their architecture tremendously over the years to adapt to changing process technology tradeoffs and add new features.
They've been able to do this in part because 3D graphics is a well-enough-defined domain and can be reasonably API-ified, but I could easily see things having gone a different way; people would be arguing about whether the ARM of GPUs would conquer the x86 of GPUs, given the massive install base of the incumbent. Instead, to some extent, anyone who can write an OpenGL compiler can play.