分享
 
 
 

与afreez一起学习DirectFB之:framebuffer相关基础

王朝other·作者佚名  2007-01-11
窄屏简体版  字體: |||超大  

在学习DirectFB的过程中,其中很重要的一部分就是framebuffer的学习,下面把我收集到的一些自己认为比较有价值的文字列出,希望也对大家有帮助!

---------------------------------------------------------------------------------------------------------------------

声明:

此文为原创,欢迎转载,转载请保留如下信息

作者:聂飞(afreez)

联系方式:afreez@sina.com (欢迎与作者交流)

初次发布时间:2006-06-06

不经本人同意,不得用语商业或赢利性质目的,否则,作者有权追究相关责任!

-----------------------------------------------------------------------------

framebuffer相关知识总结

Vesafb介绍

VESA是Video Electronic Standards Association影像电子工程标准协会的缩写,由多家计算机芯片制造商于1989年联合创立,1994年底,VESA发表了64位架构的VESA Local Bus标准,80486以后的PC机大多采用这一标准的显卡。

Vesafb is a framebuffer driver for Intel architecture that works with VESA 2.0 compliant graphic cards。

Linear frame buffering simply means that the system's CPU is able to access every bit of the display.

显卡简介

显示适配卡(Video card,Graphics card),又称为显示适配器(video adapter),中国大陆简称为显卡或显示卡,香港台湾简称为显示卡,是个人电脑最基本组成部分之一。-{A|zh-cn:显卡;zh-tw:显示卡}-的用途是将计算机系统所需要的显示信息进行转换驱动显示器,并向显示器提供行扫描信号,控制显示器的正确显示,是联接显示器和个人电脑主板的重要组件,是“人机对话”的重要设备之一。

显卡是插在主板上的扩展槽里的(现在一般是PCI-EAGP插槽)。它主要负责把主机向显示器发出的显示信号转化为一般电信号,使得显示器能明白个人电脑在让它干什么。显卡的主要芯片叫“显示芯片”(Video chipset,也叫GPUVPU,图形处理器或视觉处理器),是显卡的主要处理单元。显卡上也有和电脑内存相似的存储器,称为“显示内存”,简称显存

早期的显卡只是单纯意义的显卡,只起到信号转换的作用;目前我们一般使用的显卡都带有3D画面运算和图形加速功能,所以也叫做“图形加速卡”。

显卡通常由总线接口、PCB板、显示芯片、显存、RAMDAC、VGA BIOS、VGA功能插针、VGA插座及其它外围组件构成,现在的显卡大多还具有DVI显示器插头及S-video端子插头。

ISA显卡

ISA显卡是现在最普遍使用的VGA显示器所能支持的最为古老的显卡。

VESA显卡

VESA是Video Electronic Standards Association影像电子工程标准协会的缩写,由多家计算机芯片制造商于1989年联合创立,1994年底,VESA发表了64位架构的VESA Local Bus标准,80486以后的PC机大多采用这一标准的显卡。

PCI显卡

AGP显卡

AGP(Accelerated Graphics Port)是Intel公司在1996年开发的32位总线接口,用来增进计算机系统中的显示效能。分有AGP 1X , AGP 2X ,AGP 4X 及最后的AGP 8X , 频宽分别为 266MB/s ,533MB/s ,1066MB/及2133 MB/s。其中 AGP 4X 以后已跟之前电压不兼容。性能最好的AGP显示卡是nVIDIA公司的GeForce 6800 Ultra 和ATi公司的Radeon X850 XT PE。

PCI Express显卡

PCI Express是显示卡最新的图形接口,用来取代AGP显示卡的,因为面对日后3D显示技术的不断进步,AGP的宽带已经不能再满足庞大的数据运算。目前性能最高的PCI-Express显示卡是Nvidia公司的GeForce 7800GTX 512MB和ATi公司的X1900XTX。此外, 现时部分显示卡可-{zh-tw:支援;zh-cn:支持}-双显示卡(nVidiaSLiATiCrossfire). 当中, Crossfire大部分都需要一张子卡和一张主卡去运行, 但X1300就无此限制,而此限制也即将解封。

MTRR含义

MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?]

选择该选项,系统将生成

/proc/mtrr文件对MTRR进行管理,供X server使用。

在Intel p6家族的处理器中(Ppro、 PII和更新的)有一个内存类型范围寄存器,可用来控制处理器访问的内存范围。打开它一般可以提升显卡的显示性能

It speeds up memory copies between the processor and the graphic card

linux framebuffer相关

又学习到结构体初始化定义的一个绝招,具体如下:

结构体定义(见/include/linux/fb.h)

struct fb_fix_screeninfo {

char id[16]; /* identification string eg "TT Builtin" */

unsigned long smem_start; /* Start of frame buffer mem */

/* (physical address) */

__u32 smem_len; /* Length of frame buffer mem */

__u32 type; /* see FB_TYPE_* */

__u32 type_aux; /* Interleave for interleaved Planes */

__u32 visual; /* see FB_VISUAL_* */

__u16 xpanstep; /* zero if no hardware panning */

__u16 ypanstep; /* zero if no hardware panning */

__u16 ywrapstep; /* zero if no hardware ywrap */

__u32 line_length; /* length of a line in bytes */

unsigned long mmio_start; /* Start of Memory Mapped I/O */

/* (physical address) */

__u32 mmio_len; /* Length of Memory Mapped I/O */

__u32 accel; /* Type of acceleration available */

__u16 reserved[3]; /* Reserved for future compatibility */

};

/drivers/video/Anakinfb.c

结构体初始化,注意并不是初始化全部成员变量,而是一部分,这是一种简捷的定义方式,注意每个成员变量前有一个“.”号,你有更好的定义方式吗?欢迎指教:)

static struct fb_fix_screeninfo anakinfb_fix = {

.id = "AnakinFB",

.smem_start = VGA_START,

.smem_len = VGA_SIZE,

.type = FB_TYPE_PACKED_PIXELS,

.visual = FB_VISUAL_TRUECOLOR,

.line_length = 400*2,

.accel = FB_ACCEL_NONE,

};

下面是一个操作符优先级问题

anakinfb_setcolreg()

{

// green & 0xfc00 >> 5与green & (0xfc00 >> 5)相同,注意操作符的优先级

((u16 *)(info->pseudo_palette))[regno] = (red & 0xf800) | (green & 0xfc00 >> 5) | (blue & 0xf800 >> 11);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有