Hi, I am new to DRM & KMS and I had seen your pdf named "why & how to use kms as your user space display api if choice". I have to understand initial mode setting flow of x server. So is it located in /xorg-server/hw/xfree86/modes/ or some where else? And, I don't know use control node. What's use of /dev/dri/control node? I am using Ubuntu 12.04-3 Thanks in advance.
Akash Hajari.
On Tue, Jan 14, 2014 at 5:15 AM, Akash Hajari akashhajari@gmail.com wrote:
Hi, I am new to DRM & KMS and I had seen your pdf named "why & how to use kms as your user space display api if choice". I have to understand initial mode setting flow of x server. So is it located in /xorg-server/hw/xfree86/modes/ or some where else?
currently it is in each different DDX driver (for example, xf86-video-intel, xf86-video-modesetting, etc)
Perhaps either tests/modetest/modetest.c (in libdrm tree) or kmscube (https://github.com/robclark/kmscube/blob/master/kmscube.c) might be a simpler stand-alone example to look at (the former does only modeset, the later does modeset + gl)
And, I don't know use control node. What's use of /dev/dri/control node?
I don't think it is really used for much yet.. but mostly people just use drmOpen() in libdrm and it figures out what device file to open.
BR, -R
Akash Hajari.
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
Hi Rob,
Thanks for your answer and your example (https://github.com/robclark/kmscube/blob/master/kmscube.c). I understood standalone KMS without x11 (as written by you @ http://lists.freedesktop.org/archives/dri-devel/2012-September/027348.html ).
But, looking at Linux Graphics stack (http://en.wikipedia.org/wiki/File:Linux_Graphics_Stack_2013.svg), I am confused. Does libGL calls always directly calls libDRM and never to x-server?
If so, then how simple gl example ‘drawf.c’ (http://www.glprogramming.com/red/chapter08.html) using glBitmap() work well when x11 server running?
Also, when switching between multiple windows, x server running in backgroung, why drm_mode_addfb (DRM_IOCTL_MODE_ADDFB) getting called many times? (as I think, fb might have already created for multiple windows.)
Thanks for your patience, Rob.
Akash Hajari.
On 1/14/14, Rob Clark robdclark@gmail.com wrote:
On Tue, Jan 14, 2014 at 5:15 AM, Akash Hajari akashhajari@gmail.com wrote:
Hi, I am new to DRM & KMS and I had seen your pdf named "why & how to use kms as your user space display api if choice". I have to understand initial mode setting flow of x server. So is it located in /xorg-server/hw/xfree86/modes/ or some where else?
currently it is in each different DDX driver (for example, xf86-video-intel, xf86-video-modesetting, etc)
Perhaps either tests/modetest/modetest.c (in libdrm tree) or kmscube (https://github.com/robclark/kmscube/blob/master/kmscube.c) might be a simpler stand-alone example to look at (the former does only modeset, the later does modeset + gl)
And, I don't know use control node. What's use of /dev/dri/control node?
I don't think it is really used for much yet.. but mostly people just use drmOpen() in libdrm and it figures out what device file to open.
BR, -R
Akash Hajari.
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
On Fri, Jan 17, 2014 at 6:21 AM, Akash Hajari akashhajari@gmail.com wrote:
Hi Rob,
Thanks for your answer and your example (https://github.com/robclark/kmscube/blob/master/kmscube.c). I understood standalone KMS without x11 (as written by you @ http://lists.freedesktop.org/archives/dri-devel/2012-September/027348.html ).
But, looking at Linux Graphics stack (http://en.wikipedia.org/wiki/File:Linux_Graphics_Stack_2013.svg), I am confused. Does libGL calls always directly calls libDRM and never to x-server?
you have two cases:
1) direct rendering: rendering commands (gl/gles) go directly to hw (via kernel execbuf/pushbuf/submit type ioctl, usually utilizing helpers/wrappers in libdrm_{intel,radeon,nouveau,freedreno,etc}. But presentation commands (egl/glx), ie. swapbuffers, etc, go via the display server (x11, wayland, etc).
2) indirect rendering (gl + glx only), everything goes to xserver
In either case, the KMS APIs are used by the display server. Direct vs indirect rendering is only about the rendering part of things.
If so, then how simple gl example ‘drawf.c’ (http://www.glprogramming.com/red/chapter08.html) using glBitmap() work well when x11 server running?
Also, when switching between multiple windows, x server running in backgroung, why drm_mode_addfb (DRM_IOCTL_MODE_ADDFB) getting called many times? (as I think, fb might have already created for multiple windows.)
no, that would be addfb getting called for every page flip. Technically you could just create the fb once and re-use it as you flip back to a previous buffer. But addfb/rmfb is relatively lightweight operation (the fb is just a wrapper for a GEM object, which itself is not re-allocated each frame).
BR, -R
Thanks for your patience, Rob.
Akash Hajari.
On 1/14/14, Rob Clark robdclark@gmail.com wrote:
On Tue, Jan 14, 2014 at 5:15 AM, Akash Hajari akashhajari@gmail.com wrote:
Hi, I am new to DRM & KMS and I had seen your pdf named "why & how to use kms as your user space display api if choice". I have to understand initial mode setting flow of x server. So is it located in /xorg-server/hw/xfree86/modes/ or some where else?
currently it is in each different DDX driver (for example, xf86-video-intel, xf86-video-modesetting, etc)
Perhaps either tests/modetest/modetest.c (in libdrm tree) or kmscube (https://github.com/robclark/kmscube/blob/master/kmscube.c) might be a simpler stand-alone example to look at (the former does only modeset, the later does modeset + gl)
And, I don't know use control node. What's use of /dev/dri/control node?
I don't think it is really used for much yet.. but mostly people just use drmOpen() in libdrm and it figures out what device file to open.
BR, -R
Akash Hajari.
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel
dri-devel@lists.freedesktop.org