https://bugs.freedesktop.org/show_bug.cgi?id=90079
--- Comment #1 from Emil Velikov emil.l.velikov@gmail.com --- The root limitation when using the KMS API is deliberate. If your program only wants to render things then opening/using a render node is what you want.
Looking at the problem from another angle: As of recently one could use X server without root access, although that involves using systemd-logind. Not 100% if that will do exactly what you want but having a quick look at the code and checking David's blog [1] on the topic won't hurt.
[1] https://dvdhrm.wordpress.com/