Welcome to the Linux Foundation Forum!

problems with framebuffer and graphics driver

dariusduesentrieb
edited October 2016 in Software Development

Hello,

i have a problem with the linux-framebuffer and this code:


#include <sys/types.h> #include <sys/stat.h> #include <sys/mman.h> #include <sys/ioctl.h> #include <fcntl.h> #include <linux/fb.h> #include <unistd.h> #include <stdio.h> int main(int argc, char **argv) { int row, col, width, height, bitspp, bytespp; unsigned int *data; int fd = open("/dev/fb0", O_RDWR); struct fb_var_screeninfo screeninfo; ioctl(fd, FBIOGET_VSCREENINFO, &screeninfo); bitspp = screeninfo.bits_per_pixel; if(bitspp != 32) { printf("Farbaufloesung = %i Bits pro Pixel\n", bitspp); printf("Bitte aendern Sie die Farbtiefe auf 32 Bits pro Pixel\n"); close(fd); return 1; } width = screeninfo.xres; height = screeninfo.yres; bytespp = bitspp/8; if(sizeof(unsigned int) != bytespp) { close(fd); return 1; } data = (unsigned int*) mmap(0, width * height * bytespp, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); int x=0; int i=1; while(1){ for(row = 0; row < height; row++){ for(col = 0; col < width; col++){ data[row * width + col] = 0xFFFFFF; if(col == x){ data[row * width + col] = 0x0; } } } x+=i; if(x==width || x == 0){ i*=-1; } } munmap(data, width * height * bytespp); close(fd); return 0; }

if i am running this program with the NVIDIA binary driver version 367.57 it looks like this:

but if i am running the code with the xorg nouveaudriver it looks like this:

the "framerate" of the NVIDIA driver is really bad worse than the xorg-driver.

i ran this program a time ago with another driver that i dont know and there it ran faster (like the xorg-driver).

why runs the program different with different drivers and how can i solve this?

my system looks like this:


System: Host: S5520 Kernel: 4.8.0-26-generic x86_64 (64 bit) Desktop: Unity 7.5.0 Distro: Ubuntu 16.10 Machine: System: Intel product: TERRA Server v: .................... Mobo: Intel model: S5520HC v: E26045-454 BIOS: Intel v: S5500.86B.01.00.0064.050520141428 date: 05/05/2014 CPU(s): 2 Hexa core Intel Xeon X5650s (-HT-MCP-SMP-) cache: 24576 KB clock speeds: max: 2661 MHz 1: 1596 MHz 2: 1596 MHz 3: 1596 MHz 4: 1596 MHz 5: 1596 MHz 6: 1596 MHz 7: 1596 MHz 8: 1596 MHz 9: 1596 MHz 10: 1596 MHz 11: 1596 MHz 12: 1596 MHz 13: 1596 MHz 14: 1596 MHz 15: 1596 MHz 16: 1596 MHz 17: 1596 MHz 18: 1596 MHz 19: 1596 MHz 20: 1596 MHz 21: 1596 MHz 22: 1596 MHz 23: 1596 MHz 24: 1596 MHz Graphics: Card: NVIDIA GK106 [GeForce GTX 650 Ti] Display Server: X.Org 1.18.4 drivers: nouveau (unloaded: fbdev,vesa) Resolution: 1440x900@59.89hz GLX Renderer: Gallium 0.4 on NVE6 GLX Version: 3.0 Mesa 12.0.3

 

Categories

Upcoming Training