Hallo,
ich habe ein Problem mit dem linux-framebuffer und diesem Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #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; } |
wenn ich das Program laufen lasse mit dem NVIDIA binary driver version 367.57 sieht das so aus: http://i.imgur.com/hzj9J3z.jpg aber wenn ich es mit dem Xorg-nouveau treiber laufen lasse sieht es so aus: http://i.imgur.com/F6Pm9m7.jpg Die "framerate" mit dem NVIDIA-treiber ist ziemlich schlecht, jedenfalls schlechter als die mit dem Xorg treiber. vor einiger Zeit mit 16.04 und einem NVIDIA treiber (weiß die version nicht mehr) war die framerate besser. Warum ist das so und wie kann ich das beheben? By the way mein system sieht so aus ('inxi -F'):
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
Bearbeitet von rklm:
Titel eingedeutscht