The following two patches add libdrm support for render node manipulation. The first patch adds the functions for render node creation and removal that an application can call. The second patch add two small test utilities that allow render node creation and removal from shell. For example, this will create a render node with one CRTC, one encoder and one connector and use object IDs 10, 16, and 17 for CRTC, encoder and connector respectively <libdrm>/tests/render_nodes/render_node_add -c 1 -e 1 -p 1 -l 10,16,17 To find out object IDs for your GPU you can use <libdrm>/tests/modeprint test utility. Kernel will check that the IDs are valid (i.e. that CRTC is really a CRTC) and not in use by some other render node, but it will not (yet) check the interdependency (e.g., if a given encoder can go with a given connector). The latter is still on TODO list. To remove the render node use <libdrm>/tests/render_nodes/render_node_rm -m <minor> To specify the render node with no display resources (typically for GPGPU ise), just type render_node_add without arguments. By default, the test utility will use /dev/dri/controlD64 device, which is a control node for the first GPU in the system. That can be changed with -n <node> parameter but the node must be a control node (can't issue the ioctl through other render node or through the physical card node). At this point, the biggest missing thing is the ability to specify the render node in xorg.conf. So to test this for multiseat-X use case you still need a hack from Dave Airlie [1] and you need to setup an environment variable to point X to the right render node [2,3,4 -- customize for your system] The following is a list of various problems that still need to be worked out before this becomes stable (help appreciated). I have not looked into the details so I have no idea what the causes are nor how they are related to the fact that it's running on a render node, but I list them here: * If I start a seat from fbcon, Gnome 3 would sometimes hang up (workaround: ssh to the target machine from another machine and start a seat from there) * Native XFCE terminal acts up (typing in it crashes the window manager) * Typing in Gnome terminal, makes input characters leak into the running fbcon. * Sending DPMS event from a seat that uses the render node makes the screen go dark and never recover * Killing the glxgears window sometimes causes the whole session to be killed. Barring the above issues, that clearly need to be fixed before render-nodes can become generally useful, things seem to be cranking. I was able to run the session in various desktop managers, run with desktop effects turned on, play games and run various OpenGL demos. Regards, Ilija ---- [1] http://people.freedesktop.org/~airlied/multiseat/0001-libdrm-add-support-for-an-env-variable-to-override-t.patch [2] http://people.freedesktop.org/~airlied/multiseat/xorg.conf [3] http://people.freedesktop.org/~airlied/multiseat/start1 [4] http://people.freedesktop.org/~airlied/multiseat/start2 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel