michael at michaelkloos.com
2020-Jul-05 19:41 UTC
[Nouveau] Framebuffer double buffering (via FBIOPAN_DISPLAY)
<div dir='auto'>I am not familiar with that setting, but I have really struggled to find documentation on dealing with the framebuffer. Referring to this guide, "http://betteros.org/tut/graphics1.php#doublebuffer", I attempted to set the mmap allocation size to double, but it caused the mmap to fail. I no longer believe that it is a driver issue, though, because I just tried it again on a dell laptop with Intel HD Graphics 4400 to the same failure.</div><div class="gmail_extra"><br><div class="gmail_quote">On Jul 5, 2020 12:35, Ilia Mirkin <imirkin@alum.mit.edu> wrote:<br type="attribution" /><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Are you setting the overallocation to 200? <br> <br> On Sun, Jul 5, 2020 at 3:41 AM Michael T. Kloos <br> <michael@michaelkloos.com> wrote: <br>> <br> > Does NOUVEAU support mmaping a double-sized Framebuffer? <br> > When attempting to run, where fd refers to "/dev/fb0": <br> > <br> > mmap(ptr, screensize * 2, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); <br> > <br> > I get back an invalid argument error. This doesn't happen if I only <br> > request a single screensize. Is this a limitation of the driver? <br> > <br> > _______________________________________________ <br> > Nouveau mailing list <br> > Nouveau@lists.freedesktop.org <br> > https://lists.freedesktop.org/mailman/listinfo/nouveau <br></p> </blockquote></div><br></div>
Ilia Mirkin
2020-Jul-05 19:45 UTC
[Nouveau] Framebuffer double buffering (via FBIOPAN_DISPLAY)
Try booting with drm_kms_helper.drm_fbdev_overalloc=200 and see if it works with that. (There's also CONFIG_DRM_FBDEV_OVERALLOC which sets the default.) Cheers, -ilia On Sun, Jul 5, 2020 at 3:41 PM <michael at michaelkloos.com> wrote:> > I am not familiar with that setting, but I have really struggled to find documentation on dealing with the framebuffer. Referring to this guide, "http://betteros.org/tut/graphics1.php#doublebuffer", I attempted to set the mmap allocation size to double, but it caused the mmap to fail. I no longer believe that it is a driver issue, though, because I just tried it again on a dell laptop with Intel HD Graphics 4400 to the same failure. > > On Jul 5, 2020 12:35, Ilia Mirkin <imirkin at alum.mit.edu> wrote: > > Are you setting the overallocation to 200? > > On Sun, Jul 5, 2020 at 3:41 AM Michael T. Kloos > <michael at michaelkloos.com> wrote: > > > > Does NOUVEAU support mmaping a double-sized Framebuffer? > > When attempting to run, where fd refers to "/dev/fb0": > > > > mmap(ptr, screensize * 2, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); > > > > I get back an invalid argument error. This doesn't happen if I only > > request a single screensize. Is this a limitation of the driver? > > > > _______________________________________________ > > Nouveau mailing list > > Nouveau at lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/nouveau > >
Michael T. Kloos
2020-Jul-05 23:01 UTC
[Nouveau] Framebuffer double buffering (via FBIOPAN_DISPLAY)
Well...it's been a bit of a mixed bag.? Setting drm_kms_helper.drm_fbdev_overalloc=200 set the vinfo.yres_virtual to 2160 as opposed to 1080 (My monitor vertical resolution)? This fixed the mmap() problem.? However, it only worked on my main workstation.? My laptop running Intel graphics wasn't affected by the change in kernel cmdline.? My workstation is a custom build from a few years ago with a GTX 1060 6GB, running Gentoo(Kernel version: 5.4) machine, and my laptop running Manjaro.? I also can not get the IOCTL FBIOPAN_DISPLAY to work.? It is now giving me an invalid argument error.? I have set vinfo.xoffset and vinfo.yoffset to 0 earlier in my program to try to eliminate them as variables. Other factors that may be at play: -I am trying to run this from an alternate TTY.? I have a graphical environment on TTY7 with x.org.? I think it is using the DRM interface.? Maybe there is a conflict. -Maybe I am missing a driver in my Gentoo kernel config?? I'm still learning about it, but going into my workstation's kernel config, I noticed that CONFIG_FB_NVIDIA was set to "n". Do you know when CONFIG_DRM_FBDEV_OVERALLOC went into the kernel?? I was about to try this on my MacBook Pro running Gentoo, but I will have to recompile upgrade the kernel before I can give a report (It is currently running: 4.9).? I couldn't find it in menuconfig so I doubt the cmdline would make a difference. I really appreciate the help.? I've been looking header files and a such trying to cobble together some information to figure this out.? I hate to bother you with this because it seems slightly off topic. On 7/5/20 3:45 PM, Ilia Mirkin wrote:> Try booting with drm_kms_helper.drm_fbdev_overalloc=200 and see if it > works with that. (There's also CONFIG_DRM_FBDEV_OVERALLOC which sets > the default.) > > Cheers, > > -ilia > > On Sun, Jul 5, 2020 at 3:41 PM <michael at michaelkloos.com> wrote: >> I am not familiar with that setting, but I have really struggled to find documentation on dealing with the framebuffer. Referring to this guide, "http://betteros.org/tut/graphics1.php#doublebuffer", I attempted to set the mmap allocation size to double, but it caused the mmap to fail. I no longer believe that it is a driver issue, though, because I just tried it again on a dell laptop with Intel HD Graphics 4400 to the same failure. >> >> On Jul 5, 2020 12:35, Ilia Mirkin <imirkin at alum.mit.edu> wrote: >> >> Are you setting the overallocation to 200? >> >> On Sun, Jul 5, 2020 at 3:41 AM Michael T. Kloos >> <michael at michaelkloos.com> wrote: >>> Does NOUVEAU support mmaping a double-sized Framebuffer? >>> When attempting to run, where fd refers to "/dev/fb0": >>> >>> mmap(ptr, screensize * 2, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); >>> >>> I get back an invalid argument error. This doesn't happen if I only >>> request a single screensize. Is this a limitation of the driver? >>> >>> _______________________________________________ >>> Nouveau mailing list >>> Nouveau at lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/nouveau >>