Firefly开源社区

打印 上一主题 下一主题

解决openGL在设置32位色深以后出现花屏的问题

210

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
210

解决openGL在设置32位色深以后出现花屏的问题

发表于 2016-6-7 15:25:45      浏览:3976 | 回复:1        打印      只看该作者   [复制链接] 楼主
再做openGL测试的过程中,根据论坛上的帖子,在使用/bin/fbset -a -nonstd 1 -depth 32 -rgba "8/0,8/8,8/16,8/24"命令以后,会出现显示花屏的问题,当然我这边暂时使用的是hdmi输出进行测试的,vga的设置方法,另外一个网友已经发帖贴出了解决方法:http://developer.t-firefly.com/thread-6462-1-1.html,同时我这里也是根据他的方法来实现的。

因为hdmi的输出是从framebuffer这个源来的,所以我们修改色深只需要修改framebuffer就OK了,具体操作方法很简单:
1)打开drivers\video\rockchip\rk_fb_box.c文件,
static struct fb_var_screeninfo def_var = {
/*
#if defined(CONFIG_LOGO_LINUX_BMP)
        .red = {16, 8, 0},
        .green = {8, 8, 0},
        .blue = {0, 8, 0},
        .transp = {0, 0, 0},
        .nonstd = HAL_PIXEL_FORMAT_BGRA_8888,
#else
*/
//modefy by lhp---20160607
#if 1 //defined(CONFIG_LOGO_LINUX_BMP)
        .red = {16, 8, 0},
        .green = {8, 8, 0},
        .blue = {0, 8, 0},
        .transp = {0, 0, 0},
        .nonstd = HAL_PIXEL_FORMAT_BGRA_8888,
        .bits_per_pixel = 32,
#else
        .red = {11, 5, 0},
        .green = {5, 6, 0},
        .blue = {0, 5, 0},
        .transp = {0, 0, 0},
        .nonstd = HAL_PIXEL_FORMAT_RGB_565,        /* (ypos<<20+xpos<<8+format) format */
#endif
        .grayscale = 0,                /* (ysize<<20+xsize<<8) */
        .activate = FB_ACTIVATE_NOW,
        .accel_flags = 0,
        .vmode = FB_VMODE_NONINTERLACED,
};
2)修改rk_fb_register函数:

//modefy by lhp----20160607,use def_var.bits_per_pixel
/*
#if defined(CONFIG_LOGO_LINUX_BMP)
                fbi->var.bits_per_pixel = 32;
#else
                fbi->var.bits_per_pixel = 16;
#endif
*/

将上面的这段进行注释,使用我们前面1)中已经修改的那个定义

===========================
编译内核,启动就OK了。





回复

使用道具 举报

129

积分

0

威望

0

贡献

技术小白

积分
129
发表于 2016-7-21 09:12:55        只看该作者  沙发
:lol
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表