For example, in the past Amiga computers had a 'GPU' (although much less powerful than todays GPUs) with a stable interface. It was a first class citizen in its OS. It also was incredibly easy to target in Assembly language.
The best we have nowadays is using compute shaders for the same purpose.
Just like when using a TMS34010 with its C SDK.