whitequark[cis]: To me the interesting part of this problem is "can you interface with a regular CPU/linux-side graphics api". Implement an opengl 1, no you don't need shaders. Vulkan, you can't really do without shaders. But I could imagine implementing vulkan with *heavy restrictions* on shaders, or a narrow subset of shaders which get run on the gpu and anything else MESAs cpu side. Or (although this is no longer able to run general software) a special bespoke extension for creating shader objects that are really just picking configurations from a fixed function gpu.