linux framebuffer尺寸问题

环境:vm ubuntu14.04
设置: /etc/default/grub GRUB_CMDLINE_LINUX="vga=0x305"
问题:
实际尺寸与显示尺寸不一致!
for(i=0;i<h;i++)
{
for(j=0;j < w;j++)
{
fbmem[i*w+j] = 0xffffff;
}
}
利用framebuffer时,本来应该全屏显示白色,宽度正确,高度只有一半。
可是
ioctl(Fd,FBIOGET_VSCREENINFO,&fb_var);
w = fb_var.xres;
h = fb_var.yres;
bpp = fb_var.bits_per_pixel;
printf("Framebuffer:%d*%d bpp:%d\n",w,h,bpp);

程序打印高度和宽度是正确的,为1024*768

    请问大家这是为什么?

bpp = fb_var.bits_per_pixel,你 这个值是多少?32 还是 16

fbmem是什么类型的指针, bpp = fb_var.bits_per_pixe ; 输出结果是多少