On Fri, Nov 28, 2014 at 02:14:24PM +0900, Alexandre Courbot wrote:> On 11/28/2014 01:39 AM, Thierry Reding wrote: > >Tegra K1 and later use a GPU that can be driven by the Nouveau driver. > >But the GPU is a pure render node and has no display engine, hence the > >scanout needs to happen on the Tegra display hardware. The GPU and the > >display engine each have a separate DRM device node exposed by the > >kernel. > > > >To make the setup appear as a single device, this driver instantiates > >a Nouveau screen with each instance of a Tegra screen and forwards GPU > >requests to the Nouveau screen. For purposes of scanout it will import > >buffers created on the GPU into the display driver. Handles that > >userspace requests are those of the display driver so that they can be > >used to create framebuffers. > > > >This has been tested with some GBM test programs, as well as kmscube and > >weston. All of those run without modifications, but I'm sure there is a > >lot that can be improved. > > Tested with kmscube and Weston and I can confirm this works. However, EGL > clients inside Weston have their window filled with garbage (they seem to > run fine otherwise). Do you also experience this?To be honest, that wasn't part of my set of test cases. I had assumed that since Weston could composite buffers into a final scan out buffer everything else would just work as well. Do you have any particular demos that aren't working? Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20141128/d6c27400/attachment.sig>
On Fri, Nov 28, 2014 at 5:48 PM, Thierry Reding <thierry.reding at gmail.com> wrote:> On Fri, Nov 28, 2014 at 02:14:24PM +0900, Alexandre Courbot wrote: >> On 11/28/2014 01:39 AM, Thierry Reding wrote: >> >Tegra K1 and later use a GPU that can be driven by the Nouveau driver. >> >But the GPU is a pure render node and has no display engine, hence the >> >scanout needs to happen on the Tegra display hardware. The GPU and the >> >display engine each have a separate DRM device node exposed by the >> >kernel. >> > >> >To make the setup appear as a single device, this driver instantiates >> >a Nouveau screen with each instance of a Tegra screen and forwards GPU >> >requests to the Nouveau screen. For purposes of scanout it will import >> >buffers created on the GPU into the display driver. Handles that >> >userspace requests are those of the display driver so that they can be >> >used to create framebuffers. >> > >> >This has been tested with some GBM test programs, as well as kmscube and >> >weston. All of those run without modifications, but I'm sure there is a >> >lot that can be improved. >> >> Tested with kmscube and Weston and I can confirm this works. However, EGL >> clients inside Weston have their window filled with garbage (they seem to >> run fine otherwise). Do you also experience this? > > To be honest, that wasn't part of my set of test cases. I had assumed > that since Weston could composite buffers into a final scan out buffer > everything else would just work as well. Do you have any particular > demos that aren't working?Anything using EGL under Wayland - the simplest case would be weston-simple-egl. glmark2 also displays a broken window, but then crashes shortly after. With weston-simpe-egl I get the framerate feedback and can see the GPU performance counters moving as expected, indicating that the app is rendering correctly but that Weston gets the wrong buffer to display.
On Fri, Nov 28, 2014 at 05:52:26PM +0900, Alexandre Courbot wrote:> On Fri, Nov 28, 2014 at 5:48 PM, Thierry Reding > <thierry.reding at gmail.com> wrote: > > On Fri, Nov 28, 2014 at 02:14:24PM +0900, Alexandre Courbot wrote: > >> On 11/28/2014 01:39 AM, Thierry Reding wrote: > >> >Tegra K1 and later use a GPU that can be driven by the Nouveau driver. > >> >But the GPU is a pure render node and has no display engine, hence the > >> >scanout needs to happen on the Tegra display hardware. The GPU and the > >> >display engine each have a separate DRM device node exposed by the > >> >kernel. > >> > > >> >To make the setup appear as a single device, this driver instantiates > >> >a Nouveau screen with each instance of a Tegra screen and forwards GPU > >> >requests to the Nouveau screen. For purposes of scanout it will import > >> >buffers created on the GPU into the display driver. Handles that > >> >userspace requests are those of the display driver so that they can be > >> >used to create framebuffers. > >> > > >> >This has been tested with some GBM test programs, as well as kmscube and > >> >weston. All of those run without modifications, but I'm sure there is a > >> >lot that can be improved. > >> > >> Tested with kmscube and Weston and I can confirm this works. However, EGL > >> clients inside Weston have their window filled with garbage (they seem to > >> run fine otherwise). Do you also experience this? > > > > To be honest, that wasn't part of my set of test cases. I had assumed > > that since Weston could composite buffers into a final scan out buffer > > everything else would just work as well. Do you have any particular > > demos that aren't working? > > Anything using EGL under Wayland - the simplest case would be > weston-simple-egl. glmark2 also displays a broken window, but then > crashes shortly after. With weston-simpe-egl I get the framerate > feedback and can see the GPU performance counters moving as expected, > indicating that the app is rendering correctly but that Weston gets > the wrong buffer to display.Okay, I'll need to look into this more closely. Thanks for reporting. Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20141128/0b3b4ca2/attachment.sig>